diff --git a/ionic/android/.gitignore b/ionic/android/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..63c86fe309403bcfc8cddd018716aaddab9393f1 --- /dev/null +++ b/ionic/android/.gitignore @@ -0,0 +1,96 @@ +# Using Android gitignore template: https://github.com/github/gitignore/blob/HEAD/Android.gitignore + +# Built application files +*.apk +*.aar +*.ap_ +*.aab + +# Files for the ART/Dalvik VM +*.dex + +# Java class files +*.class + +# Generated files +bin/ +gen/ +out/ +# Uncomment the following line in case you need and you don't have the release build type files in your app +# release/ + +# Gradle files +.gradle/ +build/ + +# Local configuration file (sdk path, etc) +local.properties + +# Proguard folder generated by Eclipse +proguard/ + +# Log Files +*.log + +# Android Studio Navigation editor temp files +.navigation/ + +# Android Studio captures folder +captures/ + +# IntelliJ +*.iml +.idea/workspace.xml +.idea/tasks.xml +.idea/gradle.xml +.idea/assetWizardSettings.xml +.idea/dictionaries +.idea/libraries +# Android Studio 3 in .gitignore file. +.idea/caches +.idea/modules.xml +# Comment next line if keeping position of elements in Navigation Editor is relevant for you +.idea/navEditor.xml + +# Keystore files +# Uncomment the following lines if you do not want to check your keystore files in. +#*.jks +#*.keystore + +# External native build folder generated in Android Studio 2.2 and later +.externalNativeBuild +.cxx/ + +# Google Services (e.g. APIs or Firebase) +# google-services.json + +# Freeline +freeline.py +freeline/ +freeline_project_description.json + +# fastlane +fastlane/report.xml +fastlane/Preview.html +fastlane/screenshots +fastlane/test_output +fastlane/readme.md + +# Version control +vcs.xml + +# lint +lint/intermediates/ +lint/generated/ +lint/outputs/ +lint/tmp/ +# lint/reports/ + +# Android Profiling +*.hprof + +# Cordova plugins for Capacitor +capacitor-cordova-android-plugins + +# Copied web assets +app/src/main/assets/public diff --git a/ionic/android/.idea/.gitignore b/ionic/android/.idea/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..26d33521af10bcc7fd8cea344038eaaeb78d0ef5 --- /dev/null +++ b/ionic/android/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/ionic/android/.idea/misc.xml b/ionic/android/.idea/misc.xml new file mode 100644 index 0000000000000000000000000000000000000000..f84585426581eecd6a20af9ca784c51d5c48326f --- /dev/null +++ b/ionic/android/.idea/misc.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="ProjectRootManager" version="2" project-jdk-name="1.8" project-jdk-type="JavaSDK"> + <output url="file://$PROJECT_DIR$/build/classes" /> + </component> + <component name="ProjectType"> + <option name="id" value="Android" /> + </component> +</project> \ No newline at end of file diff --git a/ionic/android/app/.gitignore b/ionic/android/app/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..043df802a29f1f386a23cba600c84be8eee2a0c6 --- /dev/null +++ b/ionic/android/app/.gitignore @@ -0,0 +1,2 @@ +/build/* +!/build/.npmkeep diff --git a/ionic/android/app/.idea/modules.xml b/ionic/android/app/.idea/modules.xml new file mode 100644 index 0000000000000000000000000000000000000000..8c4259da4bff18e4b8f70b37a9a523bcadd4a242 --- /dev/null +++ b/ionic/android/app/.idea/modules.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="ProjectModuleManager"> + <modules> + <module fileurl="file://$PROJECT_DIR$/.idea/app.iml" filepath="$PROJECT_DIR$/.idea/app.iml" /> + </modules> + </component> +</project> \ No newline at end of file diff --git a/ionic/android/app/.idea/workspace.xml b/ionic/android/app/.idea/workspace.xml new file mode 100644 index 0000000000000000000000000000000000000000..47bf7ef729ff8b11f34e641a3fb664f33b7f395b --- /dev/null +++ b/ionic/android/app/.idea/workspace.xml @@ -0,0 +1,1683 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="ChangeListManager"> + <list default="true" id="28d0d6eb-787d-454b-94e9-21b2de456e63" name="Default Changelist" comment=""> + <change beforePath="$PROJECT_DIR$/../../../api/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../../../api/.idea/workspace.xml" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/../../.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../../.idea/workspace.xml" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/../../ionic.config.json" beforeDir="false" afterPath="$PROJECT_DIR$/../../ionic.config.json" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/../../package-lock.json" beforeDir="false" afterPath="$PROJECT_DIR$/../../package-lock.json" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/../../package.json" beforeDir="false" afterPath="$PROJECT_DIR$/../../package.json" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/.gitignore" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/CordovaLib/AndroidManifest.xml" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/CordovaLib/build.gradle" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/CordovaLib/cordova.gradle" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/CordovaLib/project.properties" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/CordovaLib/src/org/apache/cordova/AuthenticationToken.java" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/CordovaLib/src/org/apache/cordova/BuildHelper.java" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/CordovaLib/src/org/apache/cordova/CallbackContext.java" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/CordovaLib/src/org/apache/cordova/CallbackMap.java" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/CordovaLib/src/org/apache/cordova/Config.java" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/CordovaLib/src/org/apache/cordova/ConfigXmlParser.java" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/CordovaLib/src/org/apache/cordova/CordovaActivity.java" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/CordovaLib/src/org/apache/cordova/CordovaArgs.java" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/CordovaLib/src/org/apache/cordova/CordovaBridge.java" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/CordovaLib/src/org/apache/cordova/CordovaClientCertRequest.java" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/CordovaLib/src/org/apache/cordova/CordovaDialogsHelper.java" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/CordovaLib/src/org/apache/cordova/CordovaHttpAuthHandler.java" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/CordovaLib/src/org/apache/cordova/CordovaInterface.java" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/CordovaLib/src/org/apache/cordova/CordovaInterfaceImpl.java" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/CordovaLib/src/org/apache/cordova/CordovaPlugin.java" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/CordovaLib/src/org/apache/cordova/CordovaPreferences.java" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/CordovaLib/src/org/apache/cordova/CordovaResourceApi.java" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/CordovaLib/src/org/apache/cordova/CordovaWebView.java" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/CordovaLib/src/org/apache/cordova/CordovaWebViewEngine.java" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/CordovaLib/src/org/apache/cordova/CordovaWebViewImpl.java" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/CordovaLib/src/org/apache/cordova/CoreAndroid.java" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/CordovaLib/src/org/apache/cordova/ExposedJsApi.java" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/CordovaLib/src/org/apache/cordova/ICordovaClientCertRequest.java" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/CordovaLib/src/org/apache/cordova/ICordovaCookieManager.java" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/CordovaLib/src/org/apache/cordova/ICordovaHttpAuthHandler.java" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/CordovaLib/src/org/apache/cordova/LOG.java" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/CordovaLib/src/org/apache/cordova/NativeToJsMessageQueue.java" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/CordovaLib/src/org/apache/cordova/PermissionHelper.java" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/CordovaLib/src/org/apache/cordova/PluginEntry.java" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/CordovaLib/src/org/apache/cordova/PluginManager.java" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/CordovaLib/src/org/apache/cordova/PluginResult.java" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/CordovaLib/src/org/apache/cordova/ResumeCallback.java" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/CordovaLib/src/org/apache/cordova/Whitelist.java" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/CordovaLib/src/org/apache/cordova/engine/SystemCookieManager.java" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/CordovaLib/src/org/apache/cordova/engine/SystemExposedJsApi.java" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/CordovaLib/src/org/apache/cordova/engine/SystemWebChromeClient.java" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/CordovaLib/src/org/apache/cordova/engine/SystemWebView.java" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/CordovaLib/src/org/apache/cordova/engine/SystemWebViewClient.java" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/CordovaLib/src/org/apache/cordova/engine/SystemWebViewEngine.java" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/android.json" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/build.gradle" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/AndroidManifest.xml" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/assets/icon/favicon.png" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/assets/shapes.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/cordova-js-src/android/nativeapiprovider.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/cordova-js-src/android/promptbasednativeapi.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/cordova-js-src/exec.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/cordova-js-src/platform.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/cordova-js-src/plugin/android/app.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/cordova.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/cordova_plugins.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/index.html" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/plugins/cordova-plugin-device/www/device.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/plugins/cordova-plugin-ionic-keyboard/www/android/keyboard.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/plugins/cordova-plugin-ionic-webview/src/www/util.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/plugins/cordova-plugin-splashscreen/www/splashscreen.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/plugins/cordova-plugin-statusbar/www/statusbar.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/accessibility-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/accessibility-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/accessibility.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/add-circle-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/add-circle-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/add-circle.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/add-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/add-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/add.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/airplane-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/airplane-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/airplane.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/alarm-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/alarm-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/alarm.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/albums-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/albums-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/albums.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/alert-circle-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/alert-circle-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/alert-circle.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/alert-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/alert-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/alert.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/american-football-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/american-football-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/american-football.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/analytics-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/analytics-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/analytics.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/aperture-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/aperture-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/aperture.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/apps-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/apps-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/apps.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/archive-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/archive-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/archive.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/arrow-back-circle-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/arrow-back-circle-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/arrow-back-circle.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/arrow-back-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/arrow-back-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/arrow-back.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/arrow-down-circle-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/arrow-down-circle-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/arrow-down-circle.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/arrow-down-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/arrow-down-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/arrow-down.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/arrow-forward-circle-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/arrow-forward-circle-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/arrow-forward-circle.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/arrow-forward-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/arrow-forward-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/arrow-forward.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/arrow-redo-circle-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/arrow-redo-circle-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/arrow-redo-circle.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/arrow-redo-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/arrow-redo-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/arrow-redo.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/arrow-undo-circle-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/arrow-undo-circle-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/arrow-undo-circle.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/arrow-undo-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/arrow-undo-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/arrow-undo.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/arrow-up-circle-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/arrow-up-circle-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/arrow-up-circle.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/arrow-up-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/arrow-up-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/arrow-up.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/at-circle-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/at-circle-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/at-circle.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/at-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/at-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/at.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/attach-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/attach-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/attach.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/backspace-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/backspace-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/backspace.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/bag-add-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/bag-add-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/bag-add.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/bag-check-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/bag-check-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/bag-check.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/bag-handle-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/bag-handle-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/bag-handle.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/bag-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/bag-remove-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/bag-remove-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/bag-remove.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/bag-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/bag.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/ban-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/ban-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/ban.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/bandage-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/bandage-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/bandage.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/bar-chart-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/bar-chart-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/bar-chart.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/barbell-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/barbell-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/barbell.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/barcode-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/barcode-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/barcode.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/baseball-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/baseball-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/baseball.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/basket-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/basket-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/basket.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/basketball-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/basketball-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/basketball.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/battery-charging-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/battery-charging-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/battery-charging.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/battery-dead-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/battery-dead-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/battery-dead.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/battery-full-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/battery-full-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/battery-full.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/battery-half-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/battery-half-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/battery-half.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/beaker-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/beaker-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/beaker.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/bed-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/bed-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/bed.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/beer-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/beer-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/beer.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/bicycle-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/bicycle-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/bicycle.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/bluetooth-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/bluetooth-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/bluetooth.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/boat-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/boat-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/boat.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/body-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/body-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/body.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/bonfire-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/bonfire-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/bonfire.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/book-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/book-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/book.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/bookmark-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/bookmark-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/bookmark.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/bookmarks-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/bookmarks-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/bookmarks.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/briefcase-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/briefcase-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/briefcase.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/browsers-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/browsers-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/browsers.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/brush-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/brush-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/brush.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/bug-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/bug-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/bug.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/build-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/build-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/build.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/bulb-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/bulb-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/bulb.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/bus-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/bus-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/bus.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/business-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/business-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/business.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/cafe-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/cafe-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/cafe.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/calculator-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/calculator-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/calculator.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/calendar-clear-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/calendar-clear-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/calendar-clear.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/calendar-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/calendar-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/calendar.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/call-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/call-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/call.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/camera-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/camera-reverse-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/camera-reverse-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/camera-reverse.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/camera-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/camera.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/car-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/car-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/car-sport-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/car-sport-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/car-sport.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/car.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/card-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/card-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/card.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/caret-back-circle-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/caret-back-circle-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/caret-back-circle.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/caret-back-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/caret-back-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/caret-back.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/caret-down-circle-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/caret-down-circle-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/caret-down-circle.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/caret-down-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/caret-down-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/caret-down.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/caret-forward-circle-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/caret-forward-circle-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/caret-forward-circle.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/caret-forward-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/caret-forward-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/caret-forward.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/caret-up-circle-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/caret-up-circle-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/caret-up-circle.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/caret-up-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/caret-up-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/caret-up.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/cart-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/cart-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/cart.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/cash-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/cash-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/cash.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/cellular-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/cellular-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/cellular.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/chatbox-ellipses-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/chatbox-ellipses-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/chatbox-ellipses.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/chatbox-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/chatbox-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/chatbox.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/chatbubble-ellipses-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/chatbubble-ellipses-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/chatbubble-ellipses.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/chatbubble-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/chatbubble-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/chatbubble.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/chatbubbles-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/chatbubbles-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/chatbubbles.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/checkbox-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/checkbox-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/checkbox.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/checkmark-circle-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/checkmark-circle-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/checkmark-circle.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/checkmark-done-circle-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/checkmark-done-circle-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/checkmark-done-circle.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/checkmark-done-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/checkmark-done-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/checkmark-done.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/checkmark-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/checkmark-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/checkmark.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/chevron-back-circle-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/chevron-back-circle-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/chevron-back-circle.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/chevron-back-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/chevron-back-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/chevron-back.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/chevron-down-circle-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/chevron-down-circle-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/chevron-down-circle.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/chevron-down-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/chevron-down-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/chevron-down.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/chevron-forward-circle-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/chevron-forward-circle-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/chevron-forward-circle.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/chevron-forward-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/chevron-forward-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/chevron-forward.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/chevron-up-circle-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/chevron-up-circle-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/chevron-up-circle.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/chevron-up-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/chevron-up-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/chevron-up.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/clipboard-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/clipboard-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/clipboard.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/close-circle-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/close-circle-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/close-circle.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/close-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/close-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/close.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/cloud-circle-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/cloud-circle-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/cloud-circle.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/cloud-done-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/cloud-done-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/cloud-done.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/cloud-download-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/cloud-download-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/cloud-download.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/cloud-offline-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/cloud-offline-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/cloud-offline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/cloud-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/cloud-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/cloud-upload-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/cloud-upload-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/cloud-upload.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/cloud.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/cloudy-night-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/cloudy-night-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/cloudy-night.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/cloudy-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/cloudy-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/cloudy.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/code-download-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/code-download-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/code-download.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/code-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/code-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/code-slash-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/code-slash-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/code-slash.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/code-working-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/code-working-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/code-working.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/code.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/cog-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/cog-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/cog.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/color-fill-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/color-fill-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/color-fill.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/color-filter-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/color-filter-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/color-filter.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/color-palette-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/color-palette-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/color-palette.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/color-wand-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/color-wand-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/color-wand.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/compass-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/compass-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/compass.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/construct-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/construct-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/construct.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/contract-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/contract-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/contract.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/contrast-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/contrast-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/contrast.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/copy-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/copy-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/copy.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/create-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/create-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/create.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/crop-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/crop-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/crop.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/cube-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/cube-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/cube.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/cut-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/cut-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/cut.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/desktop-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/desktop-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/desktop.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/dice-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/dice-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/dice.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/disc-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/disc-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/disc.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/document-attach-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/document-attach-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/document-attach.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/document-lock-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/document-lock-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/document-lock.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/document-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/document-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/document-text-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/document-text-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/document-text.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/document.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/documents-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/documents-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/documents.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/download-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/download-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/download.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/duplicate-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/duplicate-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/duplicate.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/ear-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/ear-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/ear.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/earth-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/earth-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/earth.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/easel-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/easel-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/easel.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/egg-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/egg-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/egg.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/ellipse-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/ellipse-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/ellipse.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/ellipsis-horizontal-circle-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/ellipsis-horizontal-circle-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/ellipsis-horizontal-circle.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/ellipsis-horizontal-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/ellipsis-horizontal-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/ellipsis-horizontal.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/ellipsis-vertical-circle-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/ellipsis-vertical-circle-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/ellipsis-vertical-circle.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/ellipsis-vertical-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/ellipsis-vertical-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/ellipsis-vertical.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/enter-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/enter-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/enter.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/exit-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/exit-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/exit.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/expand-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/expand-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/expand.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/extension-puzzle-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/extension-puzzle-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/extension-puzzle.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/eye-off-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/eye-off-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/eye-off.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/eye-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/eye-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/eye.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/eyedrop-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/eyedrop-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/eyedrop.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/fast-food-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/fast-food-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/fast-food.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/female-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/female-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/female.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/file-tray-full-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/file-tray-full-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/file-tray-full.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/file-tray-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/file-tray-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/file-tray-stacked-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/file-tray-stacked-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/file-tray-stacked.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/file-tray.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/film-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/film-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/film.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/filter-circle-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/filter-circle-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/filter-circle.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/filter-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/filter-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/filter.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/finger-print-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/finger-print-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/finger-print.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/fish-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/fish-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/fish.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/fitness-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/fitness-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/fitness.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/flag-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/flag-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/flag.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/flame-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/flame-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/flame.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/flash-off-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/flash-off-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/flash-off.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/flash-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/flash-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/flash.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/flashlight-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/flashlight-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/flashlight.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/flask-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/flask-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/flask.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/flower-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/flower-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/flower.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/folder-open-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/folder-open-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/folder-open.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/folder-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/folder-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/folder.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/football-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/football-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/football.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/funnel-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/funnel-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/funnel.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/game-controller-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/game-controller-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/game-controller.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/gift-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/gift-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/gift.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/git-branch-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/git-branch-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/git-branch.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/git-commit-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/git-commit-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/git-commit.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/git-compare-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/git-compare-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/git-compare.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/git-merge-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/git-merge-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/git-merge.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/git-network-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/git-network-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/git-network.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/git-pull-request-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/git-pull-request-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/git-pull-request.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/glasses-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/glasses-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/glasses.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/globe-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/globe-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/globe.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/golf-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/golf-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/golf.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/grid-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/grid-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/grid.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/hammer-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/hammer-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/hammer.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/hand-left-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/hand-left-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/hand-left.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/hand-right-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/hand-right-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/hand-right.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/happy-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/happy-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/happy.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/hardware-chip-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/hardware-chip-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/hardware-chip.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/headset-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/headset-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/headset.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/heart-circle-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/heart-circle-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/heart-circle.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/heart-dislike-circle-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/heart-dislike-circle-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/heart-dislike-circle.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/heart-dislike-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/heart-dislike-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/heart-dislike.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/heart-half-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/heart-half-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/heart-half.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/heart-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/heart-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/heart.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/help-buoy-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/help-buoy-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/help-buoy.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/help-circle-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/help-circle-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/help-circle.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/help-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/help-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/help.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/home-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/home-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/home.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/hourglass-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/hourglass-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/hourglass.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/ice-cream-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/ice-cream-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/ice-cream.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/image-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/image-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/image.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/images-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/images-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/images.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/infinite-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/infinite-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/infinite.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/information-circle-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/information-circle-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/information-circle.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/information-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/information-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/information.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/invert-mode-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/invert-mode-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/invert-mode.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/journal-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/journal-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/journal.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/key-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/key-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/key.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/keypad-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/keypad-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/keypad.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/language-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/language-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/language.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/laptop-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/laptop-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/laptop.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/layers-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/layers-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/layers.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/leaf-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/leaf-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/leaf.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/library-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/library-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/library.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/link-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/link-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/link.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/list-circle-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/list-circle-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/list-circle.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/list-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/list-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/list.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/locate-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/locate-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/locate.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/location-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/location-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/location.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/lock-closed-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/lock-closed-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/lock-closed.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/lock-open-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/lock-open-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/lock-open.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/log-in-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/log-in-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/log-in.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/log-out-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/log-out-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/log-out.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/logo-alipay.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/logo-amazon.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/logo-amplify.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/logo-android.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/logo-angular.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/logo-apple-appstore.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/logo-apple.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/logo-behance.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/logo-bitbucket.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/logo-bitcoin.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/logo-buffer.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/logo-capacitor.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/logo-chrome.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/logo-closed-captioning.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/logo-codepen.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/logo-css3.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/logo-designernews.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/logo-deviantart.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/logo-discord.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/logo-docker.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/logo-dribbble.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/logo-dropbox.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/logo-edge.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/logo-electron.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/logo-euro.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/logo-facebook.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/logo-figma.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/logo-firebase.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/logo-firefox.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/logo-flickr.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/logo-foursquare.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/logo-github.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/logo-gitlab.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/logo-google-playstore.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/logo-google.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/logo-hackernews.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/logo-html5.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/logo-instagram.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/logo-ionic.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/logo-ionitron.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/logo-javascript.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/logo-laravel.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/logo-linkedin.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/logo-markdown.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/logo-mastodon.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/logo-medium.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/logo-no-smoking.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/logo-nodejs.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/logo-npm.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/logo-octocat.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/logo-paypal.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/logo-pinterest.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/logo-playstation.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/logo-pwa.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/logo-python.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/logo-react.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/logo-reddit.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/logo-rss.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/logo-sass.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/logo-skype.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/logo-slack.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/logo-snapchat.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/logo-soundcloud.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/logo-stackoverflow.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/logo-steam.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/logo-stencil.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/logo-tableau.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/logo-tiktok.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/logo-tumblr.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/logo-tux.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/logo-twitch.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/logo-twitter.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/logo-usd.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/logo-venmo.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/logo-vercel.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/logo-vimeo.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/logo-vk.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/logo-vue.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/logo-web-component.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/logo-wechat.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/logo-whatsapp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/logo-windows.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/logo-wordpress.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/logo-xbox.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/logo-xing.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/logo-yahoo.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/logo-yen.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/logo-youtube.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/magnet-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/magnet-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/magnet.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/mail-open-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/mail-open-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/mail-open.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/mail-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/mail-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/mail-unread-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/mail-unread-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/mail-unread.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/mail.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/male-female-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/male-female-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/male-female.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/male-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/male-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/male.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/man-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/man-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/man.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/map-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/map-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/map.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/medal-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/medal-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/medal.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/medical-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/medical-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/medical.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/medkit-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/medkit-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/medkit.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/megaphone-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/megaphone-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/megaphone.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/menu-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/menu-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/menu.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/mic-circle-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/mic-circle-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/mic-circle.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/mic-off-circle-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/mic-off-circle-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/mic-off-circle.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/mic-off-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/mic-off-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/mic-off.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/mic-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/mic-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/mic.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/moon-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/moon-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/moon.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/move-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/move-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/move.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/musical-note-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/musical-note-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/musical-note.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/musical-notes-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/musical-notes-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/musical-notes.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/navigate-circle-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/navigate-circle-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/navigate-circle.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/navigate-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/navigate-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/navigate.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/newspaper-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/newspaper-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/newspaper.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/notifications-circle-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/notifications-circle-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/notifications-circle.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/notifications-off-circle-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/notifications-off-circle-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/notifications-off-circle.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/notifications-off-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/notifications-off-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/notifications-off.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/notifications-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/notifications-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/notifications.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/nuclear-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/nuclear-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/nuclear.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/nutrition-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/nutrition-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/nutrition.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/open-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/open-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/open.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/options-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/options-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/options.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/paper-plane-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/paper-plane-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/paper-plane.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/partly-sunny-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/partly-sunny-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/partly-sunny.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/pause-circle-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/pause-circle-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/pause-circle.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/pause-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/pause-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/pause.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/paw-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/paw-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/paw.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/pencil-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/pencil-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/pencil.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/people-circle-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/people-circle-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/people-circle.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/people-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/people-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/people.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/person-add-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/person-add-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/person-add.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/person-circle-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/person-circle-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/person-circle.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/person-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/person-remove-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/person-remove-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/person-remove.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/person-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/person.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/phone-landscape-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/phone-landscape-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/phone-landscape.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/phone-portrait-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/phone-portrait-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/phone-portrait.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/pie-chart-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/pie-chart-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/pie-chart.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/pin-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/pin-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/pin.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/pint-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/pint-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/pint.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/pizza-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/pizza-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/pizza.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/planet-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/planet-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/planet.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/play-back-circle-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/play-back-circle-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/play-back-circle.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/play-back-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/play-back-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/play-back.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/play-circle-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/play-circle-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/play-circle.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/play-forward-circle-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/play-forward-circle-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/play-forward-circle.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/play-forward-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/play-forward-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/play-forward.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/play-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/play-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/play-skip-back-circle-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/play-skip-back-circle-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/play-skip-back-circle.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/play-skip-back-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/play-skip-back-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/play-skip-back.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/play-skip-forward-circle-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/play-skip-forward-circle-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/play-skip-forward-circle.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/play-skip-forward-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/play-skip-forward-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/play-skip-forward.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/play.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/podium-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/podium-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/podium.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/power-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/power-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/power.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/pricetag-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/pricetag-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/pricetag.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/pricetags-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/pricetags-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/pricetags.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/print-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/print-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/print.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/pulse-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/pulse-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/pulse.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/push-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/push-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/push.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/qr-code-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/qr-code-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/qr-code.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/radio-button-off-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/radio-button-off-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/radio-button-off.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/radio-button-on-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/radio-button-on-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/radio-button-on.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/radio-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/radio-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/radio.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/rainy-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/rainy-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/rainy.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/reader-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/reader-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/reader.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/receipt-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/receipt-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/receipt.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/recording-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/recording-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/recording.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/refresh-circle-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/refresh-circle-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/refresh-circle.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/refresh-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/refresh-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/refresh.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/reload-circle-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/reload-circle-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/reload-circle.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/reload-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/reload-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/reload.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/remove-circle-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/remove-circle-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/remove-circle.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/remove-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/remove-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/remove.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/reorder-four-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/reorder-four-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/reorder-four.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/reorder-three-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/reorder-three-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/reorder-three.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/reorder-two-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/reorder-two-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/reorder-two.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/repeat-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/repeat-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/repeat.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/resize-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/resize-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/resize.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/restaurant-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/restaurant-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/restaurant.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/return-down-back-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/return-down-back-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/return-down-back.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/return-down-forward-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/return-down-forward-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/return-down-forward.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/return-up-back-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/return-up-back-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/return-up-back.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/return-up-forward-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/return-up-forward-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/return-up-forward.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/ribbon-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/ribbon-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/ribbon.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/rocket-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/rocket-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/rocket.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/rose-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/rose-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/rose.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/sad-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/sad-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/sad.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/save-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/save-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/save.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/scan-circle-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/scan-circle-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/scan-circle.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/scan-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/scan-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/scan.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/school-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/school-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/school.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/search-circle-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/search-circle-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/search-circle.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/search-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/search-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/search.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/send-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/send-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/send.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/server-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/server-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/server.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/settings-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/settings-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/settings.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/shapes-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/shapes-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/shapes.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/share-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/share-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/share-social-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/share-social-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/share-social.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/share.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/shield-checkmark-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/shield-checkmark-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/shield-checkmark.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/shield-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/shield-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/shield.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/shirt-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/shirt-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/shirt.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/shuffle-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/shuffle-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/shuffle.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/skull-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/skull-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/skull.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/snow-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/snow-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/snow.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/speedometer-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/speedometer-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/speedometer.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/square-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/square-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/square.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/star-half-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/star-half-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/star-half.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/star-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/star-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/star.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/stats-chart-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/stats-chart-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/stats-chart.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/stop-circle-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/stop-circle-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/stop-circle.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/stop-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/stop-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/stop.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/stopwatch-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/stopwatch-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/stopwatch.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/storefront-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/storefront-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/storefront.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/subway-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/subway-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/subway.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/sunny-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/sunny-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/sunny.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/swap-horizontal-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/swap-horizontal-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/swap-horizontal.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/swap-vertical-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/swap-vertical-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/swap-vertical.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/sync-circle-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/sync-circle-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/sync-circle.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/sync-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/sync-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/sync.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/tablet-landscape-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/tablet-landscape-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/tablet-landscape.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/tablet-portrait-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/tablet-portrait-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/tablet-portrait.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/telescope-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/telescope-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/telescope.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/tennisball-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/tennisball-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/tennisball.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/terminal-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/terminal-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/terminal.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/text-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/text-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/text.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/thermometer-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/thermometer-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/thermometer.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/thumbs-down-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/thumbs-down-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/thumbs-down.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/thumbs-up-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/thumbs-up-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/thumbs-up.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/thunderstorm-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/thunderstorm-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/thunderstorm.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/ticket-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/ticket-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/ticket.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/time-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/time-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/time.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/timer-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/timer-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/timer.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/today-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/today-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/today.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/toggle-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/toggle-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/toggle.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/trail-sign-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/trail-sign-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/trail-sign.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/train-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/train-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/train.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/transgender-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/transgender-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/transgender.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/trash-bin-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/trash-bin-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/trash-bin.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/trash-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/trash-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/trash.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/trending-down-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/trending-down-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/trending-down.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/trending-up-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/trending-up-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/trending-up.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/triangle-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/triangle-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/triangle.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/trophy-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/trophy-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/trophy.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/tv-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/tv-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/tv.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/umbrella-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/umbrella-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/umbrella.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/unlink-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/unlink-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/unlink.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/videocam-off-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/videocam-off-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/videocam-off.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/videocam-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/videocam-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/videocam.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/volume-high-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/volume-high-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/volume-high.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/volume-low-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/volume-low-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/volume-low.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/volume-medium-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/volume-medium-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/volume-medium.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/volume-mute-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/volume-mute-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/volume-mute.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/volume-off-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/volume-off-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/volume-off.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/walk-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/walk-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/walk.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/wallet-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/wallet-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/wallet.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/warning-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/warning-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/warning.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/watch-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/watch-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/watch.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/water-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/water-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/water.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/wifi-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/wifi-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/wifi.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/wine-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/wine-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/wine.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/woman-outline.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/woman-sharp.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/assets/www/svg/woman.svg" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/java/com/ionicframework/cordova/webview/AndroidProtocolHandler.java" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/java/com/ionicframework/cordova/webview/IonicWebView.java" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/java/com/ionicframework/cordova/webview/IonicWebViewEngine.java" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/java/com/ionicframework/cordova/webview/UriMatcher.java" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/java/com/ionicframework/cordova/webview/WebViewLocalServer.java" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/java/io/ionic/keyboard/CDVIonicKeyboard.java" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/java/io/ionic/starter/MainActivity.java" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/java/org/apache/cordova/device/Device.java" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/java/org/apache/cordova/splashscreen/SplashScreen.java" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/java/org/apache/cordova/statusbar/StatusBar.java" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/java/org/apache/cordova/whitelist/WhitelistPlugin.java" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/res/drawable-land-hdpi/screen.png" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/res/drawable-land-ldpi/screen.png" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/res/drawable-land-mdpi/screen.png" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/res/drawable-land-xhdpi/screen.png" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/res/drawable-land-xxhdpi/screen.png" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/res/drawable-land-xxxhdpi/screen.png" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/res/drawable-port-hdpi/screen.png" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/res/drawable-port-ldpi/screen.png" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/res/drawable-port-mdpi/screen.png" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/res/drawable-port-xhdpi/screen.png" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/res/drawable-port-xxhdpi/screen.png" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/res/drawable-port-xxxhdpi/screen.png" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/res/mipmap-hdpi/ic_launcher.png" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/res/mipmap-ldpi/ic_launcher.png" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/res/mipmap-mdpi/ic_launcher.png" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/res/values/strings.xml" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/res/xml/config.xml" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/app/src/main/res/xml/network_security_config.xml" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/build.gradle" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/Api.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/android_sdk_version" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/android_sdk_version.bat" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/build" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/build.bat" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/check_reqs" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/check_reqs.bat" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/clean" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/clean.bat" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/defaults.xml" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/lib/Adb.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/lib/AndroidManifest.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/lib/AndroidProject.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/lib/PackageType.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/lib/android_sdk.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/lib/build.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/lib/builders/ProjectBuilder.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/lib/builders/builders.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/lib/check_reqs.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/lib/config/GradlePropertiesParser.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/lib/device.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/lib/emulator.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/lib/getASPath.bat" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/lib/install-device" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/lib/install-device.bat" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/lib/install-emulator" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/lib/install-emulator.bat" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/lib/list-devices" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/lib/list-devices.bat" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/lib/list-emulator-images" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/lib/list-emulator-images.bat" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/lib/list-started-emulators" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/lib/list-started-emulators.bat" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/lib/log.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/lib/plugin-build.gradle" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/lib/pluginHandlers.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/lib/prepare.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/lib/retry.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/lib/run.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/lib/start-emulator" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/lib/start-emulator.bat" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/lib/utils.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/log" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/log.bat" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/loggingHelper.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/.bin/node-which" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/cross-spawn/CHANGELOG.md" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/cross-spawn/LICENSE" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/cross-spawn/README.md" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/cross-spawn/index.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/cross-spawn/lib/enoent.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/cross-spawn/lib/parse.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/cross-spawn/lib/util/escape.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/cross-spawn/lib/util/readShebang.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/cross-spawn/lib/util/resolveCommand.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/cross-spawn/package.json" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/execa/index.d.ts" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/execa/index.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/execa/lib/command.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/execa/lib/error.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/execa/lib/kill.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/execa/lib/promise.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/execa/lib/stdio.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/execa/lib/stream.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/execa/license" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/execa/package.json" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/execa/readme.md" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/fs-extra/CHANGELOG.md" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/fs-extra/LICENSE" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/fs-extra/README.md" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/fs-extra/lib/copy-sync/copy-sync.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/fs-extra/lib/copy-sync/index.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/fs-extra/lib/copy/copy.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/fs-extra/lib/copy/index.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/fs-extra/lib/empty/index.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/fs-extra/lib/ensure/file.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/fs-extra/lib/ensure/index.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/fs-extra/lib/ensure/link.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/fs-extra/lib/ensure/symlink-paths.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/fs-extra/lib/ensure/symlink-type.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/fs-extra/lib/ensure/symlink.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/fs-extra/lib/fs/index.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/fs-extra/lib/index.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/fs-extra/lib/json/index.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/fs-extra/lib/json/jsonfile.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/fs-extra/lib/json/output-json-sync.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/fs-extra/lib/json/output-json.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/fs-extra/lib/mkdirs/index.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/fs-extra/lib/mkdirs/make-dir.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/fs-extra/lib/move-sync/index.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/fs-extra/lib/move-sync/move-sync.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/fs-extra/lib/move/index.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/fs-extra/lib/move/move.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/fs-extra/lib/output/index.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/fs-extra/lib/path-exists/index.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/fs-extra/lib/remove/index.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/fs-extra/lib/remove/rimraf.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/fs-extra/lib/util/stat.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/fs-extra/lib/util/utimes.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/fs-extra/package.json" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/get-stream/buffer-stream.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/get-stream/index.d.ts" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/get-stream/index.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/get-stream/license" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/get-stream/package.json" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/get-stream/readme.md" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/is-stream/index.d.ts" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/is-stream/index.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/is-stream/license" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/is-stream/package.json" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/is-stream/readme.md" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/jsonfile/CHANGELOG.md" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/jsonfile/LICENSE" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/jsonfile/README.md" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/jsonfile/index.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/jsonfile/node_modules/universalify/LICENSE" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/jsonfile/node_modules/universalify/README.md" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/jsonfile/node_modules/universalify/index.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/jsonfile/node_modules/universalify/package.json" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/jsonfile/package.json" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/jsonfile/utils.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/npm-run-path/index.d.ts" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/npm-run-path/index.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/npm-run-path/license" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/npm-run-path/package.json" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/npm-run-path/readme.md" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/path-key/index.d.ts" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/path-key/index.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/path-key/license" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/path-key/package.json" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/path-key/readme.md" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/shebang-command/index.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/shebang-command/license" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/shebang-command/package.json" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/shebang-command/readme.md" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/shebang-regex/index.d.ts" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/shebang-regex/index.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/shebang-regex/license" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/shebang-regex/package.json" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/shebang-regex/readme.md" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/universalify/LICENSE" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/universalify/README.md" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/universalify/index.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/universalify/package.json" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/which/CHANGELOG.md" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/which/LICENSE" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/which/README.md" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/which/bin/node-which" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/which/package.json" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/node_modules/which/which.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/run" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/run.bat" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/version" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/cordova/version.bat" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/gradle.properties" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/platform_www/cordova-js-src/android/nativeapiprovider.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/platform_www/cordova-js-src/android/promptbasednativeapi.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/platform_www/cordova-js-src/exec.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/platform_www/cordova-js-src/platform.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/platform_www/cordova-js-src/plugin/android/app.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/platform_www/cordova.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/platform_www/cordova_plugins.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/platform_www/plugins/cordova-plugin-device/www/device.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/platform_www/plugins/cordova-plugin-ionic-keyboard/www/android/keyboard.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/platform_www/plugins/cordova-plugin-ionic-webview/src/www/util.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/platform_www/plugins/cordova-plugin-splashscreen/www/splashscreen.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/platform_www/plugins/cordova-plugin-statusbar/www/statusbar.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/project.properties" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/settings.gradle" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../platforms/android/wrapper.gradle" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../plugins/android.json" beforeDir="false" afterPath="$PROJECT_DIR$/../../plugins/android.json" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/../../resources/android/icon/drawable-hdpi-icon.png" beforeDir="false" afterPath="$PROJECT_DIR$/../../resources/android/icon/drawable-hdpi-icon.png" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/../../resources/android/icon/drawable-ldpi-icon.png" beforeDir="false" afterPath="$PROJECT_DIR$/../../resources/android/icon/drawable-ldpi-icon.png" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/../../resources/android/icon/drawable-mdpi-icon.png" beforeDir="false" afterPath="$PROJECT_DIR$/../../resources/android/icon/drawable-mdpi-icon.png" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/../../resources/android/icon/drawable-xhdpi-icon.png" beforeDir="false" afterPath="$PROJECT_DIR$/../../resources/android/icon/drawable-xhdpi-icon.png" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/../../resources/android/icon/drawable-xxhdpi-icon.png" beforeDir="false" afterPath="$PROJECT_DIR$/../../resources/android/icon/drawable-xxhdpi-icon.png" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/../../resources/android/icon/drawable-xxxhdpi-icon.png" beforeDir="false" afterPath="$PROJECT_DIR$/../../resources/android/icon/drawable-xxxhdpi-icon.png" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/../../resources/android/splash/drawable-land-hdpi-screen.png" beforeDir="false" afterPath="$PROJECT_DIR$/../../resources/android/splash/drawable-land-hdpi-screen.png" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/../../resources/android/splash/drawable-land-ldpi-screen.png" beforeDir="false" afterPath="$PROJECT_DIR$/../../resources/android/splash/drawable-land-ldpi-screen.png" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/../../resources/android/splash/drawable-land-mdpi-screen.png" beforeDir="false" afterPath="$PROJECT_DIR$/../../resources/android/splash/drawable-land-mdpi-screen.png" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/../../resources/android/splash/drawable-land-xhdpi-screen.png" beforeDir="false" afterPath="$PROJECT_DIR$/../../resources/android/splash/drawable-land-xhdpi-screen.png" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/../../resources/android/splash/drawable-land-xxhdpi-screen.png" beforeDir="false" afterPath="$PROJECT_DIR$/../../resources/android/splash/drawable-land-xxhdpi-screen.png" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/../../resources/android/splash/drawable-land-xxxhdpi-screen.png" beforeDir="false" afterPath="$PROJECT_DIR$/../../resources/android/splash/drawable-land-xxxhdpi-screen.png" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/../../resources/android/splash/drawable-port-hdpi-screen.png" beforeDir="false" afterPath="$PROJECT_DIR$/../../resources/android/splash/drawable-port-hdpi-screen.png" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/../../resources/android/splash/drawable-port-ldpi-screen.png" beforeDir="false" afterPath="$PROJECT_DIR$/../../resources/android/splash/drawable-port-ldpi-screen.png" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/../../resources/android/splash/drawable-port-mdpi-screen.png" beforeDir="false" afterPath="$PROJECT_DIR$/../../resources/android/splash/drawable-port-mdpi-screen.png" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/../../resources/android/splash/drawable-port-xhdpi-screen.png" beforeDir="false" afterPath="$PROJECT_DIR$/../../resources/android/splash/drawable-port-xhdpi-screen.png" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/../../resources/android/splash/drawable-port-xxhdpi-screen.png" beforeDir="false" afterPath="$PROJECT_DIR$/../../resources/android/splash/drawable-port-xxhdpi-screen.png" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/../../resources/android/splash/drawable-port-xxxhdpi-screen.png" beforeDir="false" afterPath="$PROJECT_DIR$/../../resources/android/splash/drawable-port-xxxhdpi-screen.png" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/../../src/app/app-routing.module.ts" beforeDir="false" afterPath="$PROJECT_DIR$/../../src/app/app-routing.module.ts" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/../../src/app/conversation/conversation.page.html" beforeDir="false" afterPath="$PROJECT_DIR$/../../src/app/conversation/conversation.page.html" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/../../src/app/conversation/conversation.page.scss" beforeDir="false" afterPath="$PROJECT_DIR$/../../src/app/conversation/conversation.page.scss" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/../../src/app/conversation/conversation.page.ts" beforeDir="false" afterPath="$PROJECT_DIR$/../../src/app/conversation/conversation.page.ts" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/../../src/app/global.service.ts" beforeDir="false" afterPath="$PROJECT_DIR$/../../src/app/global.service.ts" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/../../src/app/services/tab3.service.ts" beforeDir="false" afterPath="$PROJECT_DIR$/../../src/app/services/tab3.service.ts" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/../../src/app/tab1/tab1.page.ts" beforeDir="false" afterPath="$PROJECT_DIR$/../../src/app/tab1/tab1.page.ts" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/../../src/app/tab3/tab3.page.html" beforeDir="false" afterPath="$PROJECT_DIR$/../../src/app/tab3/tab3.page.html" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/../../src/app/tab3/tab3.page.ts" beforeDir="false" afterPath="$PROJECT_DIR$/../../src/app/tab3/tab3.page.ts" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/../../www/auth-login-login-module-es2015.js" beforeDir="false" afterPath="$PROJECT_DIR$/../../www/auth-login-login-module-es2015.js" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/../../www/auth-login-login-module-es2015.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/../../www/auth-login-login-module-es2015.js.map" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/../../www/auth-login-login-module-es5.js" beforeDir="false" afterPath="$PROJECT_DIR$/../../www/auth-login-login-module-es5.js" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/../../www/auth-login-login-module-es5.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/../../www/auth-login-login-module-es5.js.map" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/../../www/common-es2015.js" beforeDir="false" afterPath="$PROJECT_DIR$/../../www/common-es2015.js" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/../../www/common-es2015.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/../../www/common-es2015.js.map" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/../../www/common-es5.js" beforeDir="false" afterPath="$PROJECT_DIR$/../../www/common-es5.js" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/../../www/common-es5.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/../../www/common-es5.js.map" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/../../www/conversation-conversation-module-es2015.js" beforeDir="false" afterPath="$PROJECT_DIR$/../../www/conversation-conversation-module-es2015.js" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/../../www/conversation-conversation-module-es2015.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/../../www/conversation-conversation-module-es2015.js.map" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/../../www/conversation-conversation-module-es5.js" beforeDir="false" afterPath="$PROJECT_DIR$/../../www/conversation-conversation-module-es5.js" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/../../www/conversation-conversation-module-es5.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/../../www/conversation-conversation-module-es5.js.map" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/../../www/cordova-js-src/android/nativeapiprovider.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../www/cordova-js-src/android/promptbasednativeapi.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../www/cordova-js-src/exec.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../www/cordova-js-src/platform.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../www/cordova-js-src/plugin/android/app.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../www/cordova.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../www/cordova.js.map" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../www/cordova_plugins.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../www/index.html" beforeDir="false" afterPath="$PROJECT_DIR$/../../www/index.html" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/../../www/main-es2015.js" beforeDir="false" afterPath="$PROJECT_DIR$/../../www/main-es2015.js" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/../../www/main-es2015.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/../../www/main-es2015.js.map" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/../../www/main-es5.js" beforeDir="false" afterPath="$PROJECT_DIR$/../../www/main-es5.js" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/../../www/main-es5.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/../../www/main-es5.js.map" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/../../www/plugins/cordova-plugin-device/www/device.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../www/plugins/cordova-plugin-ionic-keyboard/www/android/keyboard.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../www/plugins/cordova-plugin-ionic-webview/src/www/util.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../www/plugins/cordova-plugin-splashscreen/www/splashscreen.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../www/plugins/cordova-plugin-statusbar/www/statusbar.js" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../../www/runtime-es2015.js" beforeDir="false" afterPath="$PROJECT_DIR$/../../www/runtime-es2015.js" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/../../www/runtime-es2015.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/../../www/runtime-es2015.js.map" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/../../www/runtime-es5.js" beforeDir="false" afterPath="$PROJECT_DIR$/../../www/runtime-es5.js" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/../../www/runtime-es5.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/../../www/runtime-es5.js.map" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/../../www/tab3-tab3-module-es2015.js" beforeDir="false" afterPath="$PROJECT_DIR$/../../www/tab3-tab3-module-es2015.js" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/../../www/tab3-tab3-module-es2015.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/../../www/tab3-tab3-module-es2015.js.map" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/../../www/tab3-tab3-module-es5.js" beforeDir="false" afterPath="$PROJECT_DIR$/../../www/tab3-tab3-module-es5.js" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/../../www/tab3-tab3-module-es5.js.map" beforeDir="false" afterPath="$PROJECT_DIR$/../../www/tab3-tab3-module-es5.js.map" afterDir="false" /> + </list> + <option name="SHOW_DIALOG" value="false" /> + <option name="HIGHLIGHT_CONFLICTS" value="true" /> + <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" /> + <option name="LAST_RESOLUTION" value="IGNORE" /> + </component> + <component name="Git.Settings"> + <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$/../../.." /> + </component> + <component name="ProjectId" id="1uALpqU5TPYJ1ytSagprEEoTqIb" /> + <component name="ProjectLevelVcsManager" settingsEditedManually="true" /> + <component name="ProjectViewState"> + <option name="hideEmptyMiddlePackages" value="true" /> + <option name="showLibraryContents" value="true" /> + </component> + <component name="PropertiesComponent"> + <property name="RunOnceActivity.OpenProjectViewOnStart" value="true" /> + <property name="RunOnceActivity.ShowReadmeOnStart" value="true" /> + <property name="android.sdk.path" value="$USER_HOME$/Android/Sdk" /> + <property name="dart.analysis.tool.window.visible" value="false" /> + <property name="last_opened_file_path" value="$PROJECT_DIR$/.." /> + <property name="settings.editor.selected.configurable" value="AndroidSdkUpdater" /> + </component> + <component name="SvnConfiguration"> + <configuration /> + </component> + <component name="TaskManager"> + <task active="true" id="Default" summary="Default task"> + <changelist id="28d0d6eb-787d-454b-94e9-21b2de456e63" name="Default Changelist" comment="" /> + <created>1624103633240</created> + <option name="number" value="Default" /> + <option name="presentableId" value="Default" /> + <updated>1624103633240</updated> + </task> + <servers /> + </component> + <component name="WindowStateProjectService"> + <state x="779" y="311" width="424" height="491" key="FileChooserDialogImpl" timestamp="1624103643491"> + <screen x="72" y="27" width="1848" height="1053" /> + </state> + <state x="779" y="311" width="424" height="491" key="FileChooserDialogImpl/72.27.1848.1053@72.27.1848.1053" timestamp="1624103643491" /> + </component> +</project> \ No newline at end of file diff --git a/ionic/android/app/build.gradle b/ionic/android/app/build.gradle new file mode 100644 index 0000000000000000000000000000000000000000..e46156dc7cff9e33841a75c327a4f24b65a91c03 --- /dev/null +++ b/ionic/android/app/build.gradle @@ -0,0 +1,51 @@ +apply plugin: 'com.android.application' + +android { + compileSdkVersion rootProject.ext.compileSdkVersion + defaultConfig { + applicationId "com.example.app" + minSdkVersion rootProject.ext.minSdkVersion + targetSdkVersion rootProject.ext.targetSdkVersion + versionCode 1 + versionName "1.0" + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + aaptOptions { + // Files and dirs to omit from the packaged assets dir, modified to accommodate modern web apps. + // Default: https://android.googlesource.com/platform/frameworks/base/+/282e181b58cf72b6ca770dc7ca5f91f135444502/tools/aapt/AaptAssets.cpp#61 + ignoreAssetsPattern '!.svn:!.git:!.ds_store:!*.scc:.*:!CVS:!thumbs.db:!picasa.ini:!*~' + } + } + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + } + } +} + +repositories { + flatDir{ + dirs '../capacitor-cordova-android-plugins/src/main/libs', 'libs' + } +} + +dependencies { + implementation fileTree(include: ['*.jar'], dir: 'libs') + implementation "androidx.appcompat:appcompat:$androidxAppCompatVersion" + implementation project(':capacitor-android') + testImplementation "junit:junit:$junitVersion" + androidTestImplementation "androidx.test.ext:junit:$androidxJunitVersion" + androidTestImplementation "androidx.test.espresso:espresso-core:$androidxEspressoCoreVersion" + implementation project(':capacitor-cordova-android-plugins') +} + +apply from: 'capacitor.build.gradle' + +try { + def servicesJSON = file('google-services.json') + if (servicesJSON.text) { + apply plugin: 'com.google.gms.google-services' + } +} catch(Exception e) { + logger.warn("google-services.json not found, google-services plugin not applied. Push Notifications won't work") +} diff --git a/ionic/android/app/capacitor.build.gradle b/ionic/android/app/capacitor.build.gradle new file mode 100644 index 0000000000000000000000000000000000000000..837cd452a7d86d1a6f69ab6897457f709584c9b0 --- /dev/null +++ b/ionic/android/app/capacitor.build.gradle @@ -0,0 +1,19 @@ +// DO NOT EDIT THIS FILE! IT IS GENERATED EACH TIME "capacitor update" IS RUN + +android { + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } +} + +apply from: "../capacitor-cordova-android-plugins/cordova.variables.gradle" +dependencies { + + +} + + +if (hasProperty('postBuildExtras')) { + postBuildExtras() +} diff --git a/ionic/android/app/proguard-rules.pro b/ionic/android/app/proguard-rules.pro new file mode 100644 index 0000000000000000000000000000000000000000..f1b424510da51fd82143bc74a0a801ae5a1e2fcd --- /dev/null +++ b/ionic/android/app/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile diff --git a/ionic/android/app/src/androidTest/java/com/getcapacitor/myapp/ExampleInstrumentedTest.java b/ionic/android/app/src/androidTest/java/com/getcapacitor/myapp/ExampleInstrumentedTest.java new file mode 100644 index 0000000000000000000000000000000000000000..f2c2217efa5a746f23ea722450a40fe0ca3db099 --- /dev/null +++ b/ionic/android/app/src/androidTest/java/com/getcapacitor/myapp/ExampleInstrumentedTest.java @@ -0,0 +1,26 @@ +package com.getcapacitor.myapp; + +import static org.junit.Assert.*; + +import android.content.Context; +import androidx.test.ext.junit.runners.AndroidJUnit4; +import androidx.test.platform.app.InstrumentationRegistry; +import org.junit.Test; +import org.junit.runner.RunWith; + +/** + * Instrumented test, which will execute on an Android device. + * + * @see <a href="http://d.android.com/tools/testing">Testing documentation</a> + */ +@RunWith(AndroidJUnit4.class) +public class ExampleInstrumentedTest { + + @Test + public void useAppContext() throws Exception { + // Context of the app under test. + Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext(); + + assertEquals("com.getcapacitor.app", appContext.getPackageName()); + } +} diff --git a/ionic/android/app/src/main/AndroidManifest.xml b/ionic/android/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000000000000000000000000000000000000..427dafdbbd40d8de160b919d853b452ef06b3c5d --- /dev/null +++ b/ionic/android/app/src/main/AndroidManifest.xml @@ -0,0 +1,41 @@ +<?xml version="1.0" encoding="utf-8"?> +<manifest xmlns:android="http://schemas.android.com/apk/res/android" + package="com.example.app"> + + <application + android:allowBackup="true" + android:icon="@mipmap/ic_launcher" + android:label="@string/app_name" + android:roundIcon="@mipmap/ic_launcher_round" + android:supportsRtl="true" + android:theme="@style/AppTheme"> + + <activity + android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|smallestScreenSize|screenLayout|uiMode" + android:name="com.example.app.MainActivity" + android:label="@string/title_activity_main" + android:theme="@style/AppTheme.NoActionBarLaunch" + android:launchMode="singleTask"> + + <intent-filter> + <action android:name="android.intent.action.MAIN" /> + <category android:name="android.intent.category.LAUNCHER" /> + </intent-filter> + + </activity> + + <provider + android:name="androidx.core.content.FileProvider" + android:authorities="${applicationId}.fileprovider" + android:exported="false" + android:grantUriPermissions="true"> + <meta-data + android:name="android.support.FILE_PROVIDER_PATHS" + android:resource="@xml/file_paths"></meta-data> + </provider> + </application> + + <!-- Permissions --> + + <uses-permission android:name="android.permission.INTERNET" /> +</manifest> diff --git a/ionic/android/app/src/main/assets/capacitor.config.json b/ionic/android/app/src/main/assets/capacitor.config.json new file mode 100644 index 0000000000000000000000000000000000000000..42e1bf6b74e1628f4d176e2b9ec4453131da3641 --- /dev/null +++ b/ionic/android/app/src/main/assets/capacitor.config.json @@ -0,0 +1,17 @@ +{ + "appId": "com.example.app", + "appName": "whatsapp", + "webDir": "www", + "bundledWebRuntime": false, + "cordova": { + "preferences": { + "ScrollEnabled": "false", + "BackupWebStorage": "none", + "SplashMaintainAspectRatio": "true", + "FadeSplashScreenDuration": "300", + "SplashShowOnlyFirstTime": "false", + "SplashScreen": "screen", + "SplashScreenDelay": "3000" + } + } +} diff --git a/ionic/android/app/src/main/assets/capacitor.plugins.json b/ionic/android/app/src/main/assets/capacitor.plugins.json new file mode 100644 index 0000000000000000000000000000000000000000..fe51488c7066f6687ef680d6bfaa4f7768ef205c --- /dev/null +++ b/ionic/android/app/src/main/assets/capacitor.plugins.json @@ -0,0 +1 @@ +[] diff --git a/ionic/android/app/src/main/java/com/example/app/MainActivity.java b/ionic/android/app/src/main/java/com/example/app/MainActivity.java new file mode 100644 index 0000000000000000000000000000000000000000..966f32d39b43bd4f80c04c79e4fdec8215df4c16 --- /dev/null +++ b/ionic/android/app/src/main/java/com/example/app/MainActivity.java @@ -0,0 +1,5 @@ +package com.example.app; + +import com.getcapacitor.BridgeActivity; + +public class MainActivity extends BridgeActivity {} diff --git a/ionic/android/app/src/main/res/drawable-land-hdpi/splash.png b/ionic/android/app/src/main/res/drawable-land-hdpi/splash.png new file mode 100644 index 0000000000000000000000000000000000000000..e31573b4fc93e60d171f4046c0220e1463075d9e Binary files /dev/null and b/ionic/android/app/src/main/res/drawable-land-hdpi/splash.png differ diff --git a/ionic/android/app/src/main/res/drawable-land-mdpi/splash.png b/ionic/android/app/src/main/res/drawable-land-mdpi/splash.png new file mode 100644 index 0000000000000000000000000000000000000000..f7a64923ea1a0565d25fa139c176d6bf42184e48 Binary files /dev/null and b/ionic/android/app/src/main/res/drawable-land-mdpi/splash.png differ diff --git a/ionic/android/app/src/main/res/drawable-land-xhdpi/splash.png b/ionic/android/app/src/main/res/drawable-land-xhdpi/splash.png new file mode 100644 index 0000000000000000000000000000000000000000..807725501bdd92e94e51e7b2b0006f69e0083a0b Binary files /dev/null and b/ionic/android/app/src/main/res/drawable-land-xhdpi/splash.png differ diff --git a/ionic/android/app/src/main/res/drawable-land-xxhdpi/splash.png b/ionic/android/app/src/main/res/drawable-land-xxhdpi/splash.png new file mode 100644 index 0000000000000000000000000000000000000000..14c6c8fe39fcd51a0414866ad28cbe8ff3acb060 Binary files /dev/null and b/ionic/android/app/src/main/res/drawable-land-xxhdpi/splash.png differ diff --git a/ionic/android/app/src/main/res/drawable-land-xxxhdpi/splash.png b/ionic/android/app/src/main/res/drawable-land-xxxhdpi/splash.png new file mode 100644 index 0000000000000000000000000000000000000000..244ca2506dbe0fd8f6a05520ac7d1a629ea81438 Binary files /dev/null and b/ionic/android/app/src/main/res/drawable-land-xxxhdpi/splash.png differ diff --git a/ionic/android/app/src/main/res/drawable-port-hdpi/splash.png b/ionic/android/app/src/main/res/drawable-port-hdpi/splash.png new file mode 100644 index 0000000000000000000000000000000000000000..74faaa583c8221c27a8cb822c3fbe218bafa3299 Binary files /dev/null and b/ionic/android/app/src/main/res/drawable-port-hdpi/splash.png differ diff --git a/ionic/android/app/src/main/res/drawable-port-mdpi/splash.png b/ionic/android/app/src/main/res/drawable-port-mdpi/splash.png new file mode 100644 index 0000000000000000000000000000000000000000..e944f4ad4e1ca1c8cf9a87b366acc01c4e5c1616 Binary files /dev/null and b/ionic/android/app/src/main/res/drawable-port-mdpi/splash.png differ diff --git a/ionic/android/app/src/main/res/drawable-port-xhdpi/splash.png b/ionic/android/app/src/main/res/drawable-port-xhdpi/splash.png new file mode 100644 index 0000000000000000000000000000000000000000..564a82ff954aec267492467c0169a270c4e8fea9 Binary files /dev/null and b/ionic/android/app/src/main/res/drawable-port-xhdpi/splash.png differ diff --git a/ionic/android/app/src/main/res/drawable-port-xxhdpi/splash.png b/ionic/android/app/src/main/res/drawable-port-xxhdpi/splash.png new file mode 100644 index 0000000000000000000000000000000000000000..bfabe6871a17a5e95b78fb30d49b7d2b4d2fe4c0 Binary files /dev/null and b/ionic/android/app/src/main/res/drawable-port-xxhdpi/splash.png differ diff --git a/ionic/android/app/src/main/res/drawable-port-xxxhdpi/splash.png b/ionic/android/app/src/main/res/drawable-port-xxxhdpi/splash.png new file mode 100644 index 0000000000000000000000000000000000000000..6929071268eb03ee0f088142b6523566b78550e2 Binary files /dev/null and b/ionic/android/app/src/main/res/drawable-port-xxxhdpi/splash.png differ diff --git a/ionic/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/ionic/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml new file mode 100644 index 0000000000000000000000000000000000000000..c7bd21dbd86990cde81fea8abd3bf904b4546749 --- /dev/null +++ b/ionic/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml @@ -0,0 +1,34 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:aapt="http://schemas.android.com/aapt" + android:width="108dp" + android:height="108dp" + android:viewportHeight="108" + android:viewportWidth="108"> + <path + android:fillType="evenOdd" + android:pathData="M32,64C32,64 38.39,52.99 44.13,50.95C51.37,48.37 70.14,49.57 70.14,49.57L108.26,87.69L108,109.01L75.97,107.97L32,64Z" + android:strokeColor="#00000000" + android:strokeWidth="1"> + <aapt:attr name="android:fillColor"> + <gradient + android:endX="78.5885" + android:endY="90.9159" + android:startX="48.7653" + android:startY="61.0927" + android:type="linear"> + <item + android:color="#44000000" + android:offset="0.0" /> + <item + android:color="#00000000" + android:offset="1.0" /> + </gradient> + </aapt:attr> + </path> + <path + android:fillColor="#FFFFFF" + android:fillType="nonZero" + android:pathData="M66.94,46.02L66.94,46.02C72.44,50.07 76,56.61 76,64L32,64C32,56.61 35.56,50.11 40.98,46.06L36.18,41.19C35.45,40.45 35.45,39.3 36.18,38.56C36.91,37.81 38.05,37.81 38.78,38.56L44.25,44.05C47.18,42.57 50.48,41.71 54,41.71C57.48,41.71 60.78,42.57 63.68,44.05L69.11,38.56C69.84,37.81 70.98,37.81 71.71,38.56C72.44,39.3 72.44,40.45 71.71,41.19L66.94,46.02ZM62.94,56.92C64.08,56.92 65,56.01 65,54.88C65,53.76 64.08,52.85 62.94,52.85C61.8,52.85 60.88,53.76 60.88,54.88C60.88,56.01 61.8,56.92 62.94,56.92ZM45.06,56.92C46.2,56.92 47.13,56.01 47.13,54.88C47.13,53.76 46.2,52.85 45.06,52.85C43.92,52.85 43,53.76 43,54.88C43,56.01 43.92,56.92 45.06,56.92Z" + android:strokeColor="#00000000" + android:strokeWidth="1" /> +</vector> diff --git a/ionic/android/app/src/main/res/drawable/ic_launcher_background.xml b/ionic/android/app/src/main/res/drawable/ic_launcher_background.xml new file mode 100644 index 0000000000000000000000000000000000000000..d5fccc538c179838bfdce779c26eebb4fa0b5ce9 --- /dev/null +++ b/ionic/android/app/src/main/res/drawable/ic_launcher_background.xml @@ -0,0 +1,170 @@ +<?xml version="1.0" encoding="utf-8"?> +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="108dp" + android:height="108dp" + android:viewportHeight="108" + android:viewportWidth="108"> + <path + android:fillColor="#26A69A" + android:pathData="M0,0h108v108h-108z" /> + <path + android:fillColor="#00000000" + android:pathData="M9,0L9,108" + android:strokeColor="#33FFFFFF" + android:strokeWidth="0.8" /> + <path + android:fillColor="#00000000" + android:pathData="M19,0L19,108" + android:strokeColor="#33FFFFFF" + android:strokeWidth="0.8" /> + <path + android:fillColor="#00000000" + android:pathData="M29,0L29,108" + android:strokeColor="#33FFFFFF" + android:strokeWidth="0.8" /> + <path + android:fillColor="#00000000" + android:pathData="M39,0L39,108" + android:strokeColor="#33FFFFFF" + android:strokeWidth="0.8" /> + <path + android:fillColor="#00000000" + android:pathData="M49,0L49,108" + android:strokeColor="#33FFFFFF" + android:strokeWidth="0.8" /> + <path + android:fillColor="#00000000" + android:pathData="M59,0L59,108" + android:strokeColor="#33FFFFFF" + android:strokeWidth="0.8" /> + <path + android:fillColor="#00000000" + android:pathData="M69,0L69,108" + android:strokeColor="#33FFFFFF" + android:strokeWidth="0.8" /> + <path + android:fillColor="#00000000" + android:pathData="M79,0L79,108" + android:strokeColor="#33FFFFFF" + android:strokeWidth="0.8" /> + <path + android:fillColor="#00000000" + android:pathData="M89,0L89,108" + android:strokeColor="#33FFFFFF" + android:strokeWidth="0.8" /> + <path + android:fillColor="#00000000" + android:pathData="M99,0L99,108" + android:strokeColor="#33FFFFFF" + android:strokeWidth="0.8" /> + <path + android:fillColor="#00000000" + android:pathData="M0,9L108,9" + android:strokeColor="#33FFFFFF" + android:strokeWidth="0.8" /> + <path + android:fillColor="#00000000" + android:pathData="M0,19L108,19" + android:strokeColor="#33FFFFFF" + android:strokeWidth="0.8" /> + <path + android:fillColor="#00000000" + android:pathData="M0,29L108,29" + android:strokeColor="#33FFFFFF" + android:strokeWidth="0.8" /> + <path + android:fillColor="#00000000" + android:pathData="M0,39L108,39" + android:strokeColor="#33FFFFFF" + android:strokeWidth="0.8" /> + <path + android:fillColor="#00000000" + android:pathData="M0,49L108,49" + android:strokeColor="#33FFFFFF" + android:strokeWidth="0.8" /> + <path + android:fillColor="#00000000" + android:pathData="M0,59L108,59" + android:strokeColor="#33FFFFFF" + android:strokeWidth="0.8" /> + <path + android:fillColor="#00000000" + android:pathData="M0,69L108,69" + android:strokeColor="#33FFFFFF" + android:strokeWidth="0.8" /> + <path + android:fillColor="#00000000" + android:pathData="M0,79L108,79" + android:strokeColor="#33FFFFFF" + android:strokeWidth="0.8" /> + <path + android:fillColor="#00000000" + android:pathData="M0,89L108,89" + android:strokeColor="#33FFFFFF" + android:strokeWidth="0.8" /> + <path + android:fillColor="#00000000" + android:pathData="M0,99L108,99" + android:strokeColor="#33FFFFFF" + android:strokeWidth="0.8" /> + <path + android:fillColor="#00000000" + android:pathData="M19,29L89,29" + android:strokeColor="#33FFFFFF" + android:strokeWidth="0.8" /> + <path + android:fillColor="#00000000" + android:pathData="M19,39L89,39" + android:strokeColor="#33FFFFFF" + android:strokeWidth="0.8" /> + <path + android:fillColor="#00000000" + android:pathData="M19,49L89,49" + android:strokeColor="#33FFFFFF" + android:strokeWidth="0.8" /> + <path + android:fillColor="#00000000" + android:pathData="M19,59L89,59" + android:strokeColor="#33FFFFFF" + android:strokeWidth="0.8" /> + <path + android:fillColor="#00000000" + android:pathData="M19,69L89,69" + android:strokeColor="#33FFFFFF" + android:strokeWidth="0.8" /> + <path + android:fillColor="#00000000" + android:pathData="M19,79L89,79" + android:strokeColor="#33FFFFFF" + android:strokeWidth="0.8" /> + <path + android:fillColor="#00000000" + android:pathData="M29,19L29,89" + android:strokeColor="#33FFFFFF" + android:strokeWidth="0.8" /> + <path + android:fillColor="#00000000" + android:pathData="M39,19L39,89" + android:strokeColor="#33FFFFFF" + android:strokeWidth="0.8" /> + <path + android:fillColor="#00000000" + android:pathData="M49,19L49,89" + android:strokeColor="#33FFFFFF" + android:strokeWidth="0.8" /> + <path + android:fillColor="#00000000" + android:pathData="M59,19L59,89" + android:strokeColor="#33FFFFFF" + android:strokeWidth="0.8" /> + <path + android:fillColor="#00000000" + android:pathData="M69,19L69,89" + android:strokeColor="#33FFFFFF" + android:strokeWidth="0.8" /> + <path + android:fillColor="#00000000" + android:pathData="M79,19L79,89" + android:strokeColor="#33FFFFFF" + android:strokeWidth="0.8" /> +</vector> diff --git a/ionic/android/app/src/main/res/drawable/splash.png b/ionic/android/app/src/main/res/drawable/splash.png new file mode 100644 index 0000000000000000000000000000000000000000..f7a64923ea1a0565d25fa139c176d6bf42184e48 Binary files /dev/null and b/ionic/android/app/src/main/res/drawable/splash.png differ diff --git a/ionic/android/app/src/main/res/layout/activity_main.xml b/ionic/android/app/src/main/res/layout/activity_main.xml new file mode 100644 index 0000000000000000000000000000000000000000..b5ad1387011da0894cc1d91f44f3bd77f5403f5d --- /dev/null +++ b/ionic/android/app/src/main/res/layout/activity_main.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="utf-8"?> +<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + xmlns:tools="http://schemas.android.com/tools" + android:layout_width="match_parent" + android:layout_height="match_parent" + tools:context=".MainActivity"> + + <WebView + android:layout_width="match_parent" + android:layout_height="match_parent" /> +</androidx.coordinatorlayout.widget.CoordinatorLayout> diff --git a/ionic/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/ionic/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml new file mode 100644 index 0000000000000000000000000000000000000000..036d09bc5fd523323794379703c4a111d1e28a04 --- /dev/null +++ b/ionic/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="utf-8"?> +<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android"> + <background android:drawable="@color/ic_launcher_background"/> + <foreground android:drawable="@mipmap/ic_launcher_foreground"/> +</adaptive-icon> \ No newline at end of file diff --git a/ionic/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/ionic/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml new file mode 100644 index 0000000000000000000000000000000000000000..036d09bc5fd523323794379703c4a111d1e28a04 --- /dev/null +++ b/ionic/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="utf-8"?> +<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android"> + <background android:drawable="@color/ic_launcher_background"/> + <foreground android:drawable="@mipmap/ic_launcher_foreground"/> +</adaptive-icon> \ No newline at end of file diff --git a/ionic/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/ionic/android/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..c023e50595074292c7361183a64de08cf9686c9c Binary files /dev/null and b/ionic/android/app/src/main/res/mipmap-hdpi/ic_launcher.png differ diff --git a/ionic/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png b/ionic/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..2127973b2d318df7085734d236d0ec649a2b0292 Binary files /dev/null and b/ionic/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png differ diff --git a/ionic/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/ionic/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..b441f37d6a2a58cfdda841fbc8148a474a4ece3f Binary files /dev/null and b/ionic/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png differ diff --git a/ionic/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/ionic/android/app/src/main/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..72905b854cb4d39e8717090424302e370239a08e Binary files /dev/null and b/ionic/android/app/src/main/res/mipmap-mdpi/ic_launcher.png differ diff --git a/ionic/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png b/ionic/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..8ed0605c27c764f865674ab0b14c859a1ba29ce6 Binary files /dev/null and b/ionic/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png differ diff --git a/ionic/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/ionic/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..9502e47a2c575c50c925b987f397bc5244c57b90 Binary files /dev/null and b/ionic/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png differ diff --git a/ionic/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/ionic/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..4d1e077104cd61e6a4c3707e87363b523077245a Binary files /dev/null and b/ionic/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/ionic/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png b/ionic/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..df0f15880bee46332dfc6622583215194f948b0f Binary files /dev/null and b/ionic/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png differ diff --git a/ionic/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/ionic/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..853db043d8a21a3f2429bb521e373e8b1d39cacd Binary files /dev/null and b/ionic/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png differ diff --git a/ionic/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/ionic/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..6cdf97c1196d48e9833487ff6de7c4cfc4e1232d Binary files /dev/null and b/ionic/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/ionic/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png b/ionic/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..2960cbb6104b915c84760f889deed9bff2b3e17a Binary files /dev/null and b/ionic/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png differ diff --git a/ionic/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/ionic/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..8e3093a86fffb4d02383785a46189822142d5607 Binary files /dev/null and b/ionic/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png differ diff --git a/ionic/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/ionic/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..46de6e255a95abb68a915d7cb45776d890768922 Binary files /dev/null and b/ionic/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/ionic/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png b/ionic/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..d2ea9abed395c5fb38369a54896c51c8e8bdff72 Binary files /dev/null and b/ionic/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png differ diff --git a/ionic/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/ionic/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..a40d73e9c68ea638c28c7b13e4bcd1e179a3a102 Binary files /dev/null and b/ionic/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png differ diff --git a/ionic/android/app/src/main/res/values/ic_launcher_background.xml b/ionic/android/app/src/main/res/values/ic_launcher_background.xml new file mode 100644 index 0000000000000000000000000000000000000000..c5d5899fdf0a1b144bf341b29e0c66ba50bbcedd --- /dev/null +++ b/ionic/android/app/src/main/res/values/ic_launcher_background.xml @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources> + <color name="ic_launcher_background">#FFFFFF</color> +</resources> \ No newline at end of file diff --git a/ionic/android/app/src/main/res/values/strings.xml b/ionic/android/app/src/main/res/values/strings.xml new file mode 100644 index 0000000000000000000000000000000000000000..7a11e99518ca35f1b325944228896e79fc0dd876 --- /dev/null +++ b/ionic/android/app/src/main/res/values/strings.xml @@ -0,0 +1,7 @@ +<?xml version='1.0' encoding='utf-8'?> +<resources> + <string name="app_name">whatsapp</string> + <string name="title_activity_main">whatsapp</string> + <string name="package_name">com.example.app</string> + <string name="custom_url_scheme">com.example.app</string> +</resources> diff --git a/ionic/android/app/src/main/res/values/styles.xml b/ionic/android/app/src/main/res/values/styles.xml new file mode 100644 index 0000000000000000000000000000000000000000..bb45498f605a1bace7382c68c40c7dc8ba0abae0 --- /dev/null +++ b/ionic/android/app/src/main/res/values/styles.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources> + + <!-- Base application theme. --> + <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> + <!-- Customize your theme here. --> + <item name="colorPrimary">@color/colorPrimary</item> + <item name="colorPrimaryDark">@color/colorPrimaryDark</item> + <item name="colorAccent">@color/colorAccent</item> + </style> + + <style name="AppTheme.NoActionBar" parent="Theme.AppCompat.NoActionBar"> + <item name="windowActionBar">false</item> + <item name="windowNoTitle">true</item> + <item name="android:background">@null</item> + </style> + + + <style name="AppTheme.NoActionBarLaunch" parent="AppTheme.NoActionBar"> + <item name="android:background">@drawable/splash</item> + </style> +</resources> \ No newline at end of file diff --git a/ionic/android/app/src/main/res/xml/config.xml b/ionic/android/app/src/main/res/xml/config.xml new file mode 100644 index 0000000000000000000000000000000000000000..3891dd40e2c7d86ff15424baeb2fba04c6946bd2 --- /dev/null +++ b/ionic/android/app/src/main/res/xml/config.xml @@ -0,0 +1,27 @@ +<?xml version='1.0' encoding='utf-8'?> +<widget version="1.0.0" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0"> + <access origin="*" /> + + <feature name="Device"> + <param name="android-package" value="org.apache.cordova.device.Device"/> + </feature> + + <feature name="StatusBar"> + <param name="android-package" value="org.apache.cordova.statusbar.StatusBar"/> + <param name="onload" value="true"/> + </feature> + + <feature name="Whitelist"> + <param name="android-package" value="org.apache.cordova.whitelist.WhitelistPlugin"/> + <param name="onload" value="true"/> + </feature> + + + <preference name="ScrollEnabled" value="false" /> + <preference name="BackupWebStorage" value="none" /> + <preference name="SplashMaintainAspectRatio" value="true" /> + <preference name="FadeSplashScreenDuration" value="300" /> + <preference name="SplashShowOnlyFirstTime" value="false" /> + <preference name="SplashScreen" value="screen" /> + <preference name="SplashScreenDelay" value="3000" /> +</widget> \ No newline at end of file diff --git a/ionic/android/app/src/main/res/xml/file_paths.xml b/ionic/android/app/src/main/res/xml/file_paths.xml new file mode 100644 index 0000000000000000000000000000000000000000..bd0c4d80d0473953333d5adb0d38ac713d0d648b --- /dev/null +++ b/ionic/android/app/src/main/res/xml/file_paths.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="utf-8"?> +<paths xmlns:android="http://schemas.android.com/apk/res/android"> + <external-path name="my_images" path="." /> + <cache-path name="my_cache_images" path="." /> +</paths> \ No newline at end of file diff --git a/ionic/android/app/src/test/java/com/getcapacitor/myapp/ExampleUnitTest.java b/ionic/android/app/src/test/java/com/getcapacitor/myapp/ExampleUnitTest.java new file mode 100644 index 0000000000000000000000000000000000000000..0297327842dfa194b316aec9730bb3c7349b7282 --- /dev/null +++ b/ionic/android/app/src/test/java/com/getcapacitor/myapp/ExampleUnitTest.java @@ -0,0 +1,18 @@ +package com.getcapacitor.myapp; + +import static org.junit.Assert.*; + +import org.junit.Test; + +/** + * Example local unit test, which will execute on the development machine (host). + * + * @see <a href="http://d.android.com/tools/testing">Testing documentation</a> + */ +public class ExampleUnitTest { + + @Test + public void addition_isCorrect() throws Exception { + assertEquals(4, 2 + 2); + } +} diff --git a/ionic/android/build.gradle b/ionic/android/build.gradle new file mode 100644 index 0000000000000000000000000000000000000000..ad085c34555a1bd2220f39aa13c87c5ab568186d --- /dev/null +++ b/ionic/android/build.gradle @@ -0,0 +1,29 @@ +// Top-level build file where you can add configuration options common to all sub-projects/modules. + +buildscript { + + repositories { + google() + jcenter() + } + dependencies { + classpath 'com.android.tools.build:gradle:4.2.1' + classpath 'com.google.gms:google-services:4.3.5' + + // NOTE: Do not place your application dependencies here; they belong + // in the individual module build.gradle files + } +} + +apply from: "variables.gradle" + +allprojects { + repositories { + google() + jcenter() + } +} + +task clean(type: Delete) { + delete rootProject.buildDir +} diff --git a/ionic/android/capacitor.settings.gradle b/ionic/android/capacitor.settings.gradle new file mode 100644 index 0000000000000000000000000000000000000000..9a5fa872e75f3ac9cb82951943ec4ce0ba50005e --- /dev/null +++ b/ionic/android/capacitor.settings.gradle @@ -0,0 +1,3 @@ +// DO NOT EDIT THIS FILE! IT IS GENERATED EACH TIME "capacitor update" IS RUN +include ':capacitor-android' +project(':capacitor-android').projectDir = new File('../node_modules/@capacitor/android/capacitor') diff --git a/ionic/android/gradle.properties b/ionic/android/gradle.properties new file mode 100644 index 0000000000000000000000000000000000000000..0566c221d2c3c66e7493791345d3f42bc47565cc --- /dev/null +++ b/ionic/android/gradle.properties @@ -0,0 +1,24 @@ +# Project-wide Gradle settings. + +# IDE (e.g. Android Studio) users: +# Gradle settings configured through the IDE *will override* +# any settings specified in this file. + +# For more details on how to configure your build environment visit +# http://www.gradle.org/docs/current/userguide/build_environment.html + +# Specifies the JVM arguments used for the daemon process. +# The setting is particularly useful for tweaking memory settings. +org.gradle.jvmargs=-Xmx1536m + +# When configured, Gradle will run in incubating parallel mode. +# This option should only be used with decoupled projects. More details, visit +# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects +# org.gradle.parallel=true + +# AndroidX package structure to make it clearer which packages are bundled with the +# Android operating system, and which are packaged with your app's APK +# https://developer.android.com/topic/libraries/support-library/androidx-rn +android.useAndroidX=true +# Automatically convert third-party libraries to use AndroidX +android.enableJetifier=true diff --git a/ionic/android/gradle/wrapper/gradle-wrapper.jar b/ionic/android/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..e708b1c023ec8b20f512888fe07c5bd3ff77bb8f Binary files /dev/null and b/ionic/android/gradle/wrapper/gradle-wrapper.jar differ diff --git a/ionic/android/gradle/wrapper/gradle-wrapper.properties b/ionic/android/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000000000000000000000000000000000000..3c4101c3ec430d6891f6ef3e1bceff20d896b642 --- /dev/null +++ b/ionic/android/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,5 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-7.0-all.zip +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/ionic/android/gradlew b/ionic/android/gradlew new file mode 100755 index 0000000000000000000000000000000000000000..4f906e0c811fc9e230eb44819f509cd0627f2600 --- /dev/null +++ b/ionic/android/gradlew @@ -0,0 +1,185 @@ +#!/usr/bin/env sh + +# +# Copyright 2015 the original author or authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin or MSYS, switch paths to Windows format before running java +if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=`expr $i + 1` + done + case $i in + 0) set -- ;; + 1) set -- "$args0" ;; + 2) set -- "$args0" "$args1" ;; + 3) set -- "$args0" "$args1" "$args2" ;; + 4) set -- "$args0" "$args1" "$args2" "$args3" ;; + 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=`save "$@"` + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +exec "$JAVACMD" "$@" diff --git a/ionic/android/gradlew.bat b/ionic/android/gradlew.bat new file mode 100644 index 0000000000000000000000000000000000000000..ac1b06f93825db68fb0c0b5150917f340eaa5d02 --- /dev/null +++ b/ionic/android/gradlew.bat @@ -0,0 +1,89 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/ionic/android/settings.gradle b/ionic/android/settings.gradle new file mode 100644 index 0000000000000000000000000000000000000000..3b4431d7724bd82d1aeb2ce59e7a0504b8869f81 --- /dev/null +++ b/ionic/android/settings.gradle @@ -0,0 +1,5 @@ +include ':app' +include ':capacitor-cordova-android-plugins' +project(':capacitor-cordova-android-plugins').projectDir = new File('./capacitor-cordova-android-plugins/') + +apply from: 'capacitor.settings.gradle' \ No newline at end of file diff --git a/ionic/android/variables.gradle b/ionic/android/variables.gradle new file mode 100644 index 0000000000000000000000000000000000000000..967549c5436c3d9589c49fabdc2a44076c119bef --- /dev/null +++ b/ionic/android/variables.gradle @@ -0,0 +1,14 @@ +ext { + minSdkVersion = 21 + compileSdkVersion = 30 + targetSdkVersion = 30 + androidxActivityVersion = '1.2.0' + androidxAppCompatVersion = '1.2.0' + androidxCoordinatorLayoutVersion = '1.1.0' + androidxCoreVersion = '1.3.2' + androidxFragmentVersion = '1.3.0' + junitVersion = '4.13.1' + androidxJunitVersion = '1.1.2' + androidxEspressoCoreVersion = '3.3.0' + cordovaAndroidVersion = '7.0.0' +} \ No newline at end of file diff --git a/ionic/capacitor.config.json b/ionic/capacitor.config.json new file mode 100644 index 0000000000000000000000000000000000000000..0967ef424bce6791893e9a57bb952f80fd536e93 --- /dev/null +++ b/ionic/capacitor.config.json @@ -0,0 +1 @@ +{} diff --git a/ionic/capacitor.config.ts b/ionic/capacitor.config.ts new file mode 100644 index 0000000000000000000000000000000000000000..1073164e704efe83ac3bebfee3149bad2065caee --- /dev/null +++ b/ionic/capacitor.config.ts @@ -0,0 +1,21 @@ +import { CapacitorConfig } from '@capacitor/cli'; + +const config: CapacitorConfig = { + appId: 'com.example.app', + appName: 'whatsapp', + webDir: 'www', + bundledWebRuntime: false, + cordova: { + preferences: { + ScrollEnabled: 'false', + BackupWebStorage: 'none', + SplashMaintainAspectRatio: 'true', + FadeSplashScreenDuration: '300', + SplashShowOnlyFirstTime: 'false', + SplashScreen: 'screen', + SplashScreenDelay: '3000' + } + } +}; + +export default config; diff --git a/ionic/ionic.config.json b/ionic/ionic.config.json index 7c5df613c11456c8ec6a4a4637c8d497d00437ad..2ffd8bf4ecd21ff23e8a48e1465b5ccf0324d3ee 100644 --- a/ionic/ionic.config.json +++ b/ionic/ionic.config.json @@ -1,7 +1,8 @@ { "name": "whatsapp", "integrations": { - "cordova": {} + "cordova": {}, + "capacitor": {} }, "type": "angular" } diff --git a/ionic/package-lock.json b/ionic/package-lock.json index ed13c05e1df1f82ed7e33463fd2a9d0fde43c51c..6652c774bf98e54a9949d41c4858dce14aeef622 100644 --- a/ionic/package-lock.json +++ b/ionic/package-lock.json @@ -1,8 +1,17569 @@ { "name": "whatsapp", "version": "0.0.1", - "lockfileVersion": 1, + "lockfileVersion": 2, "requires": true, + "packages": { + "": { + "name": "whatsapp", + "version": "0.0.1", + "dependencies": { + "@angular/common": "~10.0.0", + "@angular/core": "~10.0.0", + "@angular/forms": "~10.0.0", + "@angular/platform-browser": "~10.0.0", + "@angular/platform-browser-dynamic": "~10.0.0", + "@angular/router": "~10.0.0", + "@capacitor/android": "^3.0.1", + "@capacitor/core": "3.0.1", + "@ionic-native/core": "^5.0.0", + "@ionic-native/splash-screen": "^5.0.0", + "@ionic-native/status-bar": "^5.0.0", + "@ionic/angular": "^5.0.0", + "@ionic/lab": "^3.2.10", + "capacitor": "^0.5.5", + "rxjs": "~6.5.5", + "tslib": "^2.0.0", + "zone.js": "~0.10.3" + }, + "devDependencies": { + "@angular-devkit/build-angular": "~0.1000.0", + "@angular/cli": "~10.0.5", + "@angular/compiler": "~10.0.0", + "@angular/compiler-cli": "~10.0.0", + "@angular/language-service": "~10.0.0", + "@capacitor/cli": "3.0.1", + "@ionic/angular-toolkit": "^2.3.0", + "@types/jasmine": "~3.5.0", + "@types/jasminewd2": "~2.0.3", + "@types/node": "^12.11.1", + "codelyzer": "^6.0.0", + "cordova-android": "^9.1.0", + "cordova-plugin-device": "^2.0.2", + "cordova-plugin-ionic-keyboard": "^2.2.0", + "cordova-plugin-ionic-webview": "^4.2.1", + "cordova-plugin-splashscreen": "^5.0.2", + "cordova-plugin-statusbar": "^2.4.2", + "cordova-plugin-whitelist": "^1.3.3", + "jasmine-core": "~3.5.0", + "jasmine-spec-reporter": "~5.0.0", + "karma": "~5.0.0", + "karma-chrome-launcher": "~3.1.0", + "karma-coverage-istanbul-reporter": "~3.0.2", + "karma-jasmine": "~3.3.0", + "karma-jasmine-html-reporter": "^1.5.0", + "protractor": "~7.0.0", + "ts-node": "~8.3.0", + "tslint": "~6.1.0", + "typescript": "~3.9.5" + } + }, + "node_modules/@angular-devkit/architect": { + "version": "0.1000.8", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1000.8.tgz", + "integrity": "sha512-2AqPbiEugtPxNz4MGhLh+imUVelhW9h1cdJs2AbxZosIxftPb5DNDQUSAwVmRGp4CtcXVrlvcDwc0f4Fw1aiIA==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "10.0.8", + "rxjs": "6.5.5" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 6.11.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular-devkit/build-angular": { + "version": "0.1000.8", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-0.1000.8.tgz", + "integrity": "sha512-wwDN2oadQvYPL7lDmvGsoWQjW++0ZnxWk1QVlABGhBSIs8Uxs26Hjd5YNUSsvJavBkqb1UZIOilqzb4dig5MIA==", + "dev": true, + "dependencies": { + "@angular-devkit/architect": "0.1000.8", + "@angular-devkit/build-optimizer": "0.1000.8", + "@angular-devkit/build-webpack": "0.1000.8", + "@angular-devkit/core": "10.0.8", + "@babel/core": "7.9.6", + "@babel/generator": "7.9.6", + "@babel/plugin-transform-runtime": "7.9.6", + "@babel/preset-env": "7.9.6", + "@babel/runtime": "7.9.6", + "@babel/template": "7.8.6", + "@jsdevtools/coverage-istanbul-loader": "3.0.3", + "@ngtools/webpack": "10.0.8", + "ajv": "6.12.3", + "autoprefixer": "9.8.0", + "babel-loader": "8.1.0", + "browserslist": "^4.9.1", + "cacache": "15.0.3", + "caniuse-lite": "^1.0.30001032", + "circular-dependency-plugin": "5.2.0", + "copy-webpack-plugin": "6.0.3", + "core-js": "3.6.4", + "css-loader": "3.5.3", + "cssnano": "4.1.10", + "file-loader": "6.0.0", + "find-cache-dir": "3.3.1", + "glob": "7.1.6", + "jest-worker": "26.0.0", + "karma-source-map-support": "1.4.0", + "less-loader": "6.1.0", + "license-webpack-plugin": "2.2.0", + "loader-utils": "2.0.0", + "mini-css-extract-plugin": "0.9.0", + "minimatch": "3.0.4", + "open": "7.0.4", + "parse5": "4.0.0", + "pnp-webpack-plugin": "1.6.4", + "postcss": "7.0.31", + "postcss-import": "12.0.1", + "postcss-loader": "3.0.0", + "raw-loader": "4.0.1", + "regenerator-runtime": "0.13.5", + "resolve-url-loader": "3.1.1", + "rimraf": "3.0.2", + "rollup": "2.10.9", + "rxjs": "6.5.5", + "sass": "1.26.5", + "sass-loader": "8.0.2", + "semver": "7.3.2", + "source-map": "0.7.3", + "source-map-loader": "1.0.0", + "source-map-support": "0.5.19", + "speed-measure-webpack-plugin": "1.3.3", + "style-loader": "1.2.1", + "stylus": "0.54.7", + "stylus-loader": "3.0.2", + "terser": "4.7.0", + "terser-webpack-plugin": "3.0.1", + "tree-kill": "1.2.2", + "webpack": "4.43.0", + "webpack-dev-middleware": "3.7.2", + "webpack-dev-server": "3.11.0", + "webpack-merge": "4.2.2", + "webpack-sources": "1.4.3", + "webpack-subresource-integrity": "1.4.1", + "worker-plugin": "4.0.3" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 6.11.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular-devkit/build-optimizer": { + "version": "0.1000.8", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.1000.8.tgz", + "integrity": "sha512-esODHuTGEEMx1SmLUq03VAMly8gZUd1vRuvZeKS5HqKwDg8ZzcI7/25BuuUSlyST+6BEdjo2gnmagQnG0VBdQw==", + "dev": true, + "dependencies": { + "loader-utils": "2.0.0", + "source-map": "0.7.3", + "tslib": "2.0.0", + "webpack-sources": "1.4.3" + }, + "bin": { + "build-optimizer": "src/build-optimizer/cli.js" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 6.11.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular-devkit/build-optimizer/node_modules/tslib": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.0.tgz", + "integrity": "sha512-lTqkx847PI7xEDYJntxZH89L2/aXInsyF2luSafe/+0fHOMjlBNXdH6th7f70qxLDhul7KZK0zC8V5ZIyHl0/g==", + "dev": true + }, + "node_modules/@angular-devkit/build-webpack": { + "version": "0.1000.8", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1000.8.tgz", + "integrity": "sha512-y/U+dV5N8W7KECncGSKQWoUH/DFNZCseczyl6LAd8bc0fMr8Z0TAIe8OXj+5CSRRdejWfRIxGtNWM+L2kTCU8A==", + "dev": true, + "dependencies": { + "@angular-devkit/architect": "0.1000.8", + "@angular-devkit/core": "10.0.8", + "rxjs": "6.5.5" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 6.11.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular-devkit/core": { + "version": "10.0.8", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-10.0.8.tgz", + "integrity": "sha512-d9S8VQuqaYg0c/Y2kl/MtICtZ+UKlH5bLm8y2fb2WfSL4A5XIqMGdEVxzFSiR0b1Bnt4NAoQMcBec1blHAqMSQ==", + "dev": true, + "dependencies": { + "ajv": "6.12.3", + "fast-json-stable-stringify": "2.1.0", + "magic-string": "0.25.7", + "rxjs": "6.5.5", + "source-map": "0.7.3" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 6.11.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular-devkit/schematics": { + "version": "10.0.8", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-10.0.8.tgz", + "integrity": "sha512-p2PjvrExuzOe/azyOEcBeIgwZIk4D6VeLkJf/KVjhXOVu13pjIXHX7/qWl+IYnbtj3NZGHqXM5Cr8nxsJNIMpw==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "10.0.8", + "ora": "4.0.4", + "rxjs": "6.5.5" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 6.11.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular/cli": { + "version": "10.0.8", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-10.0.8.tgz", + "integrity": "sha512-unTteffLepsFw7qQulHOLLyLqCpQMOaZo0WO4x6cQGcW2mc0WgwnwBW2JDYMx1U2434t/Q13LqYMPNYWyCGsog==", + "dev": true, + "dependencies": { + "@angular-devkit/architect": "0.1000.8", + "@angular-devkit/core": "10.0.8", + "@angular-devkit/schematics": "10.0.8", + "@schematics/angular": "10.0.8", + "@schematics/update": "0.1000.8", + "@yarnpkg/lockfile": "1.1.0", + "ansi-colors": "4.1.1", + "debug": "4.1.1", + "ini": "1.3.5", + "inquirer": "7.1.0", + "npm-package-arg": "8.0.1", + "npm-pick-manifest": "6.1.0", + "open": "7.0.4", + "pacote": "9.5.12", + "read-package-tree": "5.3.1", + "rimraf": "3.0.2", + "semver": "7.3.2", + "symbol-observable": "1.2.0", + "universal-analytics": "0.4.20", + "uuid": "8.1.0" + }, + "bin": { + "ng": "bin/ng" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 6.11.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular/cli/node_modules/ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@angular/cli/node_modules/debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/@angular/cli/node_modules/uuid": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.1.0.tgz", + "integrity": "sha512-CI18flHDznR0lq54xBycOVmphdCYnQLKn8abKn7PXUiKUGdEd+/l9LWNJmugXel4hXq7S+RMNl34ecyC9TntWg==", + "dev": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/@angular/common": { + "version": "10.0.14", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-10.0.14.tgz", + "integrity": "sha512-EOAuaMt2HwJF3DtIJ/ksHtnF8Pqh5K2rWISYLEs9R3WNaSGn74kbCODAT4pNhI8P22Ykl3H4FmQUgnDZ3uDAUg==", + "dependencies": { + "tslib": "^2.0.0" + } + }, + "node_modules/@angular/compiler": { + "version": "10.0.14", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-10.0.14.tgz", + "integrity": "sha512-lYNo6/MmnYAVFoDQDBB6HMFd9zHg3RHXc6hn+wchU0XSWiIsg6WYHbKOb/DyqUEyKebzy0gSKZf7gUeZHtj62Q==", + "dev": true, + "dependencies": { + "tslib": "^2.0.0" + } + }, + "node_modules/@angular/compiler-cli": { + "version": "10.0.14", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-10.0.14.tgz", + "integrity": "sha512-WK+S90sjc+3iMo8/CuuAX0RdGFwyA9esqqC5fYG/MDZjKuPuhogiimmR0rY3P1Th7B9di8x012xiILbf4GsGUQ==", + "dev": true, + "dependencies": { + "canonical-path": "1.0.0", + "chokidar": "^3.0.0", + "convert-source-map": "^1.5.1", + "dependency-graph": "^0.7.2", + "fs-extra": "4.0.2", + "magic-string": "^0.25.0", + "minimist": "^1.2.0", + "reflect-metadata": "^0.1.2", + "semver": "^6.3.0", + "source-map": "^0.6.1", + "sourcemap-codec": "^1.4.8", + "tslib": "^2.0.0", + "yargs": "15.3.0" + }, + "bin": { + "ivy-ngcc": "ngcc/main-ivy-ngcc.js", + "ng-xi18n": "src/extract_i18n.js", + "ngc": "src/main.js", + "ngcc": "ngcc/main-ngcc.js" + }, + "engines": { + "node": ">=10.0" + } + }, + "node_modules/@angular/compiler-cli/node_modules/ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@angular/compiler-cli/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@angular/compiler-cli/node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/@angular/compiler-cli/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@angular/compiler-cli/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@angular/compiler-cli/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/@angular/compiler-cli/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@angular/compiler-cli/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@angular/compiler-cli/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@angular/compiler-cli/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@angular/compiler-cli/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@angular/compiler-cli/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@angular/compiler-cli/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@angular/compiler-cli/node_modules/string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@angular/compiler-cli/node_modules/strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@angular/compiler-cli/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@angular/compiler-cli/node_modules/yargs": { + "version": "15.3.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.3.0.tgz", + "integrity": "sha512-g/QCnmjgOl1YJjGsnUg2SatC7NUYEiLXJqxNOQU9qSpjzGtGXda9b+OKccr1kLTy8BN9yqEyqfq5lxlwdc13TA==", + "dev": true, + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@angular/compiler-cli/node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@angular/core": { + "version": "10.0.14", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-10.0.14.tgz", + "integrity": "sha512-m+c9g6fA/gE+6K7It01b6r8TEmbuFjUZajQ9gG/pzist0mTBcqfvn0O4h5X+ebnSgw/bbnnp+4PbaXEi1pOWZQ==", + "dependencies": { + "tslib": "^2.0.0" + } + }, + "node_modules/@angular/forms": { + "version": "10.0.14", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-10.0.14.tgz", + "integrity": "sha512-McKh3rXDlAE7qmCnyWKENb2HhqAT+1dsAfChuqs0w8jhKkoRgA00RDFee6dZ6XQCc907DwuV0K8+wC3CvBp35w==", + "dependencies": { + "tslib": "^2.0.0" + } + }, + "node_modules/@angular/language-service": { + "version": "10.0.14", + "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-10.0.14.tgz", + "integrity": "sha512-QQLYUjD0T6u2hLNYXUEUbupAGsz5egmhCAckaQojvXCe3SLL/hQsrK4odrNuspy7TvMB0H5ZNEHGlF6m/WLZ3g==", + "dev": true + }, + "node_modules/@angular/platform-browser": { + "version": "10.0.14", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-10.0.14.tgz", + "integrity": "sha512-DcBZ1wt2TwtXrdcmCTWanAzu2Vxk5Uvioam0UcDxcgXD84T2fHipyfZVn07fMqRvzFQj45tDNAEevFBnGZar4w==", + "dependencies": { + "tslib": "^2.0.0" + } + }, + "node_modules/@angular/platform-browser-dynamic": { + "version": "10.0.14", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-10.0.14.tgz", + "integrity": "sha512-PPCAiNh/JSuQNKXOhj3a8CTFdVhTgF/EpGtaotnVr/BfbJMeFImKo7m2QQOTsAFaEP2DurSHnofPnMWAfHS2mg==", + "dependencies": { + "tslib": "^2.0.0" + } + }, + "node_modules/@angular/router": { + "version": "10.0.14", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-10.0.14.tgz", + "integrity": "sha512-VWzaNyPZDY99TMszV1GlXJgVOxXsjhJrsv3mIcjaz1dfdlKOeKTVDLdnyXfP9CkwE3PRmvG7eSXppIj6nn9BpQ==", + "dependencies": { + "tslib": "^2.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.10.4" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.12.7.tgz", + "integrity": "sha512-YaxPMGs/XIWtYqrdEOZOCPsVWfEoriXopnsz3/i7apYPXQ3698UFhS6dVT1KN5qOsWmVgw/FOrmQgpRaZayGsw==", + "dev": true + }, + "node_modules/@babel/core": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.9.6.tgz", + "integrity": "sha512-nD3deLvbsApbHAHttzIssYqgb883yU/d9roe4RZymBCDaZryMJDbptVpEpeQuRh4BJ+SYI8le9YGxKvFEvl1Wg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.9.6", + "@babel/helper-module-transforms": "^7.9.0", + "@babel/helpers": "^7.9.6", + "@babel/parser": "^7.9.6", + "@babel/template": "^7.8.6", + "@babel/traverse": "^7.9.6", + "@babel/types": "^7.9.6", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.2", + "lodash": "^4.17.13", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/@babel/core/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/generator": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.6.tgz", + "integrity": "sha512-+htwWKJbH2bL72HRluF8zumBxzuX0ZZUFl3JLNyoUjM/Ho8wnVpPXM6aUz8cfKDqQ/h7zHqKt4xzJteUosckqQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.9.6", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" + } + }, + "node_modules/@babel/generator/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.10.tgz", + "integrity": "sha512-XplmVbC1n+KY6jL8/fgLVXXUauDIB+lD5+GsQEh6F6GBF1dq1qy4DP4yXWzDKcoqXB3X58t61e85Fitoww4JVQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.12.10" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz", + "integrity": "sha512-L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg==", + "dev": true, + "dependencies": { + "@babel/helper-explode-assignable-expression": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.12.5.tgz", + "integrity": "sha512-+qH6NrscMolUlzOYngSBMIOQpKUGPPsc61Bu5W10mg84LxZ7cmvnBHzARKbDoFxVvqqAbj6Tg6N7bSrWSPXMyw==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.12.5", + "@babel/helper-validator-option": "^7.12.1", + "browserslist": "^4.14.5", + "semver": "^5.5.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.7.tgz", + "integrity": "sha512-idnutvQPdpbduutvi3JVfEgcVIHooQnhvhx0Nk9isOINOIGYkZea1Pk2JlJRiUnMefrlvr0vkByATBY/mB4vjQ==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "regexpu-core": "^4.7.1" + } + }, + "node_modules/@babel/helper-define-map": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz", + "integrity": "sha512-fMw4kgFB720aQFXSVaXr79pjjcW5puTCM16+rECJ/plGS+zByelE8l9nCpV1GibxTnFVmUuYG9U8wYfQHdzOEQ==", + "dev": true, + "dependencies": { + "@babel/helper-function-name": "^7.10.4", + "@babel/types": "^7.10.5", + "lodash": "^4.17.19" + } + }, + "node_modules/@babel/helper-explode-assignable-expression": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.12.1.tgz", + "integrity": "sha512-dmUwH8XmlrUpVqgtZ737tK88v07l840z9j3OEhCLwKTkjlvKpfqXVIZ0wpK3aeOxspwGrf/5AP5qLx4rO3w5rA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.12.1" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.11.tgz", + "integrity": "sha512-AtQKjtYNolKNi6nNNVLQ27CP6D9oFR6bq/HPYSizlzbp7uC1M59XJe8L+0uXjbIaZaUJF99ruHqVGiKXU/7ybA==", + "dev": true, + "dependencies": { + "@babel/helper-get-function-arity": "^7.12.10", + "@babel/template": "^7.12.7", + "@babel/types": "^7.12.11" + } + }, + "node_modules/@babel/helper-function-name/node_modules/@babel/template": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.7.tgz", + "integrity": "sha512-GkDzmHS6GV7ZeXfJZ0tLRBhZcMcY0/Lnb+eEbXDBfCAcZCjrZKe6p3J4we/D24O9Y8enxWAg1cWwof59yLh2ow==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.12.7", + "@babel/types": "^7.12.7" + } + }, + "node_modules/@babel/helper-get-function-arity": { + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.10.tgz", + "integrity": "sha512-mm0n5BPjR06wh9mPQaDdXWDoll/j5UpCAPl1x8fS71GHm7HA6Ua2V4ylG1Ju8lvcTOietbPNNPaSilKj+pj+Ag==", + "dev": true, + "dependencies": { + "@babel/types": "^7.12.10" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz", + "integrity": "sha512-wljroF5PgCk2juF69kanHVs6vrLwIPNp6DLD+Lrl3hoQ3PpPPikaDRNFA+0t81NOoMt2DL6WW/mdU8k4k6ZzuA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.10.4" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.7.tgz", + "integrity": "sha512-DCsuPyeWxeHgh1Dus7APn7iza42i/qXqiFPWyBDdOFtvS581JQePsc1F/nD+fHrcswhLlRc2UpYS1NwERxZhHw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.12.7" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz", + "integrity": "sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.12.5" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz", + "integrity": "sha512-QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.12.1", + "@babel/helper-replace-supers": "^7.12.1", + "@babel/helper-simple-access": "^7.12.1", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/helper-validator-identifier": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.1", + "@babel/types": "^7.12.1", + "lodash": "^4.17.19" + } + }, + "node_modules/@babel/helper-module-transforms/node_modules/@babel/template": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.7.tgz", + "integrity": "sha512-GkDzmHS6GV7ZeXfJZ0tLRBhZcMcY0/Lnb+eEbXDBfCAcZCjrZKe6p3J4we/D24O9Y8enxWAg1cWwof59yLh2ow==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.12.7", + "@babel/types": "^7.12.7" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.10.tgz", + "integrity": "sha512-4tpbU0SrSTjjt65UMWSrUOPZTsgvPgGG4S8QSTNHacKzpS51IVWGDj0yCwyeZND/i+LSN2g/O63jEXEWm49sYQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.12.10" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.12.1.tgz", + "integrity": "sha512-9d0KQCRM8clMPcDwo8SevNs+/9a8yWVVmaE80FGJcEP8N1qToREmWEGnBn8BUlJhYRFz6fqxeRL1sl5Ogsed7A==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-wrap-function": "^7.10.4", + "@babel/types": "^7.12.1" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.11.tgz", + "integrity": "sha512-q+w1cqmhL7R0FNzth/PLLp2N+scXEK/L2AHbXUyydxp828F4FEa5WcVoqui9vFRiHDQErj9Zof8azP32uGVTRA==", + "dev": true, + "dependencies": { + "@babel/helper-member-expression-to-functions": "^7.12.7", + "@babel/helper-optimise-call-expression": "^7.12.10", + "@babel/traverse": "^7.12.10", + "@babel/types": "^7.12.11" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz", + "integrity": "sha512-OxBp7pMrjVewSSC8fXDFrHrBcJATOOFssZwv16F3/6Xtc138GHybBfPbm9kfiqQHKhYQrlamWILwlDCeyMFEaA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.12.1" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz", + "integrity": "sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.12.1" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.11.tgz", + "integrity": "sha512-LsIVN8j48gHgwzfocYUSkO/hjYAOJqlpJEc7tGXcIm4cubjVUf8LGW6eWRyxEu7gA25q02p0rQUWoCI33HNS5g==", + "dev": true, + "dependencies": { + "@babel/types": "^7.12.11" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", + "dev": true + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.11.tgz", + "integrity": "sha512-TBFCyj939mFSdeX7U7DDj32WtzYY7fDcalgq8v3fBZMNOJQNn7nOYzMaUCiPxPYfCup69mtIpqlKgMZLvQ8Xhw==", + "dev": true + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.12.3", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.12.3.tgz", + "integrity": "sha512-Cvb8IuJDln3rs6tzjW3Y8UeelAOdnpB8xtQ4sme2MSZ9wOxrbThporC0y/EtE16VAtoyEfLM404Xr1e0OOp+ow==", + "dev": true, + "dependencies": { + "@babel/helper-function-name": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "node_modules/@babel/helper-wrap-function/node_modules/@babel/template": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.7.tgz", + "integrity": "sha512-GkDzmHS6GV7ZeXfJZ0tLRBhZcMcY0/Lnb+eEbXDBfCAcZCjrZKe6p3J4we/D24O9Y8enxWAg1cWwof59yLh2ow==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.12.7", + "@babel/types": "^7.12.7" + } + }, + "node_modules/@babel/helpers": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.5.tgz", + "integrity": "sha512-lgKGMQlKqA8meJqKsW6rUnc4MdUk35Ln0ATDqdM1a/UpARODdI4j5Y5lVfUScnSNkJcdCRAaWkspykNoFg9sJA==", + "dev": true, + "dependencies": { + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.5", + "@babel/types": "^7.12.5" + } + }, + "node_modules/@babel/helpers/node_modules/@babel/template": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.7.tgz", + "integrity": "sha512-GkDzmHS6GV7ZeXfJZ0tLRBhZcMcY0/Lnb+eEbXDBfCAcZCjrZKe6p3J4we/D24O9Y8enxWAg1cWwof59yLh2ow==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.12.7", + "@babel/types": "^7.12.7" + } + }, + "node_modules/@babel/highlight": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.10.4", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.11.tgz", + "integrity": "sha512-N3UxG+uuF4CMYoNj8AhnbAcJF0PiuJ9KHuy1lQmkYsxTer/MAH9UBNHsBoAX/4s6NvlDD047No8mYVGGzLL4hg==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-proposal-async-generator-functions": { + "version": "7.12.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.12.12.tgz", + "integrity": "sha512-nrz9y0a4xmUrRq51bYkWJIO5SBZyG2ys2qinHsN0zHDHVsUaModrkpyWWWXfGqYQmOL3x9sQIcTNN/pBGpo09A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-remap-async-to-generator": "^7.12.1", + "@babel/plugin-syntax-async-generators": "^7.8.0" + } + }, + "node_modules/@babel/plugin-proposal-dynamic-import": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.12.1.tgz", + "integrity": "sha512-a4rhUSZFuq5W8/OO8H7BL5zspjnc1FLd9hlOxIK/f7qG4a0qsqk8uvF/ywgBA8/OmjsapjpvaEOYItfGG1qIvQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-dynamic-import": "^7.8.0" + } + }, + "node_modules/@babel/plugin-proposal-json-strings": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.12.1.tgz", + "integrity": "sha512-GoLDUi6U9ZLzlSda2Df++VSqDJg3CG+dR0+iWsv6XRw1rEq+zwt4DirM9yrxW6XWaTpmai1cWJLMfM8qQJf+yw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.0" + } + }, + "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.12.1.tgz", + "integrity": "sha512-nZY0ESiaQDI1y96+jk6VxMOaL4LPo/QDHBqL+SF3/vl6dHkTwHlOI8L4ZwuRBHgakRBw5zsVylel7QPbbGuYgg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" + } + }, + "node_modules/@babel/plugin-proposal-numeric-separator": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.7.tgz", + "integrity": "sha512-8c+uy0qmnRTeukiGsjLGy6uVs/TFjJchGXUeBqlG4VWYOdJWkhhVPdQ3uHwbmalfJwv2JsV0qffXP4asRfL2SQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + } + }, + "node_modules/@babel/plugin-proposal-object-rest-spread": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz", + "integrity": "sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-transform-parameters": "^7.12.1" + } + }, + "node_modules/@babel/plugin-proposal-optional-catch-binding": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.12.1.tgz", + "integrity": "sha512-hFvIjgprh9mMw5v42sJWLI1lzU5L2sznP805zeT6rySVRA0Y18StRhDqhSxlap0oVgItRsB6WSROp4YnJTJz0g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" + } + }, + "node_modules/@babel/plugin-proposal-optional-chaining": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.12.7.tgz", + "integrity": "sha512-4ovylXZ0PWmwoOvhU2vhnzVNnm88/Sm9nx7V8BPgMvAzn5zDou3/Awy0EjglyubVHasJj+XCEkr/r1X3P5elCA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1", + "@babel/plugin-syntax-optional-chaining": "^7.8.0" + } + }, + "node_modules/@babel/plugin-proposal-unicode-property-regex": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.1.tgz", + "integrity": "sha512-MYq+l+PvHuw/rKUz1at/vb6nCnQ2gmJBNaM62z0OgH7B2W1D9pvkpYtlti9bGtizNIU1K3zm4bZF9F91efVY0w==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.1.tgz", + "integrity": "sha512-i7ooMZFS+a/Om0crxZodrTzNEPJHZrlMVGMTEpFAj6rYY/bKCddB0Dk/YxfPuYXOopuhKk/e1jV6h+WUU9XN3A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.12.1.tgz", + "integrity": "sha512-5QB50qyN44fzzz4/qxDPQMBCTHgxg3n0xRBLJUmBlLoU/sFvxVWGZF/ZUfMVDQuJUKXaBhbupxIzIfZ6Fwk/0A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.12.1.tgz", + "integrity": "sha512-SDtqoEcarK1DFlRJ1hHRY5HvJUj5kX4qmtpMAm2QnhOlyuMC4TMdCRgW6WXpv93rZeYNeLP22y8Aq2dbcDRM1A==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-remap-async-to-generator": "^7.12.1" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.1.tgz", + "integrity": "sha512-5OpxfuYnSgPalRpo8EWGPzIYf0lHBWORCkj5M0oLBwHdlux9Ri36QqGW3/LR13RSVOAoUUMzoPI/jpE4ABcHoA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.12.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.12.tgz", + "integrity": "sha512-VOEPQ/ExOVqbukuP7BYJtI5ZxxsmegTwzZ04j1aF0dkSypGo9XpDHuOrABsJu+ie+penpSJheDJ11x1BEZNiyQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.12.1.tgz", + "integrity": "sha512-/74xkA7bVdzQTBeSUhLLJgYIcxw/dpEpCdRDiHgPJ3Mv6uC11UhjpOhl72CgqbBCmt1qtssCyB2xnJm1+PFjog==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-define-map": "^7.10.4", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-replace-supers": "^7.12.1", + "@babel/helper-split-export-declaration": "^7.10.4", + "globals": "^11.1.0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.12.1.tgz", + "integrity": "sha512-vVUOYpPWB7BkgUWPo4C44mUQHpTZXakEqFjbv8rQMg7TC6S6ZhGZ3otQcRH6u7+adSlE5i0sp63eMC/XGffrzg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.12.1.tgz", + "integrity": "sha512-fRMYFKuzi/rSiYb2uRLiUENJOKq4Gnl+6qOv5f8z0TZXg3llUwUhsNNwrwaT/6dUhJTzNpBr+CUvEWBtfNY1cw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.1.tgz", + "integrity": "sha512-B2pXeRKoLszfEW7J4Hg9LoFaWEbr/kzo3teWHmtFCszjRNa/b40f9mfeqZsIDLLt/FjwQ6pz/Gdlwy85xNckBA==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.1.tgz", + "integrity": "sha512-iRght0T0HztAb/CazveUpUQrZY+aGKKaWXMJ4uf9YJtqxSUe09j3wteztCUDRHs+SRAL7yMuFqUsLoAKKzgXjw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.1.tgz", + "integrity": "sha512-7tqwy2bv48q+c1EHbXK0Zx3KXd2RVQp6OC7PbwFNt/dPTAV3Lu5sWtWuAj8owr5wqtWnqHfl2/mJlUmqkChKug==", + "dev": true, + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.12.1.tgz", + "integrity": "sha512-Zaeq10naAsuHo7heQvyV0ptj4dlZJwZgNAtBYBnu5nNKJoW62m0zKcIEyVECrUKErkUkg6ajMy4ZfnVZciSBhg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.1.tgz", + "integrity": "sha512-JF3UgJUILoFrFMEnOJLJkRHSk6LUSXLmEFsA23aR2O5CSLUxbeUX1IZ1YQ7Sn0aXb601Ncwjx73a+FVqgcljVw==", + "dev": true, + "dependencies": { + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.1.tgz", + "integrity": "sha512-+PxVGA+2Ag6uGgL0A5f+9rklOnnMccwEBzwYFL3EUaKuiyVnUipyXncFcfjSkbimLrODoqki1U9XxZzTvfN7IQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.1.tgz", + "integrity": "sha512-1sxePl6z9ad0gFMB9KqmYofk34flq62aqMt9NqliS/7hPEpURUCMbyHXrMPlo282iY7nAvUB1aQd5mg79UD9Jg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.12.1.tgz", + "integrity": "sha512-tDW8hMkzad5oDtzsB70HIQQRBiTKrhfgwC/KkJeGsaNFTdWhKNt/BiE8c5yj19XiGyrxpbkOfH87qkNg1YGlOQ==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.12.1.tgz", + "integrity": "sha512-dY789wq6l0uLY8py9c1B48V8mVL5gZh/+PQ5ZPrylPYsnAvnEMjqsUXkuoDVPeVK+0VyGar+D08107LzDQ6pag==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-simple-access": "^7.12.1", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.12.1.tgz", + "integrity": "sha512-Hn7cVvOavVh8yvW6fLwveFqSnd7rbQN3zJvoPNyNaQSvgfKmDBO9U1YL9+PCXGRlZD9tNdWTy5ACKqMuzyn32Q==", + "dev": true, + "dependencies": { + "@babel/helper-hoist-variables": "^7.10.4", + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-validator-identifier": "^7.10.4", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.12.1.tgz", + "integrity": "sha512-aEIubCS0KHKM0zUos5fIoQm+AZUMt1ZvMpqz0/H5qAQ7vWylr9+PLYurT+Ic7ID/bKLd4q8hDovaG3Zch2uz5Q==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.1.tgz", + "integrity": "sha512-tB43uQ62RHcoDp9v2Nsf+dSM8sbNodbEicbQNA53zHz8pWUhsgHSJCGpt7daXxRydjb0KnfmB+ChXOv3oADp1Q==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.12.1" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.1.tgz", + "integrity": "sha512-+eW/VLcUL5L9IvJH7rT1sT0CzkdUTvPrXC2PXTn/7z7tXLBuKvezYbGdxD5WMRoyvyaujOq2fWoKl869heKjhw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.1.tgz", + "integrity": "sha512-AvypiGJH9hsquNUn+RXVcBdeE3KHPZexWRdimhuV59cSoOt5kFBmqlByorAeUlGG2CJWd0U+4ZtNKga/TB0cAw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-replace-supers": "^7.12.1" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.12.1.tgz", + "integrity": "sha512-xq9C5EQhdPK23ZeCdMxl8bbRnAgHFrw5EOC3KJUsSylZqdkCaFEXxGSBuTSObOpiiHHNyb82es8M1QYgfQGfNg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.1.tgz", + "integrity": "sha512-6MTCR/mZ1MQS+AwZLplX4cEySjCpnIF26ToWo942nqn8hXSm7McaHQNeGx/pt7suI1TWOWMfa/NgBhiqSnX0cQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.12.1.tgz", + "integrity": "sha512-gYrHqs5itw6i4PflFX3OdBPMQdPbF4bj2REIUxlMRUFk0/ZOAIpDFuViuxPjUL7YC8UPnf+XG7/utJvqXdPKng==", + "dev": true, + "dependencies": { + "regenerator-transform": "^0.14.2" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.1.tgz", + "integrity": "sha512-pOnUfhyPKvZpVyBHhSBoX8vfA09b7r00Pmm1sH+29ae2hMTKVmSp4Ztsr8KBKjLjx17H0eJqaRC3bR2iThM54A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-runtime": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.9.6.tgz", + "integrity": "sha512-qcmiECD0mYOjOIt8YHNsAP1SxPooC/rDmfmiSK9BNY72EitdSc7l44WTEklaWuFtbOEBjNhWWyph/kOImbNJ4w==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "resolve": "^1.8.1", + "semver": "^5.5.1" + } + }, + "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.1.tgz", + "integrity": "sha512-GFZS3c/MhX1OusqB1MZ1ct2xRzX5ppQh2JU1h2Pnfk88HtFTM+TWQqJNfwkmxtPQtb/s1tk87oENfXJlx7rSDw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.12.1.tgz", + "integrity": "sha512-vuLp8CP0BE18zVYjsEBZ5xoCecMK6LBMMxYzJnh01rxQRvhNhH1csMMmBfNo5tGpGO+NhdSNW2mzIvBu3K1fng==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.7.tgz", + "integrity": "sha512-VEiqZL5N/QvDbdjfYQBhruN0HYjSPjC4XkeqW4ny/jNtH9gcbgaqBIXYEZCNnESMAGs0/K/R7oFGMhOyu/eIxg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.12.1.tgz", + "integrity": "sha512-b4Zx3KHi+taXB1dVRBhVJtEPi9h1THCeKmae2qP0YdUHIFhVjtpqqNfxeVAa1xeHVhAy4SbHxEwx5cltAu5apw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.10.tgz", + "integrity": "sha512-JQ6H8Rnsogh//ijxspCjc21YPd3VLVoYtAwv3zQmqAt8YGYUtdo5usNhdl4b9/Vir2kPFZl6n1h0PfUz4hJhaA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.1.tgz", + "integrity": "sha512-SqH4ClNngh/zGwHZOOQMTD+e8FGWexILV+ePMyiDJttAWRh5dhDL8rcl5lSgU3Huiq6Zn6pWTMvdPAb21Dwdyg==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.9.6.tgz", + "integrity": "sha512-0gQJ9RTzO0heXOhzftog+a/WyOuqMrAIugVYxMYf83gh1CQaQDjMtsOpqOwXyDL/5JcWsrCm8l4ju8QC97O7EQ==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.9.6", + "@babel/helper-compilation-targets": "^7.9.6", + "@babel/helper-module-imports": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-proposal-async-generator-functions": "^7.8.3", + "@babel/plugin-proposal-dynamic-import": "^7.8.3", + "@babel/plugin-proposal-json-strings": "^7.8.3", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-proposal-numeric-separator": "^7.8.3", + "@babel/plugin-proposal-object-rest-spread": "^7.9.6", + "@babel/plugin-proposal-optional-catch-binding": "^7.8.3", + "@babel/plugin-proposal-optional-chaining": "^7.9.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.8.3", + "@babel/plugin-syntax-async-generators": "^7.8.0", + "@babel/plugin-syntax-dynamic-import": "^7.8.0", + "@babel/plugin-syntax-json-strings": "^7.8.0", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", + "@babel/plugin-syntax-numeric-separator": "^7.8.0", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.0", + "@babel/plugin-syntax-top-level-await": "^7.8.3", + "@babel/plugin-transform-arrow-functions": "^7.8.3", + "@babel/plugin-transform-async-to-generator": "^7.8.3", + "@babel/plugin-transform-block-scoped-functions": "^7.8.3", + "@babel/plugin-transform-block-scoping": "^7.8.3", + "@babel/plugin-transform-classes": "^7.9.5", + "@babel/plugin-transform-computed-properties": "^7.8.3", + "@babel/plugin-transform-destructuring": "^7.9.5", + "@babel/plugin-transform-dotall-regex": "^7.8.3", + "@babel/plugin-transform-duplicate-keys": "^7.8.3", + "@babel/plugin-transform-exponentiation-operator": "^7.8.3", + "@babel/plugin-transform-for-of": "^7.9.0", + "@babel/plugin-transform-function-name": "^7.8.3", + "@babel/plugin-transform-literals": "^7.8.3", + "@babel/plugin-transform-member-expression-literals": "^7.8.3", + "@babel/plugin-transform-modules-amd": "^7.9.6", + "@babel/plugin-transform-modules-commonjs": "^7.9.6", + "@babel/plugin-transform-modules-systemjs": "^7.9.6", + "@babel/plugin-transform-modules-umd": "^7.9.0", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.8.3", + "@babel/plugin-transform-new-target": "^7.8.3", + "@babel/plugin-transform-object-super": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.9.5", + "@babel/plugin-transform-property-literals": "^7.8.3", + "@babel/plugin-transform-regenerator": "^7.8.7", + "@babel/plugin-transform-reserved-words": "^7.8.3", + "@babel/plugin-transform-shorthand-properties": "^7.8.3", + "@babel/plugin-transform-spread": "^7.8.3", + "@babel/plugin-transform-sticky-regex": "^7.8.3", + "@babel/plugin-transform-template-literals": "^7.8.3", + "@babel/plugin-transform-typeof-symbol": "^7.8.4", + "@babel/plugin-transform-unicode-regex": "^7.8.3", + "@babel/preset-modules": "^0.1.3", + "@babel/types": "^7.9.6", + "browserslist": "^4.11.1", + "core-js-compat": "^3.6.2", + "invariant": "^2.2.2", + "levenary": "^1.1.1", + "semver": "^5.5.0" + } + }, + "node_modules/@babel/preset-env/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.4.tgz", + "integrity": "sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + } + }, + "node_modules/@babel/runtime": { + "version": "7.9.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.6.tgz", + "integrity": "sha512-64AF1xY3OAkFHqOb9s4jpgk1Mm5vDZ4L3acHvAml+53nO1XbXLuDodsVpO4OIUsmemlUHMxNdYMNJmsvOwLrvQ==", + "dev": true, + "dependencies": { + "regenerator-runtime": "^0.13.4" + } + }, + "node_modules/@babel/template": { + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz", + "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.6", + "@babel/types": "^7.8.6" + } + }, + "node_modules/@babel/traverse": { + "version": "7.12.12", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.12.tgz", + "integrity": "sha512-s88i0X0lPy45RrLM8b9mz8RPH5FqO9G9p7ti59cToE44xFm1Q+Pjh5Gq4SXBbtb88X7Uy7pexeqRIQDDMNkL0w==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.12.11", + "@babel/generator": "^7.12.11", + "@babel/helper-function-name": "^7.12.11", + "@babel/helper-split-export-declaration": "^7.12.11", + "@babel/parser": "^7.12.11", + "@babel/types": "^7.12.12", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.19" + } + }, + "node_modules/@babel/traverse/node_modules/@babel/generator": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.11.tgz", + "integrity": "sha512-Ggg6WPOJtSi8yYQvLVjG8F/TlpWDlKx0OpS4Kt+xMQPs5OaGYWy+v1A+1TvxI6sAMGZpKWWoAQ1DaeQbImlItA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.12.11", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "node_modules/@babel/traverse/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/types": { + "version": "7.12.12", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.12.tgz", + "integrity": "sha512-lnIX7piTxOH22xE7fDXDbSHg9MM1/6ORnafpJmov5rs0kX5g4BZxeXNJLXsMRiO0U5Rb8/FvMS6xlTnTHvxonQ==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + }, + "node_modules/@capacitor/android": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@capacitor/android/-/android-3.0.1.tgz", + "integrity": "sha512-+bKm0J1/oSln8VlVRfC25AWn+lLFwvC3Q8OeIA7DyI36RPi8WMkGfVPvZ3EIywUKBquj7mVuEXXhiZyM+YlDeQ==", + "peerDependencies": { + "@capacitor/core": "~3.0.0" + } + }, + "node_modules/@capacitor/cli": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@capacitor/cli/-/cli-3.0.1.tgz", + "integrity": "sha512-OIzpWgtpg0wshdS60Fz6QgXfsYqnWSfQx/9/bmp0eiiKgvtOJa9QmdfFAaGI2BRVoOyiulTMLetSvOAkuTJBPA==", + "dev": true, + "dependencies": { + "@ionic/cli-framework-output": "^2.2.1", + "@ionic/utils-fs": "^3.1.5", + "@ionic/utils-subprocess": "^2.1.6", + "@ionic/utils-terminal": "^2.3.0", + "commander": "^6.0.0", + "debug": "^4.2.0", + "env-paths": "^2.2.0", + "kleur": "^4.1.1", + "native-run": "^1.4.0", + "open": "^7.1.0", + "plist": "^3.0.2", + "prompts": "^2.3.2", + "semver": "^7.3.2", + "tar": "^6.0.5", + "tslib": "^2.1.0", + "xml2js": "^0.4.23" + }, + "bin": { + "cap": "bin/capacitor", + "capacitor": "bin/capacitor" + }, + "engines": { + "node": ">=12.4.0" + } + }, + "node_modules/@capacitor/cli/node_modules/commander": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", + "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@capacitor/cli/node_modules/open": { + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", + "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", + "dev": true, + "dependencies": { + "is-docker": "^2.0.0", + "is-wsl": "^2.1.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@capacitor/core": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@capacitor/core/-/core-3.0.1.tgz", + "integrity": "sha512-17iFkpICdOdTqfbKh3oXFYbwXn9dSxLe85PWeptXSW5jkiHN/YhI+iedRpcukv1QXkR1P629B+7kDqBcrzKL9w==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@ionic-native/core": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@ionic-native/core/-/core-5.30.0.tgz", + "integrity": "sha512-UkktFoSOAt/lgsc1nxnwjCul29yD06qHNjyv7/K7JxhqeJrqPBKihnkLu7OTAe52KdFBozRxLKDP6HWcGderqA==", + "dependencies": { + "@types/cordova": "^0.0.34" + } + }, + "node_modules/@ionic-native/splash-screen": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@ionic-native/splash-screen/-/splash-screen-5.30.0.tgz", + "integrity": "sha512-QlVPuPqJeb4fkxEJ2M0tgUxcjSOPGDLqrFtgnosun6ZuYF8RBlnNu79/h9pa0jcTpq83U53zng/T5qw0M/ccTA==", + "dependencies": { + "@types/cordova": "^0.0.34" + } + }, + "node_modules/@ionic-native/status-bar": { + "version": "5.30.0", + "resolved": "https://registry.npmjs.org/@ionic-native/status-bar/-/status-bar-5.30.0.tgz", + "integrity": "sha512-AQglp5M5E3QN/aA3ERl76Fajpb1G2Zvnk4sJOo4ra5uRlw2lZ6E36DdpNo/NO/7ALxaddD9qXO/LCmvU72Obsg==", + "dependencies": { + "@types/cordova": "^0.0.34" + } + }, + "node_modules/@ionic/angular": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/@ionic/angular/-/angular-5.5.2.tgz", + "integrity": "sha512-yXIydPTIMAX4RobidAByaQ/y+yMS6FYgwEs08GTN/GyvQ4XeWVbojwTm62ILLN2qYS/80ok2uupFwlcyKSMztw==", + "dependencies": { + "@ionic/core": "5.5.2", + "tslib": "^1.9.3" + } + }, + "node_modules/@ionic/angular-toolkit": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/@ionic/angular-toolkit/-/angular-toolkit-2.3.3.tgz", + "integrity": "sha512-r87mApDLWbLaUtd5LvNHrRlZWxjQhaBBM1yPlk9M98dHOxcX3jy7kv60ZurGZutuvbhXISGvHcvvR90yywDC1A==", + "dev": true, + "dependencies": { + "@schematics/angular": ">=8.0.0", + "cheerio": "1.0.0-rc.3", + "colorette": "1.1.0", + "copy-webpack-plugin": "^6.0.3", + "tslib": "^1.9.0", + "ws": "^7.0.1" + } + }, + "node_modules/@ionic/angular-toolkit/node_modules/colorette": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.1.0.tgz", + "integrity": "sha512-6S062WDQUXi6hOfkO/sBPVwE5ASXY4G2+b4atvhJfSsuUUhIaUKlkjLe9692Ipyt5/a+IPF5aVTu3V5gvXq5cg==", + "dev": true + }, + "node_modules/@ionic/angular-toolkit/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/@ionic/angular-toolkit/node_modules/ws": { + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.2.tgz", + "integrity": "sha512-T4tewALS3+qsrpGI/8dqNMLIVdq/g/85U98HPMa6F0m6xTbvhXU6RCQLqPH3+SlomNV/LdY6RXEbBpMH6EOJnA==", + "dev": true, + "engines": { + "node": ">=8.3.0" + } + }, + "node_modules/@ionic/angular/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@ionic/cli-framework": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@ionic/cli-framework/-/cli-framework-5.1.0.tgz", + "integrity": "sha512-Hb/P2zuHB3zQZN0qG7Lxda8IlP2mHisfb0KR+wc9cw2BSiH+rtXRd/A4JxndPznjWs00PHbWiEm0Ehas2pA/nw==", + "dependencies": { + "@ionic/cli-framework-output": "2.2.2", + "@ionic/utils-array": "2.1.5", + "@ionic/utils-fs": "3.1.5", + "@ionic/utils-object": "2.1.5", + "@ionic/utils-process": "2.1.8", + "@ionic/utils-stream": "3.1.5", + "@ionic/utils-subprocess": "2.1.8", + "@ionic/utils-terminal": "2.3.1", + "chalk": "^4.0.0", + "debug": "^4.0.0", + "lodash": "^4.17.5", + "minimist": "^1.2.0", + "rimraf": "^3.0.0", + "tslib": "^2.0.1", + "write-file-atomic": "^3.0.0" + }, + "engines": { + "node": ">=10.3.0" + } + }, + "node_modules/@ionic/cli-framework-output": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@ionic/cli-framework-output/-/cli-framework-output-2.2.2.tgz", + "integrity": "sha512-eQYkqIW1/tCwSC6Bd0gjse96U11lDX/ikf3jvsjX7a8z/zwSmGzCHRizb7xogV65Ey+1/zyAZR71cpDRQuFLBQ==", + "dependencies": { + "@ionic/utils-terminal": "2.3.1", + "debug": "^4.0.0", + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=10.3.0" + } + }, + "node_modules/@ionic/cli-framework/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@ionic/cli-framework/node_modules/chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@ionic/cli-framework/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@ionic/cli-framework/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/@ionic/cli-framework/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@ionic/cli-framework/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@ionic/core": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-5.5.2.tgz", + "integrity": "sha512-rOfPj8D5NRWdOYYulNTdKtMAMURfmutDQ3ciA3L7daCooG3MWt2/0siiL6rcZFMxfG7KDxHctuwVwYoC1mPuhg==", + "dependencies": { + "ionicons": "^5.1.2", + "tslib": "^1.10.0" + } + }, + "node_modules/@ionic/core/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@ionic/lab": { + "version": "3.2.10", + "resolved": "https://registry.npmjs.org/@ionic/lab/-/lab-3.2.10.tgz", + "integrity": "sha512-GO8EwLD23eTckRrD08rkK2u7SV1TOwwJ9jVbaPbm7VeCa2EfLAGZQdf1Rdvn72iVda572ORTCPwe/8vB/vfPrQ==", + "dependencies": { + "@ionic/cli-framework": "5.1.0", + "@ionic/utils-fs": "3.1.5", + "chalk": "^4.0.0", + "express": "^4.16.2", + "tslib": "^2.0.1" + }, + "bin": { + "ionic-lab": "bin/ionic-lab" + }, + "engines": { + "node": ">=10.3.0" + } + }, + "node_modules/@ionic/lab/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@ionic/lab/node_modules/chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@ionic/lab/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@ionic/lab/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/@ionic/lab/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@ionic/lab/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@ionic/utils-array": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@ionic/utils-array/-/utils-array-2.1.5.tgz", + "integrity": "sha512-HD72a71IQVBmQckDwmA8RxNVMTbxnaLbgFOl+dO5tbvW9CkkSFCv41h6fUuNsSEVgngfkn0i98HDuZC8mk+lTA==", + "dependencies": { + "debug": "^4.0.0", + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=10.3.0" + } + }, + "node_modules/@ionic/utils-fs": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/@ionic/utils-fs/-/utils-fs-3.1.5.tgz", + "integrity": "sha512-a41bY2dHqWSEQQ/80CpbXSs8McyiCFf2DnIWWLukrhYWf46h4qi6M/8dxcMKrofRiqI/3F+cL3S2mOm9Zz/o2Q==", + "dependencies": { + "debug": "^4.0.0", + "fs-extra": "^9.0.0", + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=10.3.0" + } + }, + "node_modules/@ionic/utils-fs/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@ionic/utils-fs/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dependencies": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "node_modules/@ionic/utils-fs/node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@ionic/utils-object": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@ionic/utils-object/-/utils-object-2.1.5.tgz", + "integrity": "sha512-XnYNSwfewUqxq+yjER1hxTKggftpNjFLJH0s37jcrNDwbzmbpFTQTVAp4ikNK4rd9DOebX/jbeZb8jfD86IYxw==", + "dependencies": { + "debug": "^4.0.0", + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=10.3.0" + } + }, + "node_modules/@ionic/utils-process": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/@ionic/utils-process/-/utils-process-2.1.8.tgz", + "integrity": "sha512-VBBoyTzi+m6tgKAItl+jiTQneGwTOsctcrTG4CsEgmVOVOEhUYkPhddXqzD+oC54hPDU9ROsd3I014P5CWEuhQ==", + "dependencies": { + "@ionic/utils-object": "2.1.5", + "@ionic/utils-terminal": "2.3.1", + "debug": "^4.0.0", + "signal-exit": "^3.0.3", + "tree-kill": "^1.2.2", + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=10.3.0" + } + }, + "node_modules/@ionic/utils-stream": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/@ionic/utils-stream/-/utils-stream-3.1.5.tgz", + "integrity": "sha512-hkm46uHvEC05X/8PHgdJi4l4zv9VQDELZTM+Kz69odtO9zZYfnt8DkfXHJqJ+PxmtiE5mk/ehJWLnn/XAczTUw==", + "dependencies": { + "debug": "^4.0.0", + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=10.3.0" + } + }, + "node_modules/@ionic/utils-subprocess": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/@ionic/utils-subprocess/-/utils-subprocess-2.1.8.tgz", + "integrity": "sha512-pkmtf1LtXcEMPn6/cctREL2aZtZoy0+0Sl+nT0NIkOHIoBUcqrcfMWdctCSM4Mp6+2/hLWtgpHE3TOIibkWfIg==", + "dependencies": { + "@ionic/utils-array": "2.1.5", + "@ionic/utils-fs": "3.1.5", + "@ionic/utils-process": "2.1.8", + "@ionic/utils-stream": "3.1.5", + "@ionic/utils-terminal": "2.3.1", + "cross-spawn": "^7.0.0", + "debug": "^4.0.0", + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=10.3.0" + } + }, + "node_modules/@ionic/utils-subprocess/node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@ionic/utils-subprocess/node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@ionic/utils-subprocess/node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@ionic/utils-subprocess/node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@ionic/utils-subprocess/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@ionic/utils-terminal": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@ionic/utils-terminal/-/utils-terminal-2.3.1.tgz", + "integrity": "sha512-cglsSd2AckI3Ldtdfczeq64vIIDjtPspV5QJtky8f8uIdxkeOIGeRV7bCj1+BEf1hyo+ZuggQxLviHnbMZhiRw==", + "dependencies": { + "debug": "^4.0.0", + "signal-exit": "^3.0.3", + "slice-ansi": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "tslib": "^2.0.1", + "untildify": "^4.0.0", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=10.3.0" + } + }, + "node_modules/@ionic/utils-terminal/node_modules/ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@ionic/utils-terminal/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@ionic/utils-terminal/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@ionic/utils-terminal/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/@ionic/utils-terminal/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/@ionic/utils-terminal/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@ionic/utils-terminal/node_modules/string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@ionic/utils-terminal/node_modules/strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dependencies": { + "ansi-regex": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@ionic/utils-terminal/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz", + "integrity": "sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jsdevtools/coverage-istanbul-loader": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@jsdevtools/coverage-istanbul-loader/-/coverage-istanbul-loader-3.0.3.tgz", + "integrity": "sha512-TAdNkeGB5Fe4Og+ZkAr1Kvn9by2sfL44IAHFtxlh1BA1XJ5cLpO9iSNki5opWESv3l3vSHsZ9BNKuqFKbEbFaA==", + "dev": true, + "dependencies": { + "convert-source-map": "^1.7.0", + "istanbul-lib-instrument": "^4.0.1", + "loader-utils": "^1.4.0", + "merge-source-map": "^1.1.0", + "schema-utils": "^2.6.4" + } + }, + "node_modules/@jsdevtools/coverage-istanbul-loader/node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/@jsdevtools/coverage-istanbul-loader/node_modules/loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/@netflix/nerror": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@netflix/nerror/-/nerror-1.1.3.tgz", + "integrity": "sha512-b+MGNyP9/LXkapreJzNUzcvuzZslj/RGgdVVJ16P2wSlYatfLycPObImqVJSmNAdyeShvNeM/pl3sVZsObFueg==", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0", + "extsprintf": "^1.4.0", + "lodash": "^4.17.15" + } + }, + "node_modules/@netflix/nerror/node_modules/extsprintf": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.0.tgz", + "integrity": "sha1-4mifjzVvrWLMplo6kcXfX5VRaS8=", + "dev": true, + "engines": [ + "node >=0.6.0" + ] + }, + "node_modules/@ngtools/webpack": { + "version": "10.0.8", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-10.0.8.tgz", + "integrity": "sha512-Qv4v7O4VGeWuXjRThd/mdC2I4cJOgQ7kDrVN7vkDB2EW5xtRB+/4hghvFeO3bD11FLuFvCxBMb0HbwyKoVQgEQ==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "10.0.8", + "enhanced-resolve": "4.1.1", + "rxjs": "6.5.5", + "webpack-sources": "1.4.3" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 6.11.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz", + "integrity": "sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.4", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz", + "integrity": "sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz", + "integrity": "sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.4", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@npmcli/move-file": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.0.1.tgz", + "integrity": "sha512-Uv6h1sT+0DrblvIrolFtbvM1FgWm+/sy4B3pvLp67Zys+thcukzS5ekn7HsZFGpWP4Q3fYJCljbWQE/XivMRLw==", + "dev": true, + "dependencies": { + "mkdirp": "^1.0.4" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@npmcli/move-file/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@schematics/angular": { + "version": "10.0.8", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-10.0.8.tgz", + "integrity": "sha512-KNO61UGtiKMQSG+NbusqLtwLbxId0y+xpXJt9PKFwi+vaViOO+YzOPREfiFCuQ7q6X8SmNlrMj6sZ34E2YN1pQ==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "10.0.8", + "@angular-devkit/schematics": "10.0.8" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 6.11.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@schematics/update": { + "version": "0.1000.8", + "resolved": "https://registry.npmjs.org/@schematics/update/-/update-0.1000.8.tgz", + "integrity": "sha512-xHuj6ME3PNTsVUrpftd98LF3WHPM0NU25GcT/n0E/j0/52yDTiaPS3wUnYSK8ZSv4Et4hcyGx7f/LEXAoOKJXw==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "10.0.8", + "@angular-devkit/schematics": "10.0.8", + "@yarnpkg/lockfile": "1.1.0", + "ini": "1.3.5", + "npm-package-arg": "^8.0.0", + "pacote": "9.5.12", + "rxjs": "6.5.5", + "semver": "7.3.2", + "semver-intersect": "1.4.0" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 6.11.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@types/cordova": { + "version": "0.0.34", + "resolved": "https://registry.npmjs.org/@types/cordova/-/cordova-0.0.34.tgz", + "integrity": "sha1-6nrd907Ow9dimCegw54smt3HPQQ=" + }, + "node_modules/@types/glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==", + "dev": true, + "dependencies": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "node_modules/@types/jasmine": { + "version": "3.5.14", + "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-3.5.14.tgz", + "integrity": "sha512-Fkgk536sHPqcOtd+Ow+WiUNuk0TSo/BntKkF8wSvcd6M2FvPjeXcUE6Oz/bwDZiUZEaXLslAgw00Q94Pnx6T4w==", + "dev": true + }, + "node_modules/@types/jasminewd2": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/@types/jasminewd2/-/jasminewd2-2.0.8.tgz", + "integrity": "sha512-d9p31r7Nxk0ZH0U39PTH0hiDlJ+qNVGjlt1ucOoTUptxb2v+Y5VMnsxfwN+i3hK4yQnqBi3FMmoMFcd1JHDxdg==", + "dev": true, + "dependencies": { + "@types/jasmine": "*" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.6.tgz", + "integrity": "sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw==", + "dev": true + }, + "node_modules/@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "dev": true + }, + "node_modules/@types/node": { + "version": "12.19.11", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.19.11.tgz", + "integrity": "sha512-bwVfNTFZOrGXyiQ6t4B9sZerMSShWNsGRw8tC5DY1qImUNczS9SjT4G6PnzjCnxsu5Ubj6xjL2lgwddkxtQl5w==", + "dev": true + }, + "node_modules/@types/q": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz", + "integrity": "sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==", + "dev": true + }, + "node_modules/@types/selenium-webdriver": { + "version": "3.0.17", + "resolved": "https://registry.npmjs.org/@types/selenium-webdriver/-/selenium-webdriver-3.0.17.tgz", + "integrity": "sha512-tGomyEuzSC1H28y2zlW6XPCaDaXFaD6soTdb4GNdmte2qfHtrKqhy0ZFs4r/1hpazCfEZqeTSRLvSasmEx89uw==", + "dev": true + }, + "node_modules/@types/source-list-map": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.2.tgz", + "integrity": "sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA==", + "dev": true + }, + "node_modules/@types/webpack-sources": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-0.1.8.tgz", + "integrity": "sha512-JHB2/xZlXOjzjBB6fMOpH1eQAfsrpqVVIbneE0Rok16WXwFaznaI5vfg75U5WgGJm7V9W1c4xeRQDjX/zwvghA==", + "dev": true, + "dependencies": { + "@types/node": "*", + "@types/source-list-map": "*", + "source-map": "^0.6.1" + } + }, + "node_modules/@types/webpack-sources/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", + "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", + "dev": true, + "dependencies": { + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz", + "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", + "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz", + "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-code-frame": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz", + "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==", + "dev": true, + "dependencies": { + "@webassemblyjs/wast-printer": "1.9.0" + } + }, + "node_modules/@webassemblyjs/helper-fsm": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz", + "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-module-context": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz", + "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.9.0" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", + "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz", + "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", + "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", + "dev": true, + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", + "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", + "dev": true, + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", + "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==", + "dev": true + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", + "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/helper-wasm-section": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-opt": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "@webassemblyjs/wast-printer": "1.9.0" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz", + "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz", + "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz", + "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" + } + }, + "node_modules/@webassemblyjs/wast-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz", + "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/floating-point-hex-parser": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-code-frame": "1.9.0", + "@webassemblyjs/helper-fsm": "1.9.0", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", + "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "node_modules/@yarnpkg/lockfile": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", + "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", + "dev": true + }, + "node_modules/abab": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", + "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", + "dev": true + }, + "node_modules/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 + }, + "node_modules/accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "dependencies": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", + "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/adjust-sourcemap-loader": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-2.0.0.tgz", + "integrity": "sha512-4hFsTsn58+YjrU9qKzML2JSSDqKvN8mUGQ0nNIrfPi8hmIONT4L3uUaT6MKdMsZ9AjsU6D2xDkZxCkbQPxChrA==", + "dev": true, + "dependencies": { + "assert": "1.4.1", + "camelcase": "5.0.0", + "loader-utils": "1.2.3", + "object-path": "0.11.4", + "regex-parser": "2.2.10" + } + }, + "node_modules/adjust-sourcemap-loader/node_modules/camelcase": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz", + "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/adjust-sourcemap-loader/node_modules/emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/adjust-sourcemap-loader/node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/adjust-sourcemap-loader/node_modules/loader-utils": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", + "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^2.0.0", + "json5": "^1.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/adm-zip": { + "version": "0.4.16", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz", + "integrity": "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==", + "dev": true, + "engines": { + "node": ">=0.3.0" + } + }, + "node_modules/after": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", + "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=", + "dev": true + }, + "node_modules/agent-base": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", + "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", + "dev": true, + "dependencies": { + "es6-promisify": "^5.0.0" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/agentkeepalive": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-3.5.2.tgz", + "integrity": "sha512-e0L/HNe6qkQ7H19kTlRRqUibEAwDK5AFk6y3PtMsuut2VAH6+Q4xZml1tNDJD7kSAyqmbG/K08K5WEJYtUrSlQ==", + "dev": true, + "dependencies": { + "humanize-ms": "^1.2.1" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ajv": { + "version": "6.12.3", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz", + "integrity": "sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "node_modules/ajv-errors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", + "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", + "dev": true + }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true + }, + "node_modules/alphanum-sort": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", + "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", + "dev": true + }, + "node_modules/android-versions": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/android-versions/-/android-versions-1.7.0.tgz", + "integrity": "sha512-TCy4b8Dk8YS6A23ZPfhSKqK66JHFq0D8avGYiwvYpjno6HrrcI0DRgHx9+jtkvWYmrsE2vQWgbHJhvGGhhOb0g==", + "dev": true, + "dependencies": { + "semver": "^5.7.1" + } + }, + "node_modules/android-versions/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/ansi": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/ansi/-/ansi-0.3.1.tgz", + "integrity": "sha1-DELU+xcWDVqa8eSEus4cZpIsGyE=", + "dev": true + }, + "node_modules/ansi-colors": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", + "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", + "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", + "dev": true, + "dependencies": { + "type-fest": "^0.11.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-html": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", + "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=", + "dev": true, + "engines": [ + "node >= 0.8.0" + ], + "bin": { + "ansi-html": "bin/ansi-html" + } + }, + "node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/app-root-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-3.0.0.tgz", + "integrity": "sha512-qMcx+Gy2UZynHjOHOIXPNvpf+9cjvk3cWrBBK7zg4gH9+clobJRb9NGzcT7mQTcV/6Gm/1WelUtqxVXnNlrwcw==", + "dev": true, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true + }, + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/aria-query": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-3.0.0.tgz", + "integrity": "sha1-ZbP8wcoRVajJrmTW7uKX8V1RM8w=", + "dev": true, + "dependencies": { + "ast-types-flow": "0.0.7", + "commander": "^2.11.0" + } + }, + "node_modules/arity-n": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/arity-n/-/arity-n-1.0.4.tgz", + "integrity": "sha1-2edrEXM+CFacCEeuezmyhgswt0U=", + "dev": true + }, + "node_modules/arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", + "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", + "dev": true + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arraybuffer.slice": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz", + "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==", + "dev": true + }, + "node_modules/arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", + "dev": true + }, + "node_modules/asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "dev": true, + "dependencies": { + "safer-buffer": "~2.1.0" + } + }, + "node_modules/asn1.js": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", + "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", + "dev": true, + "dependencies": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/asn1.js/node_modules/bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + }, + "node_modules/assert": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", + "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", + "dev": true, + "dependencies": { + "util": "0.10.3" + } + }, + "node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ast-types-flow": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", + "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=", + "dev": true + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "dev": true, + "dependencies": { + "lodash": "^4.17.14" + } + }, + "node_modules/async-each": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", + "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", + "dev": true + }, + "node_modules/async-limiter": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", + "dev": true + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true, + "bin": { + "atob": "bin/atob.js" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/autoprefixer": { + "version": "9.8.0", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.0.tgz", + "integrity": "sha512-D96ZiIHXbDmU02dBaemyAg53ez+6F5yZmapmgKcjm35yEe1uVDYI8hGW3VYoGRaG290ZFf91YxHrR518vC0u/A==", + "dev": true, + "dependencies": { + "browserslist": "^4.12.0", + "caniuse-lite": "^1.0.30001061", + "chalk": "^2.4.2", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "postcss": "^7.0.30", + "postcss-value-parser": "^4.1.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/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, + "engines": { + "node": "*" + } + }, + "node_modules/aws4": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", + "dev": true + }, + "node_modules/axobject-query": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.0.2.tgz", + "integrity": "sha512-MCeek8ZH7hKyO1rWUbKNQBbl4l2eY0ntk7OGi+q0RlafrCnfPxC06WZA+uebCfmYp4mNU9jRBP1AhGyf8+W3ww==", + "dev": true, + "dependencies": { + "ast-types-flow": "0.0.7" + } + }, + "node_modules/babel-loader": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.1.0.tgz", + "integrity": "sha512-7q7nC1tYOrqvUrN3LQK4GwSk/TQorZSOlO9C+RZDZpODgyN4ZlCqE5q9cDsyWOliN+aU9B4JX01xK9eJXowJLw==", + "dev": true, + "dependencies": { + "find-cache-dir": "^2.1.0", + "loader-utils": "^1.4.0", + "mkdirp": "^0.5.3", + "pify": "^4.0.1", + "schema-utils": "^2.6.5" + }, + "engines": { + "node": ">= 6.9" + } + }, + "node_modules/babel-loader/node_modules/find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "dev": true, + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/babel-loader/node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/babel-loader/node_modules/loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "dev": true, + "dependencies": { + "object.assign": "^4.1.0" + } + }, + "node_modules/backo2": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", + "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=", + "dev": true + }, + "node_modules/balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "node_modules/base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "dependencies": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base64-arraybuffer": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz", + "integrity": "sha1-mBjHngWbE1X5fgQooBfIOOkLqBI=", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true + }, + "node_modules/base64id": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", + "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", + "dev": true, + "engines": { + "node": "^4.5.0 || >= 5.9" + } + }, + "node_modules/batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", + "dev": true + }, + "node_modules/bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dev": true, + "dependencies": { + "tweetnacl": "^0.14.3" + } + }, + "node_modules/better-assert": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", + "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=", + "dev": true, + "dependencies": { + "callsite": "1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/big-integer": { + "version": "1.6.48", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.48.tgz", + "integrity": "sha512-j51egjPa7/i+RdiRuJbPdJ2FIUYYPhvYLjzoYbcMMm62ooO6F94fETG4MTs46zPAF9Brs04OajboA/qTGuz78w==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", + "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/blob": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz", + "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==", + "dev": true + }, + "node_modules/blocking-proxy": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/blocking-proxy/-/blocking-proxy-1.0.1.tgz", + "integrity": "sha512-KE8NFMZr3mN2E0HcvCgRtX7DjhiIQrwle+nSVJVC/yqFb9+xznHl2ZcoBp2L9qzkI4t4cBFJ1efXF8Dwi132RA==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "blocking-proxy": "built/lib/bin.js" + }, + "engines": { + "node": ">=6.9.x" + } + }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, + "node_modules/bn.js": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.3.tgz", + "integrity": "sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ==", + "dev": true + }, + "node_modules/body-parser": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", + "dependencies": { + "bytes": "3.1.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.7.0", + "raw-body": "2.4.0", + "type-is": "~1.6.17" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/body-parser/node_modules/bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "node_modules/bonjour": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", + "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", + "dev": true, + "dependencies": { + "array-flatten": "^2.1.0", + "deep-equal": "^1.0.1", + "dns-equal": "^1.0.0", + "dns-txt": "^2.0.2", + "multicast-dns": "^6.0.1", + "multicast-dns-service-types": "^1.1.0" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", + "dev": true + }, + "node_modules/bplist-parser": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz", + "integrity": "sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==", + "dev": true, + "dependencies": { + "big-integer": "^1.6.44" + }, + "engines": { + "node": ">= 5.10.0" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", + "dev": true + }, + "node_modules/browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dev": true, + "dependencies": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "dev": true, + "dependencies": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "node_modules/browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "dev": true, + "dependencies": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/browserify-rsa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", + "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", + "dev": true, + "dependencies": { + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" + } + }, + "node_modules/browserify-sign": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", + "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", + "dev": true, + "dependencies": { + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.3", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + } + }, + "node_modules/browserify-sign/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/browserify-sign/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + }, + "node_modules/browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "dev": true, + "dependencies": { + "pako": "~1.0.5" + } + }, + "node_modules/browserslist": { + "version": "4.16.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.0.tgz", + "integrity": "sha512-/j6k8R0p3nxOC6kx5JGAxsnhc9ixaWJfYc+TNTzxg6+ARaESAvQGV7h0uNOB4t+pLQJZWzcrMxXOxjgsCj3dqQ==", + "dev": true, + "dependencies": { + "caniuse-lite": "^1.0.30001165", + "colorette": "^1.2.1", + "electron-to-chromium": "^1.3.621", + "escalade": "^3.1.1", + "node-releases": "^1.1.67" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/browserstack": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/browserstack/-/browserstack-1.6.1.tgz", + "integrity": "sha512-GxtFjpIaKdbAyzHfFDKixKO8IBT7wR3NjbzrGc78nNs/Ciys9wU3/nBtsqsWv5nDSrdI5tz0peKuzCPuNXNUiw==", + "dev": true, + "dependencies": { + "https-proxy-agent": "^2.2.1" + } + }, + "node_modules/buffer": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "dev": true, + "dependencies": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", + "dev": true + }, + "node_modules/buffer-indexof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", + "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==", + "dev": true + }, + "node_modules/buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", + "dev": true + }, + "node_modules/builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", + "dev": true + }, + "node_modules/builtins": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", + "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=", + "dev": true + }, + "node_modules/bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cacache": { + "version": "15.0.3", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.0.3.tgz", + "integrity": "sha512-bc3jKYjqv7k4pWh7I/ixIjfcjPul4V4jme/WbjvwGS5LzoPL/GzXr4C5EgPNLO/QEZl9Oi61iGitYEdwcrwLCQ==", + "dev": true, + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "infer-owner": "^1.0.4", + "lru-cache": "^5.1.1", + "minipass": "^3.1.1", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^1.0.3", + "move-file": "^2.0.0", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^8.0.0", + "tar": "^6.0.2", + "unique-filename": "^1.1.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/cacache/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "dependencies": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/call-bind": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.0.tgz", + "integrity": "sha512-AEXsYIyyDY3MCzbwdhzG3Jx1R0J2wetQyUynn6dYHAO+bg8l1k7jwZtRv4ryryFs7EP+NDlikJlVe59jr0cM2w==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.0" + } + }, + "node_modules/caller-callsite": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", + "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", + "dev": true, + "dependencies": { + "callsites": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/caller-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", + "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", + "dev": true, + "dependencies": { + "caller-callsite": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/callsite": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", + "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/callsites": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", + "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "dev": true, + "dependencies": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001171", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001171.tgz", + "integrity": "sha512-5Alrh8TTYPG9IH4UkRqEBZoEToWRLvPbSQokvzSz0lii8/FOWKG4keO1HoYfPWs8IF/NH/dyNPg1cmJGvV3Zlg==", + "dev": true + }, + "node_modules/canonical-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/canonical-path/-/canonical-path-1.0.0.tgz", + "integrity": "sha512-feylzsbDxi1gPZ1IjystzIQZagYYLvfKrSuygUCgf7z6x790VEzze5QEkdSV1U58RA7Hi0+v6fv4K54atOzATg==", + "dev": true + }, + "node_modules/capacitor": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/capacitor/-/capacitor-0.5.5.tgz", + "integrity": "sha1-w3lxHuKTnXoWuV7KeJRfOJlzd7k=", + "dependencies": { + "immutable": "^3.7.3", + "lodash": "^2.4.1" + } + }, + "node_modules/capacitor/node_modules/lodash": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz", + "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=", + "engines": [ + "node", + "rhino" + ] + }, + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, + "node_modules/cheerio": { + "version": "1.0.0-rc.3", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.3.tgz", + "integrity": "sha512-0td5ijfUPuubwLUu0OBoe98gZj8C/AA+RW3v67GPlGOrvxWjZmBXiBCRU+I8VEiNyJzjth40POfHiz2RB3gImA==", + "dev": true, + "dependencies": { + "css-select": "~1.2.0", + "dom-serializer": "~0.1.1", + "entities": "~1.1.1", + "htmlparser2": "^3.9.1", + "lodash": "^4.15.0", + "parse5": "^3.0.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cheerio/node_modules/css-select": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", + "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", + "dev": true, + "dependencies": { + "boolbase": "~1.0.0", + "css-what": "2.1", + "domutils": "1.5.1", + "nth-check": "~1.0.1" + } + }, + "node_modules/cheerio/node_modules/css-what": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz", + "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/cheerio/node_modules/dom-serializer": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz", + "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==", + "dev": true, + "dependencies": { + "domelementtype": "^1.3.0", + "entities": "^1.1.1" + } + }, + "node_modules/cheerio/node_modules/domutils": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", + "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", + "dev": true, + "dependencies": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "node_modules/cheerio/node_modules/entities": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", + "dev": true + }, + "node_modules/cheerio/node_modules/parse5": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-3.0.3.tgz", + "integrity": "sha512-rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/chokidar": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.3.tgz", + "integrity": "sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ==", + "dev": true, + "dependencies": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.5.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.1.2" + } + }, + "node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz", + "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/chrome-trace-event/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/circular-dependency-plugin": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/circular-dependency-plugin/-/circular-dependency-plugin-5.2.0.tgz", + "integrity": "sha512-7p4Kn/gffhQaavNfyDFg7LS5S/UT1JAjyGd4UqR2+jzoYF02eDkj0Ec3+48TsIa4zghjLY87nQHIh/ecK9qLdw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "dependencies": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-spinners": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.5.0.tgz", + "integrity": "sha512-PC+AmIuK04E6aeSs/pUccSujsTzBhu4HzC2dL+CfJB/Jcc2qTRbEwZQDfIUpt2Xl8BodYBEq8w4fc0kU2I9DjQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-width": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", + "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", + "dev": true + }, + "node_modules/cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, + "dependencies": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + } + }, + "node_modules/cliui/node_modules/ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/cliui/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/coa": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", + "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", + "dev": true, + "dependencies": { + "@types/q": "^1.5.1", + "chalk": "^2.4.1", + "q": "^1.1.2" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/codelyzer": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/codelyzer/-/codelyzer-6.0.1.tgz", + "integrity": "sha512-cOyGQgMdhnRYtW2xrJUNrNYDjEgwQ+BrE2y93Bwz3h4DJ6vJRLfupemU5N3pbYsUlBHJf0u1j1UGk+NLW4d97g==", + "dev": true, + "dependencies": { + "@angular/compiler": "9.0.0", + "@angular/core": "9.0.0", + "app-root-path": "^3.0.0", + "aria-query": "^3.0.0", + "axobject-query": "2.0.2", + "css-selector-tokenizer": "^0.7.1", + "cssauron": "^1.4.0", + "damerau-levenshtein": "^1.0.4", + "rxjs": "^6.5.3", + "semver-dsl": "^1.0.1", + "source-map": "^0.5.7", + "sprintf-js": "^1.1.2", + "tslib": "^1.10.0", + "zone.js": "~0.10.3" + } + }, + "node_modules/codelyzer/node_modules/@angular/compiler": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-9.0.0.tgz", + "integrity": "sha512-ctjwuntPfZZT2mNj2NDIVu51t9cvbhl/16epc5xEwyzyDt76pX9UgwvY+MbXrf/C/FWwdtmNtfP698BKI+9leQ==", + "dev": true + }, + "node_modules/codelyzer/node_modules/@angular/core": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-9.0.0.tgz", + "integrity": "sha512-6Pxgsrf0qF9iFFqmIcWmjJGkkCaCm6V5QNnxMy2KloO3SDq6QuMVRbN9RtC8Urmo25LP+eZ6ZgYqFYpdD8Hd9w==", + "dev": true + }, + "node_modules/codelyzer/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/codelyzer/node_modules/sprintf-js": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", + "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", + "dev": true + }, + "node_modules/codelyzer/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "dependencies": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/color": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/color/-/color-3.1.3.tgz", + "integrity": "sha512-xgXAcTHa2HeFCGLE9Xs/R82hujGtu9Jd9x4NW3T34+OMs7VoPsjwzRczKHvTAHeJwWFwX5j15+MgAppE8ztObQ==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.1", + "color-string": "^1.5.4" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "node_modules/color-string": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.4.tgz", + "integrity": "sha512-57yF5yt8Xa3czSEW1jfQDE79Idk0+AkN/4KWad6tbdxUmAs3MvjxlWSWD4deYytcRfoZ9nhKyFl1kj5tBvidbw==", + "dev": true, + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "node_modules/colorette": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz", + "integrity": "sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==", + "dev": true + }, + "node_modules/colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "dev": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true + }, + "node_modules/component-bind": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", + "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=", + "dev": true + }, + "node_modules/component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true + }, + "node_modules/component-inherit": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", + "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=", + "dev": true + }, + "node_modules/compose-function": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/compose-function/-/compose-function-3.0.3.tgz", + "integrity": "sha1-ntZ18TzFRQHTCVCkhv9qe6OrGF8=", + "dev": true, + "dependencies": { + "arity-n": "^1.0.4" + } + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dev": true, + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "dev": true, + "dependencies": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "engines": [ + "node >= 0.8" + ], + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/connect": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", + "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "finalhandler": "1.1.2", + "parseurl": "~1.3.3", + "utils-merge": "1.0.1" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/connect-history-api-fallback": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", + "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/connect/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/connect/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/console-browserify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", + "dev": true + }, + "node_modules/constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", + "dev": true + }, + "node_modules/content-disposition": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", + "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", + "dependencies": { + "safe-buffer": "5.1.2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.1" + } + }, + "node_modules/cookie": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", + "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + }, + "node_modules/copy-anything": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.1.tgz", + "integrity": "sha512-lA57e7viQHOdPQcrytv5jFeudZZOXuyk47lZym279FiDQ8jeZomXiGuVf6ffMKkJ+3TIai3J1J3yi6M+/4U35g==", + "dev": true, + "dependencies": { + "is-what": "^3.7.1" + } + }, + "node_modules/copy-concurrently": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", + "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", + "dev": true, + "dependencies": { + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" + } + }, + "node_modules/copy-concurrently/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/copy-webpack-plugin": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-6.0.3.tgz", + "integrity": "sha512-q5m6Vz4elsuyVEIUXr7wJdIdePWTubsqVbEMvf1WQnHGv0Q+9yPRu7MtYFPt+GBOXRav9lvIINifTQ1vSCs+eA==", + "dev": true, + "dependencies": { + "cacache": "^15.0.4", + "fast-glob": "^3.2.4", + "find-cache-dir": "^3.3.1", + "glob-parent": "^5.1.1", + "globby": "^11.0.1", + "loader-utils": "^2.0.0", + "normalize-path": "^3.0.0", + "p-limit": "^3.0.1", + "schema-utils": "^2.7.0", + "serialize-javascript": "^4.0.0", + "webpack-sources": "^1.4.3" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/copy-webpack-plugin/node_modules/cacache": { + "version": "15.0.5", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.0.5.tgz", + "integrity": "sha512-lloiL22n7sOjEEXdL8NAjTgv9a1u43xICE9/203qonkZUCj5X1UEWIdf2/Y0d6QcCtMzbKQyhrcDbdvlZTs/+A==", + "dev": true, + "dependencies": { + "@npmcli/move-file": "^1.0.1", + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "infer-owner": "^1.0.4", + "lru-cache": "^6.0.0", + "minipass": "^3.1.1", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^1.0.3", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^8.0.0", + "tar": "^6.0.2", + "unique-filename": "^1.1.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/copy-webpack-plugin/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/copy-webpack-plugin/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/copy-webpack-plugin/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cordova-android": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/cordova-android/-/cordova-android-9.1.0.tgz", + "integrity": "sha512-bzOX9E4eQsOSpa06oZZ7XAGq3DwB73juhhj0oPqHH/khWk0mkCD4aiVYMFoc0fmIaSQvzbY1ww7L6UBW5pyGfg==", + "dev": true, + "dependencies": { + "android-versions": "^1.5.0", + "cordova-common": "^4.0.1", + "execa": "^4.0.2", + "fast-glob": "^3.2.4", + "fs-extra": "^9.0.1", + "is-path-inside": "^3.0.2", + "nopt": "^4.0.3", + "properties-parser": "^0.3.1", + "semver": "^7.3.4", + "which": "^2.0.2" + }, + "bin": { + "create": "bin/create" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/cordova-android/node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cordova-android/node_modules/execa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/cordova-android/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cordova-android/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cordova-android/node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/cordova-android/node_modules/is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/cordova-android/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/cordova-android/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cordova-android/node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cordova-android/node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/cordova-android/node_modules/semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cordova-android/node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cordova-android/node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/cordova-android/node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/cordova-android/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cordova-common": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/cordova-common/-/cordova-common-4.0.2.tgz", + "integrity": "sha512-od7aNShyuBajzPY83mUEO8tERwwWdFklXETHiXP5Ft87CWeo/tSuwNPFztyTy8XYc74yXdogXKPTJeUHuVzB8Q==", + "dev": true, + "dependencies": { + "@netflix/nerror": "^1.1.3", + "ansi": "^0.3.1", + "bplist-parser": "^0.2.0", + "cross-spawn": "^7.0.1", + "elementtree": "^0.1.7", + "endent": "^1.4.1", + "fast-glob": "^3.2.2", + "fs-extra": "^9.0.0", + "glob": "^7.1.6", + "plist": "^3.0.1", + "q": "^1.5.1", + "read-chunk": "^3.2.0", + "strip-bom": "^4.0.0", + "underscore": "^1.9.2" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/cordova-common/node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cordova-common/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cordova-common/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/cordova-common/node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/cordova-common/node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cordova-common/node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/cordova-common/node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/cordova-common/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cordova-plugin-device": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/cordova-plugin-device/-/cordova-plugin-device-2.0.2.tgz", + "integrity": "sha1-/Ajzci5n7ve2xnv8mag99q3Quro=", + "dev": true, + "engines": { + "cordovaDependencies": { + "3.0.0": { + "cordova": ">100" + } + } + } + }, + "node_modules/cordova-plugin-ionic-keyboard": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cordova-plugin-ionic-keyboard/-/cordova-plugin-ionic-keyboard-2.2.0.tgz", + "integrity": "sha512-yDUG+9ieKVRitq5mGlNxjaZh/MgEhFFIgTIPhqSbUaQ8UuZbawy5mhJAVClqY97q8/rcQtL6dCDa7x2sEtCLcA==", + "dev": true + }, + "node_modules/cordova-plugin-ionic-webview": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/cordova-plugin-ionic-webview/-/cordova-plugin-ionic-webview-4.2.1.tgz", + "integrity": "sha512-7KrmqLaOGq1RP8N2z1ezN1kqkWFzTwwMvQ3/qAkd+exxFZuOe3DIN4eaU1gdNphsxdirI8Ajnr9q4So5vQbWqw==", + "dev": true, + "engines": { + "cordovaDependencies": { + "2.0.0": { + "cordova-android": ">=6.4.0", + "cordova-ios": ">=4.0.0-dev" + }, + "3.1.0": { + "cordova": ">=7.1.0", + "cordova-android": ">=6.4.0", + "cordova-ios": ">=4.0.0-dev" + } + } + } + }, + "node_modules/cordova-plugin-splashscreen": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/cordova-plugin-splashscreen/-/cordova-plugin-splashscreen-5.0.2.tgz", + "integrity": "sha1-dH509W4gHNWFvGLRS8oZ9oZ/8e0=", + "dev": true, + "engines": { + "cordovaDependencies": { + "2.0.0": { + "cordova-android": ">=3.6.0" + }, + "4.0.0": { + "cordova-android": ">=3.6.0", + "cordova-windows": ">=4.4.0" + }, + "6.0.0": { + "cordova": ">100" + } + } + } + }, + "node_modules/cordova-plugin-statusbar": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/cordova-plugin-statusbar/-/cordova-plugin-statusbar-2.4.2.tgz", + "integrity": "sha1-/B+9wNjXAzp+jh8ff/FnrJvU+vY=", + "dev": true, + "engines": { + "cordovaDependencies": { + "0.1.0": { + "cordova": ">=3.0.0" + }, + "3.0.0": { + "cordova": ">100" + } + } + } + }, + "node_modules/cordova-plugin-whitelist": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/cordova-plugin-whitelist/-/cordova-plugin-whitelist-1.3.3.tgz", + "integrity": "sha1-tehezbv+Wu3tQKG/TuI3LmfZb7Q=", + "dev": true, + "engines": { + "cordovaDependencies": { + "0.0.0": { + "cordova-android": ">=4.0.0" + }, + "2.0.0": { + "cordova": ">100" + } + } + } + }, + "node_modules/core-js": { + "version": "3.6.4", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.4.tgz", + "integrity": "sha512-4paDGScNgZP2IXXilaffL9X7968RuvwlkK3xWtZRVqgd8SYNiVKRJvkFd1aqqEuPfN7E68ZHEp9hDj6lHj4Hyw==", + "dev": true + }, + "node_modules/core-js-compat": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.8.1.tgz", + "integrity": "sha512-a16TLmy9NVD1rkjUGbwuyWkiDoN0FDpAwrfLONvHFQx0D9k7J9y0srwMT8QP/Z6HE3MIFaVynEeYwZwPX1o5RQ==", + "dev": true, + "dependencies": { + "browserslist": "^4.15.0", + "semver": "7.0.0" + } + }, + "node_modules/core-js-compat/node_modules/semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/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 + }, + "node_modules/cosmiconfig": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", + "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", + "dev": true, + "dependencies": { + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.13.1", + "parse-json": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/create-ecdh": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", + "dev": true, + "dependencies": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + } + }, + "node_modules/create-ecdh/node_modules/bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + }, + "node_modules/create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dev": true, + "dependencies": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "node_modules/create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dev": true, + "dependencies": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "node_modules/cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/cross-spawn/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "dev": true, + "dependencies": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + }, + "engines": { + "node": "*" + } + }, + "node_modules/css": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz", + "integrity": "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "source-map": "^0.6.1", + "source-map-resolve": "^0.5.2", + "urix": "^0.1.0" + } + }, + "node_modules/css-color-names": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", + "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/css-declaration-sorter": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz", + "integrity": "sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==", + "dev": true, + "dependencies": { + "postcss": "^7.0.1", + "timsort": "^0.3.0" + }, + "engines": { + "node": ">4" + } + }, + "node_modules/css-loader": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-3.5.3.tgz", + "integrity": "sha512-UEr9NH5Lmi7+dguAm+/JSPovNjYbm2k3TK58EiwQHzOHH5Jfq1Y+XoP2bQO6TMn7PptMd0opxxedAWcaSTRKHw==", + "dev": true, + "dependencies": { + "camelcase": "^5.3.1", + "cssesc": "^3.0.0", + "icss-utils": "^4.1.1", + "loader-utils": "^1.2.3", + "normalize-path": "^3.0.0", + "postcss": "^7.0.27", + "postcss-modules-extract-imports": "^2.0.0", + "postcss-modules-local-by-default": "^3.0.2", + "postcss-modules-scope": "^2.2.0", + "postcss-modules-values": "^3.0.0", + "postcss-value-parser": "^4.0.3", + "schema-utils": "^2.6.6", + "semver": "^6.3.0" + }, + "engines": { + "node": ">= 8.9.0" + } + }, + "node_modules/css-loader/node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/css-loader/node_modules/loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/css-loader/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/css-parse": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/css-parse/-/css-parse-2.0.0.tgz", + "integrity": "sha1-pGjuZnwW2BzPBcWMONKpfHgNv9Q=", + "dev": true, + "dependencies": { + "css": "^2.0.0" + } + }, + "node_modules/css-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", + "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^3.2.1", + "domutils": "^1.7.0", + "nth-check": "^1.0.2" + } + }, + "node_modules/css-select-base-adapter": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", + "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==", + "dev": true + }, + "node_modules/css-selector-tokenizer": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.3.tgz", + "integrity": "sha512-jWQv3oCEL5kMErj4wRnK/OPoBi0D+P1FR2cDCKYPaMeD2eW3/mttav8HT4hT1CKopiJI/psEULjkClhvJo4Lvg==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "fastparse": "^1.1.2" + } + }, + "node_modules/css-tree": { + "version": "1.0.0-alpha.37", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", + "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", + "dev": true, + "dependencies": { + "mdn-data": "2.0.4", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/css-tree/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/css-what": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", + "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/css/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cssauron": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/cssauron/-/cssauron-1.4.0.tgz", + "integrity": "sha1-pmAt/34EqDBtwNuaVR6S6LVmKtg=", + "dev": true, + "dependencies": { + "through": "X.X.X" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssnano": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.1.10.tgz", + "integrity": "sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ==", + "dev": true, + "dependencies": { + "cosmiconfig": "^5.0.0", + "cssnano-preset-default": "^4.0.7", + "is-resolvable": "^1.0.0", + "postcss": "^7.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/cssnano-preset-default": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz", + "integrity": "sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA==", + "dev": true, + "dependencies": { + "css-declaration-sorter": "^4.0.1", + "cssnano-util-raw-cache": "^4.0.1", + "postcss": "^7.0.0", + "postcss-calc": "^7.0.1", + "postcss-colormin": "^4.0.3", + "postcss-convert-values": "^4.0.1", + "postcss-discard-comments": "^4.0.2", + "postcss-discard-duplicates": "^4.0.2", + "postcss-discard-empty": "^4.0.1", + "postcss-discard-overridden": "^4.0.1", + "postcss-merge-longhand": "^4.0.11", + "postcss-merge-rules": "^4.0.3", + "postcss-minify-font-values": "^4.0.2", + "postcss-minify-gradients": "^4.0.2", + "postcss-minify-params": "^4.0.2", + "postcss-minify-selectors": "^4.0.2", + "postcss-normalize-charset": "^4.0.1", + "postcss-normalize-display-values": "^4.0.2", + "postcss-normalize-positions": "^4.0.2", + "postcss-normalize-repeat-style": "^4.0.2", + "postcss-normalize-string": "^4.0.2", + "postcss-normalize-timing-functions": "^4.0.2", + "postcss-normalize-unicode": "^4.0.1", + "postcss-normalize-url": "^4.0.1", + "postcss-normalize-whitespace": "^4.0.2", + "postcss-ordered-values": "^4.1.2", + "postcss-reduce-initial": "^4.0.3", + "postcss-reduce-transforms": "^4.0.2", + "postcss-svgo": "^4.0.2", + "postcss-unique-selectors": "^4.0.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/cssnano-util-get-arguments": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz", + "integrity": "sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/cssnano-util-get-match": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz", + "integrity": "sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/cssnano-util-raw-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz", + "integrity": "sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA==", + "dev": true, + "dependencies": { + "postcss": "^7.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/cssnano-util-same-parent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz", + "integrity": "sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/csso": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "dev": true, + "dependencies": { + "css-tree": "^1.1.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/csso/node_modules/css-tree": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.2.tgz", + "integrity": "sha512-wCoWush5Aeo48GLhfHPbmvZs59Z+M7k5+B1xDnXbdWNcEF423DoFdqSWE0PM5aNk5nI5cp1q7ms36zGApY/sKQ==", + "dev": true, + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/csso/node_modules/mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", + "dev": true + }, + "node_modules/csso/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/custom-event": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", + "integrity": "sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU=", + "dev": true + }, + "node_modules/cyclist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", + "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", + "dev": true + }, + "node_modules/d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "dev": true, + "dependencies": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" + } + }, + "node_modules/damerau-levenshtein": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.6.tgz", + "integrity": "sha512-JVrozIeElnj3QzfUIt8tB8YMluBJom4Vw9qTPpjGYQ9fYlB3D/rb6OordUxf3xeFB35LKWs0xqcO5U6ySvBtug==", + "dev": true + }, + "node_modules/dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/data-urls": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", + "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "dev": true, + "dependencies": { + "abab": "^2.0.3", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/date-format": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-3.0.0.tgz", + "integrity": "sha512-eyTcpKOcamdhWJXj56DpQMo1ylSQpcGtGKXcU0Tb97+K56/CF5amAqqqNj0+KvA0iw2ynxtHWFsPDSClCxe48w==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/debuglog": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz", + "integrity": "sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=", + "dev": true + }, + "node_modules/deep-equal": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", + "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", + "dev": true, + "dependencies": { + "is-arguments": "^1.0.4", + "is-date-object": "^1.0.1", + "is-regex": "^1.0.4", + "object-is": "^1.0.1", + "object-keys": "^1.1.1", + "regexp.prototype.flags": "^1.2.0" + } + }, + "node_modules/default-gateway": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", + "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==", + "dev": true, + "dependencies": { + "execa": "^1.0.0", + "ip-regex": "^2.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/defaults": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "dev": true, + "dependencies": { + "clone": "^1.0.2" + } + }, + "node_modules/defaults/node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "dependencies": { + "object-keys": "^1.0.12" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/del": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", + "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", + "dev": true, + "dependencies": { + "@types/glob": "^7.1.1", + "globby": "^6.1.0", + "is-path-cwd": "^2.0.0", + "is-path-in-cwd": "^2.0.0", + "p-map": "^2.0.0", + "pify": "^4.0.1", + "rimraf": "^2.6.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/del/node_modules/array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true, + "dependencies": { + "array-uniq": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/del/node_modules/globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", + "dev": true, + "dependencies": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/del/node_modules/globby/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/del/node_modules/p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/del/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/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, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/dependency-graph": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.7.2.tgz", + "integrity": "sha512-KqtH4/EZdtdfWX0p6MGP9jljvxSY6msy/pRUD4jgNwVpv3v1QmNLlsB3LDSSUg79BRVSn7jI1QPRtArGABovAQ==", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/des.js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", + "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + }, + "node_modules/detect-node": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz", + "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==", + "dev": true + }, + "node_modules/dezalgo": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz", + "integrity": "sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY=", + "dev": true, + "dependencies": { + "asap": "^2.0.0", + "wrappy": "1" + } + }, + "node_modules/di": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", + "integrity": "sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw=", + "dev": true + }, + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "dev": true, + "dependencies": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + } + }, + "node_modules/diffie-hellman/node_modules/bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=", + "dev": true + }, + "node_modules/dns-packet": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz", + "integrity": "sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==", + "dev": true, + "dependencies": { + "ip": "^1.1.0", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/dns-txt": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", + "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", + "dev": true, + "dependencies": { + "buffer-indexof": "^1.0.0" + } + }, + "node_modules/dom-serialize": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz", + "integrity": "sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs=", + "dev": true, + "dependencies": { + "custom-event": "~1.0.0", + "ent": "~2.2.0", + "extend": "^3.0.0", + "void-elements": "^2.0.0" + } + }, + "node_modules/dom-serializer": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", + "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", + "dev": true, + "dependencies": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + } + }, + "node_modules/dom-serializer/node_modules/domelementtype": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.1.0.tgz", + "integrity": "sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w==", + "dev": true + }, + "node_modules/domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", + "dev": true, + "engines": { + "node": ">=0.4", + "npm": ">=1.2" + } + }, + "node_modules/domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", + "dev": true + }, + "node_modules/domhandler": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", + "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", + "dev": true, + "dependencies": { + "domelementtype": "1" + } + }, + "node_modules/domutils": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "dev": true, + "dependencies": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "node_modules/dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dev": true, + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "node_modules/ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "dev": true, + "dependencies": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + }, + "node_modules/electron-to-chromium": { + "version": "1.3.633", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.633.tgz", + "integrity": "sha512-bsVCsONiVX1abkWdH7KtpuDAhsQ3N3bjPYhROSAXE78roJKet0Y5wznA14JE9pzbwSZmSMAW6KiKYf1RvbTJkA==", + "dev": true + }, + "node_modules/elementtree": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/elementtree/-/elementtree-0.1.7.tgz", + "integrity": "sha1-mskb5uUvtuYkTE5UpKw+2K6OKcA=", + "dev": true, + "dependencies": { + "sax": "1.1.4" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/elementtree/node_modules/sax": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.1.4.tgz", + "integrity": "sha1-dLbTPJrh4AFRDxeakRaFiPGu2qk=", + "dev": true + }, + "node_modules/elliptic": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", + "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", + "dev": true, + "dependencies": { + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" + } + }, + "node_modules/elliptic/node_modules/bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "dev": true, + "dependencies": { + "iconv-lite": "^0.6.2" + } + }, + "node_modules/encoding/node_modules/iconv-lite": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz", + "integrity": "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/endent": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/endent/-/endent-1.4.1.tgz", + "integrity": "sha512-buHTb5c8AC9NshtP6dgmNLYkiT+olskbq1z6cEGvfGCF3Qphbu/1zz5Xu+yjTDln8RbxNhPoUyJ5H8MSrp1olQ==", + "dev": true, + "dependencies": { + "dedent": "^0.7.0", + "fast-json-parse": "^1.0.3", + "objectorarray": "^1.0.4" + } + }, + "node_modules/engine.io": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.4.2.tgz", + "integrity": "sha512-b4Q85dFkGw+TqgytGPrGgACRUhsdKc9S9ErRAXpPGy/CXKs4tYoHDkvIRdsseAF7NjfVwjRFIn6KTnbw7LwJZg==", + "dev": true, + "dependencies": { + "accepts": "~1.3.4", + "base64id": "2.0.0", + "cookie": "0.3.1", + "debug": "~4.1.0", + "engine.io-parser": "~2.2.0", + "ws": "^7.1.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/engine.io-client": { + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.4.4.tgz", + "integrity": "sha512-iU4CRr38Fecj8HoZEnFtm2EiKGbYZcPn3cHxqNGl/tmdWRf60KhK+9vE0JeSjgnlS/0oynEfLgKbT9ALpim0sQ==", + "dev": true, + "dependencies": { + "component-emitter": "~1.3.0", + "component-inherit": "0.0.3", + "debug": "~3.1.0", + "engine.io-parser": "~2.2.0", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "parseqs": "0.0.6", + "parseuri": "0.0.6", + "ws": "~6.1.0", + "xmlhttprequest-ssl": "~1.5.4", + "yeast": "0.1.2" + } + }, + "node_modules/engine.io-client/node_modules/debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/engine.io-client/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/engine.io-client/node_modules/parseqs": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.6.tgz", + "integrity": "sha512-jeAGzMDbfSHHA091hr0r31eYfTig+29g3GKKE/PPbEQ65X0lmMwlEoqmhzu0iztID5uJpZsFlUPDP8ThPL7M8w==", + "dev": true + }, + "node_modules/engine.io-client/node_modules/parseuri": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.6.tgz", + "integrity": "sha512-AUjen8sAkGgao7UyCX6Ahv0gIK2fABKmYjvP4xmy5JaKvcbTRueIqIPHLAfq30xJddqSE033IOMUSOMCcK3Sow==", + "dev": true + }, + "node_modules/engine.io-client/node_modules/ws": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.1.4.tgz", + "integrity": "sha512-eqZfL+NE/YQc1/ZynhojeV8q+H050oR8AZ2uIev7RU10svA9ZnJUddHcOUZTJLinZ9yEfdA2kSATS2qZK5fhJA==", + "dev": true, + "dependencies": { + "async-limiter": "~1.0.0" + } + }, + "node_modules/engine.io-parser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.2.1.tgz", + "integrity": "sha512-x+dN/fBH8Ro8TFwJ+rkB2AmuVw9Yu2mockR/p3W8f8YtExwFgDvBDi0GWyb4ZLkpahtDGZgtr3zLovanJghPqg==", + "dev": true, + "dependencies": { + "after": "0.8.2", + "arraybuffer.slice": "~0.0.7", + "base64-arraybuffer": "0.1.4", + "blob": "0.0.5", + "has-binary2": "~1.0.2" + } + }, + "node_modules/engine.io/node_modules/cookie": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", + "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/engine.io/node_modules/debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/engine.io/node_modules/ws": { + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.2.tgz", + "integrity": "sha512-T4tewALS3+qsrpGI/8dqNMLIVdq/g/85U98HPMa6F0m6xTbvhXU6RCQLqPH3+SlomNV/LdY6RXEbBpMH6EOJnA==", + "dev": true, + "engines": { + "node": ">=8.3.0" + } + }, + "node_modules/enhanced-resolve": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.1.tgz", + "integrity": "sha512-98p2zE+rL7/g/DzMHMTF4zZlCgeVdJ7yr6xzEpJRYwFYrGi9ANdn5DnJURg6RpBkyk60XYDnWIv51VfIhfNGuA==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.5.0", + "tapable": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/ent": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", + "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=", + "dev": true + }, + "node_modules/entities": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", + "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", + "dev": true + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/err-code": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz", + "integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=", + "dev": true + }, + "node_modules/errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "dev": true, + "dependencies": { + "prr": "~1.0.1" + }, + "bin": { + "errno": "cli.js" + } + }, + "node_modules/error-ex": { + "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, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-abstract": { + "version": "1.18.0-next.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz", + "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==", + "dev": true, + "dependencies": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-negative-zero": "^2.0.0", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es5-ext": { + "version": "0.10.53", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", + "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", + "dev": true, + "dependencies": { + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.3", + "next-tick": "~1.0.0" + } + }, + "node_modules/es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "dev": true, + "dependencies": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "node_modules/es6-promise": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", + "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", + "dev": true + }, + "node_modules/es6-promisify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", + "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", + "dev": true, + "dependencies": { + "es6-promise": "^4.0.3" + } + }, + "node_modules/es6-symbol": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", + "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", + "dev": true, + "dependencies": { + "d": "^1.0.1", + "ext": "^1.1.2" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + }, + "node_modules/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, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eslint-scope": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", + "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", + "dev": true, + "dependencies": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true + }, + "node_modules/events": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.2.0.tgz", + "integrity": "sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==", + "dev": true, + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/eventsource": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.0.7.tgz", + "integrity": "sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ==", + "dev": true, + "dependencies": { + "original": "^1.0.0" + }, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dev": true, + "dependencies": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dev": true, + "dependencies": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "dependencies": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/expand-brackets/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/express": { + "version": "4.17.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", + "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", + "dependencies": { + "accepts": "~1.3.7", + "array-flatten": "1.1.1", + "body-parser": "1.19.0", + "content-disposition": "0.5.3", + "content-type": "~1.0.4", + "cookie": "0.4.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.5", + "qs": "6.7.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.1.2", + "send": "0.17.1", + "serve-static": "1.14.1", + "setprototypeof": "1.1.1", + "statuses": "~1.5.0", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express/node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "node_modules/ext": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", + "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==", + "dev": true, + "dependencies": { + "type": "^2.0.0" + } + }, + "node_modules/ext/node_modules/type": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/type/-/type-2.1.0.tgz", + "integrity": "sha512-G9absDWvhAWCV2gmF1zKud3OyC61nZDwWvBL2DApaVFogI07CprggiQAOOjvp2NRjYWFzPyu7vwtDrQFq8jeSA==", + "dev": true + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extend-shallow/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "dependencies": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/external-editor/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "dependencies": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true, + "engines": [ + "node >=0.6.0" + ] + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz", + "integrity": "sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.0", + "merge2": "^1.3.0", + "micromatch": "^4.0.2", + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fast-json-parse": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/fast-json-parse/-/fast-json-parse-1.0.3.tgz", + "integrity": "sha512-FRWsaZRWEJ1ESVNbDWmsAlqDk96gPQezzLghafp5J4GUKjbCz3OkAHuZs5TuPEtkbVQERysLp9xv6c24fBm8Aw==", + "dev": true + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fastparse": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz", + "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.10.0.tgz", + "integrity": "sha512-NL2Qc5L3iQEsyYzweq7qfgy5OtXCmGzGvhElGEd/SoFWEMOEczNh5s5ocaF01HDetxz+p8ecjNPA6cZxxIHmzA==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/faye-websocket": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", + "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", + "dev": true, + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", + "dev": true, + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/figgy-pudding": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", + "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==", + "dev": true + }, + "node_modules/figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/file-loader": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.0.0.tgz", + "integrity": "sha512-/aMOAYEFXDdjG0wytpTL5YQLfZnnTmLNjn+AIrJ/6HVnTfDqLsVKUUwkDf4I4kgex36BvjuXEn/TX9B/1ESyqQ==", + "dev": true, + "dependencies": { + "loader-utils": "^2.0.0", + "schema-utils": "^2.6.5" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "node_modules/find-cache-dir": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", + "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", + "dev": true, + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-cache-dir/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-cache-dir/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-cache-dir/node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-cache-dir/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-cache-dir/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-cache-dir/node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-cache-dir/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/flatted": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", + "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", + "dev": true + }, + "node_modules/flush-write-stream": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", + "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + } + }, + "node_modules/follow-redirects": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.1.tgz", + "integrity": "sha512-SSG5xmZh1mkPGyKzjZP8zLjltIfpW32Y5QpdNJyjcfGxK3qo3NDDkZOZSFiGn1A6SclQxY9GzEwAHQ3dmYRWpg==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/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, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "dependencies": { + "map-cache": "^0.2.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "node_modules/fs-extra": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.2.tgz", + "integrity": "sha1-+RcExT0bRh+JNFKwwwfZmXZHq2s=", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/fs-write-stream-atomic": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", + "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "node_modules/fsevents": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/genfun": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/genfun/-/genfun-5.0.0.tgz", + "integrity": "sha512-KGDOARWVga7+rnB3z9Sd2Letx515owfk0hSxHGuqjANb1M+x2bGZGqHLiozPsYMdM2OubeMni/Hpwmjq6qIUhA==", + "dev": true + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.0.2.tgz", + "integrity": "sha512-aeX0vrFm21ILl3+JpFFRNe9aUvp6VFZb2/CTbgLb8j75kOhvoNYjt9d8KA/tJG4gSo8nzEDedRl0h7vDmBYRVg==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, + "node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0" + } + }, + "node_modules/glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/glob-parent": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/globby": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.1.tgz", + "integrity": "sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.1.1", + "ignore": "^5.1.4", + "merge2": "^1.3.0", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==" + }, + "node_modules/handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", + "dev": true + }, + "node_modules/har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "dev": true, + "dependencies": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-binary2": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz", + "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==", + "dev": true, + "dependencies": { + "isarray": "2.0.1" + } + }, + "node_modules/has-binary2/node_modules/isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", + "dev": true + }, + "node_modules/has-cors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", + "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=", + "dev": true + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "dependencies": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "dependencies": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/hash-base/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/hash-base/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + }, + "node_modules/hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "node_modules/hex-color-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz", + "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==", + "dev": true + }, + "node_modules/hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "dev": true, + "dependencies": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/hosted-git-info": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.7.tgz", + "integrity": "sha512-fWqc0IcuXs+BmE9orLDyVykAG9GJtGLGuZAAqgcckPgv5xad4AcXGIv8galtQvlwutxSlaMcdw7BUtq2EIvqCQ==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/hosted-git-info/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "node_modules/hsl-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz", + "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=", + "dev": true + }, + "node_modules/hsla-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz", + "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=", + "dev": true + }, + "node_modules/html-comment-regex": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.2.tgz", + "integrity": "sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==", + "dev": true + }, + "node_modules/html-entities": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.4.0.tgz", + "integrity": "sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA==", + "dev": true + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "node_modules/htmlparser2": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", + "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", + "dev": true, + "dependencies": { + "domelementtype": "^1.3.1", + "domhandler": "^2.3.0", + "domutils": "^1.5.1", + "entities": "^1.1.1", + "inherits": "^2.0.1", + "readable-stream": "^3.1.1" + } + }, + "node_modules/htmlparser2/node_modules/entities": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", + "dev": true + }, + "node_modules/htmlparser2/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/http-cache-semantics": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", + "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==", + "dev": true + }, + "node_modules/http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", + "dev": true + }, + "node_modules/http-errors": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/http-errors/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dev": true, + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/http-proxy-agent": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz", + "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==", + "dev": true, + "dependencies": { + "agent-base": "4", + "debug": "3.1.0" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/http-proxy-agent/node_modules/debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/http-proxy-agent/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/http-proxy-middleware": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz", + "integrity": "sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==", + "dev": true, + "dependencies": { + "http-proxy": "^1.17.0", + "is-glob": "^4.0.0", + "lodash": "^4.17.11", + "micromatch": "^3.1.10" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/http-proxy-middleware/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/http-proxy-middleware/node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/http-proxy-middleware/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/http-proxy-middleware/node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/http-proxy-middleware/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/http-proxy-middleware/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/http-proxy-middleware/node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/http-proxy-middleware/node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + }, + "engines": { + "node": ">=0.8", + "npm": ">=1.3.7" + } + }, + "node_modules/https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", + "dev": true + }, + "node_modules/https-proxy-agent": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", + "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==", + "dev": true, + "dependencies": { + "agent-base": "^4.3.0", + "debug": "^3.1.0" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/https-proxy-agent/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", + "dev": true, + "engines": { + "node": ">=8.12.0" + } + }, + "node_modules/humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", + "dev": true, + "dependencies": { + "ms": "^2.0.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.5.2.tgz", + "integrity": "sha512-kERHXvpSaB4aU3eANwidg79K8FlrN77m8G9V+0vOR3HYaRifrlwMEpT7ZBJqLSEIHnEgJTHcWK82wwLwwKwtag==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/icss-utils": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-4.1.1.tgz", + "integrity": "sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA==", + "dev": true, + "dependencies": { + "postcss": "^7.0.14" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true + }, + "node_modules/iferr": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", + "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", + "dev": true + }, + "node_modules/ignore": { + "version": "5.1.8", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", + "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/ignore-walk": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz", + "integrity": "sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==", + "dev": true, + "dependencies": { + "minimatch": "^3.0.4" + } + }, + "node_modules/image-size": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", + "dev": true, + "optional": true, + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=", + "dev": true + }, + "node_modules/immutable": { + "version": "3.8.2", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.2.tgz", + "integrity": "sha1-wkOZUUVbs5kT2vKBN28VMOEErfM=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/import-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz", + "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=", + "dev": true, + "dependencies": { + "import-from": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/import-fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", + "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", + "dev": true, + "dependencies": { + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/import-from": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz", + "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", + "dev": true, + "dependencies": { + "resolve-from": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/import-local": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", + "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", + "dev": true, + "dependencies": { + "pkg-dir": "^3.0.0", + "resolve-cwd": "^2.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/indexes-of": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", + "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", + "dev": true + }, + "node_modules/indexof": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", + "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", + "dev": true + }, + "node_modules/infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "dev": true + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/inquirer": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.1.0.tgz", + "integrity": "sha512-5fJMWEmikSYu0nv/flMc475MhGbB7TSPd/2IpFV4I4rMklboCH2rQjYY5kKiYGHqUF9gvaambupcJFFG9dvReg==", + "dev": true, + "dependencies": { + "ansi-escapes": "^4.2.1", + "chalk": "^3.0.0", + "cli-cursor": "^3.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.15", + "mute-stream": "0.0.8", + "run-async": "^2.4.0", + "rxjs": "^6.5.3", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/inquirer/node_modules/ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/inquirer/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/inquirer/node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/inquirer/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/inquirer/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/inquirer/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/inquirer/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/inquirer/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/inquirer/node_modules/string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/inquirer/node_modules/strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/inquirer/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/internal-ip": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", + "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==", + "dev": true, + "dependencies": { + "default-gateway": "^4.2.0", + "ipaddr.js": "^1.9.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dev": true, + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/ionicons": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/ionicons/-/ionicons-5.2.3.tgz", + "integrity": "sha512-87qtgBkieKVFagwYA9Cf91B3PCahQbEOMwMt8bSvlQSgflZ4eE5qI4MGj2ZlIyadeX0dgo+0CzZsy3ow0CsBAg==" + }, + "node_modules/ip": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", + "dev": true + }, + "node_modules/ip-regex": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", + "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-absolute-url": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", + "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-arguments": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz", + "integrity": "sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "node_modules/is-callable": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz", + "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-color-stop": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz", + "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=", + "dev": true, + "dependencies": { + "css-color-names": "^0.0.4", + "hex-color-regex": "^1.1.0", + "hsl-regex": "^1.0.0", + "hsla-regex": "^1.0.0", + "rgb-regex": "^1.0.1", + "rgba-regex": "^1.0.0" + } + }, + "node_modules/is-core-module": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", + "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + } + }, + "node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-date-object": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", + "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-descriptor/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-directory": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", + "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-docker": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.1.1.tgz", + "integrity": "sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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, + "engines": { + "node": ">=4" + } + }, + "node_modules/is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", + "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-path-in-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", + "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", + "dev": true, + "dependencies": { + "is-path-inside": "^2.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-path-inside": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", + "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", + "dev": true, + "dependencies": { + "path-is-inside": "^1.0.2" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-regex": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", + "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-resolvable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", + "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", + "dev": true + }, + "node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-svg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-3.0.0.tgz", + "integrity": "sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ==", + "dev": true, + "dependencies": { + "html-comment-regex": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + }, + "node_modules/is-what": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.12.0.tgz", + "integrity": "sha512-2ilQz5/f/o9V7WRWJQmpFYNmQFZ9iM+OXRonZKcYgTkCzjb949Vi4h282PD1UfmgHk666rcWonbRJ++KI41VGw==", + "dev": true + }, + "node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "node_modules/isbinaryfile": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.6.tgz", + "integrity": "sha512-ORrEy+SNVqUhrCaal4hA4fBzhggQQ+BaLntyPOdoEiwlKZW9BZiJXjg3RMiruE4tPEI3pyVPpySHQF/dKWperg==", + "dev": true, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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 + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", + "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", + "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", + "dev": true, + "dependencies": { + "@babel/core": "^7.7.5", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.0.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report/node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/istanbul-lib-report/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz", + "integrity": "sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^2.0.5", + "make-dir": "^2.1.0", + "rimraf": "^2.6.3", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/istanbul-lib-coverage": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz", + "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-reports": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz", + "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==", + "dev": true, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jasmine": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-2.8.0.tgz", + "integrity": "sha1-awicChFXax8W3xG4AUbZHU6Lij4=", + "dev": true, + "dependencies": { + "exit": "^0.1.2", + "glob": "^7.0.6", + "jasmine-core": "~2.8.0" + }, + "bin": { + "jasmine": "bin/jasmine.js" + } + }, + "node_modules/jasmine-core": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-3.5.0.tgz", + "integrity": "sha512-nCeAiw37MIMA9w9IXso7bRaLl+c/ef3wnxsoSAlYrzS+Ot0zTG6nU8G/cIfGkqpkjX2wNaIW9RFG0TwIFnG6bA==", + "dev": true + }, + "node_modules/jasmine-spec-reporter": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/jasmine-spec-reporter/-/jasmine-spec-reporter-5.0.2.tgz", + "integrity": "sha512-6gP1LbVgJ+d7PKksQBc2H0oDGNRQI3gKUsWlswKaQ2fif9X5gzhQcgM5+kiJGCQVurOG09jqNhk7payggyp5+g==", + "dev": true, + "dependencies": { + "colors": "1.4.0" + } + }, + "node_modules/jasmine/node_modules/jasmine-core": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.8.0.tgz", + "integrity": "sha1-vMl5rh+f0FcB5F5S5l06XWPxok4=", + "dev": true + }, + "node_modules/jasminewd2": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/jasminewd2/-/jasminewd2-2.2.0.tgz", + "integrity": "sha1-43zwsX8ZnM4jvqcbIDk5Uka07E4=", + "dev": true, + "engines": { + "node": ">= 6.9.x" + } + }, + "node_modules/jest-worker": { + "version": "26.0.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.0.0.tgz", + "integrity": "sha512-pPaYa2+JnwmiZjK9x7p9BoZht+47ecFCDFA/CJxspHzeDvQcfVBLWzCiWyo+EGrSiQMWZtCFo9iSvMZnAAo8vw==", + "dev": true, + "dependencies": { + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-worker/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true + }, + "node_modules/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 + }, + "node_modules/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 + }, + "node_modules/json3": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz", + "integrity": "sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==", + "dev": true + }, + "node_modules/json5": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", + "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", + "dev": true, + "engines": [ + "node >= 0.2.0" + ] + }, + "node_modules/JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "dev": true, + "dependencies": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + }, + "bin": { + "JSONStream": "bin.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "node_modules/jszip": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.5.0.tgz", + "integrity": "sha512-WRtu7TPCmYePR1nazfrtuF216cIVon/3GWOvHS9QR5bIwSbnxtdpma6un3jyGGNhHsKCSzn5Ypk+EkDRvTGiFA==", + "dev": true, + "dependencies": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "set-immediate-shim": "~1.0.1" + } + }, + "node_modules/karma": { + "version": "5.0.9", + "resolved": "https://registry.npmjs.org/karma/-/karma-5.0.9.tgz", + "integrity": "sha512-dUA5z7Lo7G4FRSe1ZAXqOINEEWxmCjDBbfRBmU/wYlSMwxUQJP/tEEP90yJt3Uqo03s9rCgVnxtlfq+uDhxSPg==", + "dev": true, + "dependencies": { + "body-parser": "^1.19.0", + "braces": "^3.0.2", + "chokidar": "^3.0.0", + "colors": "^1.4.0", + "connect": "^3.7.0", + "di": "^0.0.1", + "dom-serialize": "^2.2.1", + "flatted": "^2.0.2", + "glob": "^7.1.6", + "graceful-fs": "^4.2.4", + "http-proxy": "^1.18.1", + "isbinaryfile": "^4.0.6", + "lodash": "^4.17.15", + "log4js": "^6.2.1", + "mime": "^2.4.5", + "minimatch": "^3.0.4", + "qjobs": "^1.2.0", + "range-parser": "^1.2.1", + "rimraf": "^3.0.2", + "socket.io": "^2.3.0", + "source-map": "^0.6.1", + "tmp": "0.2.1", + "ua-parser-js": "0.7.21", + "yargs": "^15.3.1" + }, + "bin": { + "karma": "bin/karma" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/karma-chrome-launcher": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-3.1.0.tgz", + "integrity": "sha512-3dPs/n7vgz1rxxtynpzZTvb9y/GIaW8xjAwcIGttLbycqoFtI7yo1NGnQi6oFTherRE+GIhCAHZC4vEqWGhNvg==", + "dev": true, + "dependencies": { + "which": "^1.2.1" + } + }, + "node_modules/karma-coverage-istanbul-reporter": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/karma-coverage-istanbul-reporter/-/karma-coverage-istanbul-reporter-3.0.3.tgz", + "integrity": "sha512-wE4VFhG/QZv2Y4CdAYWDbMmcAHeS926ZIji4z+FkB2aF/EposRb6DP6G5ncT/wXhqUfAb/d7kZrNKPonbvsATw==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^3.0.6", + "istanbul-reports": "^3.0.2", + "minimatch": "^3.0.4" + } + }, + "node_modules/karma-jasmine": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-3.3.1.tgz", + "integrity": "sha512-Nxh7eX9mOQMyK0VSsMxdod+bcqrR/ikrmEiWj5M6fwuQ7oI+YEF1FckaDsWfs6TIpULm9f0fTKMjF7XcrvWyqQ==", + "dev": true, + "dependencies": { + "jasmine-core": "^3.5.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/karma-jasmine-html-reporter": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-1.5.4.tgz", + "integrity": "sha512-PtilRLno5O6wH3lDihRnz0Ba8oSn0YUJqKjjux1peoYGwo0AQqrWRbdWk/RLzcGlb+onTyXAnHl6M+Hu3UxG/Q==", + "dev": true + }, + "node_modules/karma-source-map-support": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.4.0.tgz", + "integrity": "sha512-RsBECncGO17KAoJCYXjv+ckIz+Ii9NCi+9enk+rq6XC81ezYkb4/RHE6CTXdA7IOJqoF3wcaLfVG0CPmE5ca6A==", + "dev": true, + "dependencies": { + "source-map-support": "^0.5.5" + } + }, + "node_modules/karma/node_modules/ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/karma/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/karma/node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/karma/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/karma/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/karma/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/karma/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/karma/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/karma/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/karma/node_modules/mime": { + "version": "2.4.7", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.7.tgz", + "integrity": "sha512-dhNd1uA2u397uQk3Nv5LM4lm93WYDUXFn3Fu291FJerns4jyTudqhIWe4W04YLy7Uk1tm1Ore04NpjRvQp/NPA==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/karma/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/karma/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/karma/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/karma/node_modules/string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/karma/node_modules/strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/karma/node_modules/tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "dev": true, + "dependencies": { + "rimraf": "^3.0.0" + }, + "engines": { + "node": ">=8.17.0" + } + }, + "node_modules/karma/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/karma/node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dev": true, + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/karma/node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/killable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", + "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==", + "dev": true + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/kleur": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.4.tgz", + "integrity": "sha512-8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/less": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/less/-/less-3.13.1.tgz", + "integrity": "sha512-SwA1aQXGUvp+P5XdZslUOhhLnClSLIjWvJhmd+Vgib5BFIr9lMNlQwmwUNOjXThF/A0x+MCYYPeWEfeWiLRnTw==", + "dev": true, + "dependencies": { + "copy-anything": "^2.0.1", + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "make-dir": "^2.1.0", + "mime": "^1.4.1", + "tslib": "^1.10.0" + }, + "bin": { + "lessc": "bin/lessc" + }, + "engines": { + "node": ">=6" + }, + "optionalDependencies": { + "image-size": "~0.5.0", + "native-request": "^1.0.5", + "source-map": "~0.6.0" + } + }, + "node_modules/less-loader": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-6.1.0.tgz", + "integrity": "sha512-/jLzOwLyqJ7Kt3xg5sHHkXtOyShWwFj410K9Si9WO+/h8rmYxxkSR0A3/hFEntWudE20zZnWMtpMYnLzqTVdUA==", + "dev": true, + "dependencies": { + "clone": "^2.1.2", + "less": "^3.11.1", + "loader-utils": "^2.0.0", + "schema-utils": "^2.6.6" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/less/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/less/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/levenary": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/levenary/-/levenary-1.1.1.tgz", + "integrity": "sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ==", + "dev": true, + "dependencies": { + "leven": "^3.1.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/license-webpack-plugin": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-2.2.0.tgz", + "integrity": "sha512-XPsdL/0brSHf+7dXIlRqotnCQ58RX2au6otkOg4U3dm8uH+Ka/fW4iukEs95uXm+qKe/SBs+s1Ll/aQddKG+tg==", + "dev": true, + "dependencies": { + "@types/webpack-sources": "^0.1.5", + "webpack-sources": "^1.2.0" + } + }, + "node_modules/lie": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", + "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", + "dev": true, + "dependencies": { + "immediate": "~3.0.5" + } + }, + "node_modules/loader-runner": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", + "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", + "dev": true, + "engines": { + "node": ">=4.3.0 <5.0.0 || >=5.10" + } + }, + "node_modules/loader-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", + "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/lodash": { + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==" + }, + "node_modules/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 + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", + "dev": true + }, + "node_modules/lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", + "dev": true + }, + "node_modules/lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", + "dev": true + }, + "node_modules/log-symbols": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", + "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", + "dev": true, + "dependencies": { + "chalk": "^2.4.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/log4js": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.3.0.tgz", + "integrity": "sha512-Mc8jNuSFImQUIateBFwdOQcmC6Q5maU0VVvdC2R6XMb66/VnT+7WS4D/0EeNMZu1YODmJe5NIn2XftCzEocUgw==", + "dev": true, + "dependencies": { + "date-format": "^3.0.0", + "debug": "^4.1.1", + "flatted": "^2.0.1", + "rfdc": "^1.1.4", + "streamroller": "^2.2.4" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/loglevel": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.7.1.tgz", + "integrity": "sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw==", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/lru-cache/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/magic-string": { + "version": "0.25.7", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", + "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", + "dev": true, + "dependencies": { + "sourcemap-codec": "^1.4.4" + } + }, + "node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "node_modules/make-fetch-happen": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-5.0.2.tgz", + "integrity": "sha512-07JHC0r1ykIoruKO8ifMXu+xEU8qOXDFETylktdug6vJDACnP+HKevOu3PXyNPzFyTSlz8vrBYlBO1JZRe8Cag==", + "dev": true, + "dependencies": { + "agentkeepalive": "^3.4.1", + "cacache": "^12.0.0", + "http-cache-semantics": "^3.8.1", + "http-proxy-agent": "^2.1.0", + "https-proxy-agent": "^2.2.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "node-fetch-npm": "^2.0.2", + "promise-retry": "^1.1.1", + "socks-proxy-agent": "^4.0.0", + "ssri": "^6.0.0" + } + }, + "node_modules/make-fetch-happen/node_modules/cacache": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", + "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", + "dev": true, + "dependencies": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "infer-owner": "^1.0.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + } + }, + "node_modules/make-fetch-happen/node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true + }, + "node_modules/make-fetch-happen/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/make-fetch-happen/node_modules/ssri": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", + "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", + "dev": true, + "dependencies": { + "figgy-pudding": "^3.5.1" + } + }, + "node_modules/map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "dependencies": { + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dev": true, + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/mdn-data": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", + "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==", + "dev": true + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memory-fs": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", + "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", + "dev": true, + "dependencies": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + }, + "engines": { + "node": ">=4.3.0 <5.0.0 || >=5.10" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + }, + "node_modules/merge-source-map": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", + "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", + "dev": true, + "dependencies": { + "source-map": "^0.6.1" + } + }, + "node_modules/merge-source-map/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "dev": true, + "dependencies": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dev": true, + "dependencies": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "bin": { + "miller-rabin": "bin/miller-rabin" + } + }, + "node_modules/miller-rabin/node_modules/bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.45.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.45.0.tgz", + "integrity": "sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.28", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.28.tgz", + "integrity": "sha512-0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ==", + "dependencies": { + "mime-db": "1.45.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/mini-css-extract-plugin": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.9.0.tgz", + "integrity": "sha512-lp3GeY7ygcgAmVIcRPBVhIkf8Us7FZjA+ILpal44qLdSu11wmjKQ3d9k15lfD7pO4esu9eUIAW7qiYIBppv40A==", + "dev": true, + "dependencies": { + "loader-utils": "^1.1.0", + "normalize-url": "1.9.1", + "schema-utils": "^1.0.0", + "webpack-sources": "^1.1.0" + }, + "engines": { + "node": ">= 6.9.0" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/normalize-url": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", + "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", + "dev": true, + "dependencies": { + "object-assign": "^4.0.1", + "prepend-http": "^1.0.0", + "query-string": "^4.1.0", + "sort-keys": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "dependencies": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", + "dev": true + }, + "node_modules/minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + }, + "node_modules/minipass": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", + "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/mississippi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", + "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", + "dev": true, + "dependencies": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dev": true, + "dependencies": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mixin-deep/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/move-concurrently": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", + "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", + "dev": true, + "dependencies": { + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" + } + }, + "node_modules/move-concurrently/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/move-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/move-file/-/move-file-2.0.0.tgz", + "integrity": "sha512-cdkdhNCgbP5dvS4tlGxZbD+nloio9GIimP57EjqFhwLcMjnU+XJKAZzlmg/TN/AK1LuNAdTSvm3CPPP4Xkv0iQ==", + "dev": true, + "dependencies": { + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10.17" + } + }, + "node_modules/move-file/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/multicast-dns": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", + "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", + "dev": true, + "dependencies": { + "dns-packet": "^1.3.1", + "thunky": "^1.0.2" + }, + "bin": { + "multicast-dns": "cli.js" + } + }, + "node_modules/multicast-dns-service-types": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", + "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", + "dev": true + }, + "node_modules/mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true + }, + "node_modules/nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/native-request": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/native-request/-/native-request-1.0.8.tgz", + "integrity": "sha512-vU2JojJVelUGp6jRcLwToPoWGxSx23z/0iX+I77J3Ht17rf2INGjrhOoQnjVo60nQd8wVsgzKkPfRXBiVdD2ag==", + "dev": true, + "optional": true + }, + "node_modules/native-run": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/native-run/-/native-run-1.4.0.tgz", + "integrity": "sha512-3XJiDxGNi6XCsn8KYDQFSYGDVkKEMg0y55qTMU0feEuPNNU4iztBwW5bE87sfybZsQPsYDJQyYt9CUKDSoJgdQ==", + "dev": true, + "dependencies": { + "@ionic/utils-fs": "^3.0.0", + "@ionic/utils-terminal": "^2.3.1", + "bplist-parser": "0.2.0", + "debug": "^4.1.1", + "elementtree": "^0.1.7", + "ini": "^1.3.5", + "plist": "^3.0.1", + "split2": "^3.1.0", + "through2": "^4.0.2", + "tslib": "^2.0.1", + "yauzl": "^2.10.0" + }, + "bin": { + "native-run": "bin/native-run" + }, + "engines": { + "node": ">=10.3.0" + } + }, + "node_modules/native-run/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/native-run/node_modules/through2": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", + "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", + "dev": true, + "dependencies": { + "readable-stream": "3" + } + }, + "node_modules/negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "node_modules/next-tick": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", + "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", + "dev": true + }, + "node_modules/nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "node_modules/node-fetch-npm": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/node-fetch-npm/-/node-fetch-npm-2.0.4.tgz", + "integrity": "sha512-iOuIQDWDyjhv9qSDrj9aq/klt6F9z1p2otB3AV7v3zBDcL/x+OfGsvGQZZCcMZbUf4Ujw1xGNQkjvGnVT22cKg==", + "dev": true, + "dependencies": { + "encoding": "^0.1.11", + "json-parse-better-errors": "^1.0.0", + "safe-buffer": "^5.1.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/node-forge": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", + "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==", + "dev": true, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/node-libs-browser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", + "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", + "dev": true, + "dependencies": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.1", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.11.0", + "vm-browserify": "^1.0.1" + } + }, + "node_modules/node-libs-browser/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "node_modules/node-libs-browser/node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + }, + "node_modules/node-libs-browser/node_modules/util": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", + "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", + "dev": true, + "dependencies": { + "inherits": "2.0.3" + } + }, + "node_modules/node-releases": { + "version": "1.1.67", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.67.tgz", + "integrity": "sha512-V5QF9noGFl3EymEwUYzO+3NTDpGfQB4ve6Qfnzf3UNydMhjQRVPR1DZTuvWiLzaFJYw2fmDwAfnRNEVb64hSIg==", + "dev": true + }, + "node_modules/nopt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz", + "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", + "dev": true, + "dependencies": { + "abbrev": "1", + "osenv": "^0.1.4" + }, + "bin": { + "nopt": "bin/nopt.js" + } + }, + "node_modules/normalize-package-data": { + "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, + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/normalize-package-data/node_modules/hosted-git-info": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", + "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", + "dev": true + }, + "node_modules/normalize-package-data/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz", + "integrity": "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/npm-bundled": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.1.tgz", + "integrity": "sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA==", + "dev": true, + "dependencies": { + "npm-normalize-package-bin": "^1.0.1" + } + }, + "node_modules/npm-install-checks": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-4.0.0.tgz", + "integrity": "sha512-09OmyDkNLYwqKPOnbI8exiOZU2GVVmQp7tgez2BPi5OZC8M82elDAps7sxC4l//uSUtotWqoEIDwjRvWH4qz8w==", + "dev": true, + "dependencies": { + "semver": "^7.1.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm-normalize-package-bin": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", + "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", + "dev": true + }, + "node_modules/npm-package-arg": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.0.1.tgz", + "integrity": "sha512-/h5Fm6a/exByzFSTm7jAyHbgOqErl9qSNJDQF32Si/ZzgwT2TERVxRxn3Jurw1wflgyVVAxnFR4fRHPM7y1ClQ==", + "dev": true, + "dependencies": { + "hosted-git-info": "^3.0.2", + "semver": "^7.0.0", + "validate-npm-package-name": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm-packlist": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz", + "integrity": "sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==", + "dev": true, + "dependencies": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1", + "npm-normalize-package-bin": "^1.0.1" + } + }, + "node_modules/npm-pick-manifest": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-6.1.0.tgz", + "integrity": "sha512-ygs4k6f54ZxJXrzT0x34NybRlLeZ4+6nECAIbr2i0foTnijtS1TJiyzpqtuUAJOps/hO0tNDr8fRV5g+BtRlTw==", + "dev": true, + "dependencies": { + "npm-install-checks": "^4.0.0", + "npm-package-arg": "^8.0.0", + "semver": "^7.0.0" + } + }, + "node_modules/npm-registry-fetch": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-4.0.7.tgz", + "integrity": "sha512-cny9v0+Mq6Tjz+e0erFAB+RYJ/AVGzkjnISiobqP8OWj9c9FLoZZu8/SPSKJWE17F1tk4018wfjV+ZbIbqC7fQ==", + "dev": true, + "dependencies": { + "bluebird": "^3.5.1", + "figgy-pudding": "^3.4.1", + "JSONStream": "^1.3.4", + "lru-cache": "^5.1.1", + "make-fetch-happen": "^5.0.0", + "npm-package-arg": "^6.1.0", + "safe-buffer": "^5.2.0" + } + }, + "node_modules/npm-registry-fetch/node_modules/hosted-git-info": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", + "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", + "dev": true + }, + "node_modules/npm-registry-fetch/node_modules/npm-package-arg": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.1.1.tgz", + "integrity": "sha512-qBpssaL3IOZWi5vEKUKW0cO7kzLeT+EQO9W8RsLOZf76KF9E/K9+wH0C7t06HXPpaH8WH5xF1MExLuCwbTqRUg==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.7.1", + "osenv": "^0.1.5", + "semver": "^5.6.0", + "validate-npm-package-name": "^3.0.0" + } + }, + "node_modules/npm-registry-fetch/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + }, + "node_modules/npm-registry-fetch/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dev": true, + "dependencies": { + "path-key": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/nth-check": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", + "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", + "dev": true, + "dependencies": { + "boolbase": "~1.0.0" + } + }, + "node_modules/num2fraction": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", + "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", + "dev": true + }, + "node_modules/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, + "engines": { + "node": "*" + } + }, + "node_modules/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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-component": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz", + "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=", + "dev": true + }, + "node_modules/object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "dependencies": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz", + "integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==", + "dev": true + }, + "node_modules/object-is": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.4.tgz", + "integrity": "sha512-1ZvAZ4wlF7IyPVOcE1Omikt7UpaFlOQq0HlSti+ZvDH3UiD2brwGMwDbyV43jao2bKJ+4+WdPJHSd7kgzKYVqg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object-path": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.11.4.tgz", + "integrity": "sha1-NwrnUvvzfePqcKhhwju6iRVpGUk=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "dependencies": { + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.getownpropertydescriptors": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.1.tgz", + "integrity": "sha512-6DtXgZ/lIZ9hqx4GtZETobXLR/ZLaa0aqV0kzbn80Rf8Z2e/XFnhA0I7p07N2wH8bBBltr2xQPi6sbKWAY2Eng==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.values": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.2.tgz", + "integrity": "sha512-MYC0jvJopr8EK6dPBiO8Nb9mvjdypOachO5REGk6MXzujbBrAisKo3HmdEI6kZDL6fC31Mwee/5YbtMebixeag==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1", + "has": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/objectorarray": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/objectorarray/-/objectorarray-1.0.4.tgz", + "integrity": "sha512-91k8bjcldstRz1bG6zJo8lWD7c6QXcB4nTDUqiEvIL1xAsLoZlOOZZG+nd6YPz+V7zY1580J4Xxh1vZtyv4i/w==", + "dev": true + }, + "node_modules/obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "dev": true + }, + "node_modules/on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/open": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/open/-/open-7.0.4.tgz", + "integrity": "sha512-brSA+/yq+b08Hsr4c8fsEW2CRzk1BmfN3SAK/5VCHQ9bdoZJ4qa/+AfR0xHjlbbZUyPkUHs1b8x1RqdyZdkVqQ==", + "dev": true, + "dependencies": { + "is-docker": "^2.0.0", + "is-wsl": "^2.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/opn": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", + "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==", + "dev": true, + "dependencies": { + "is-wsl": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/opn/node_modules/is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/ora": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/ora/-/ora-4.0.4.tgz", + "integrity": "sha512-77iGeVU1cIdRhgFzCK8aw1fbtT1B/iZAvWjS+l/o1x0RShMgxHUZaD2yDpWsNCPwXg9z1ZA78Kbdvr8kBmG/Ww==", + "dev": true, + "dependencies": { + "chalk": "^3.0.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.2.0", + "is-interactive": "^1.0.0", + "log-symbols": "^3.0.0", + "mute-stream": "0.0.8", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ora/node_modules/ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ora/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ora/node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ora/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/ora/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/ora/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ora/node_modules/strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ora/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/original": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz", + "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==", + "dev": true, + "dependencies": { + "url-parse": "^1.4.3" + } + }, + "node_modules/os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", + "dev": true + }, + "node_modules/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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "dev": true, + "dependencies": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "node_modules/p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/p-retry": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz", + "integrity": "sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==", + "dev": true, + "dependencies": { + "retry": "^0.12.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/pacote": { + "version": "9.5.12", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-9.5.12.tgz", + "integrity": "sha512-BUIj/4kKbwWg4RtnBncXPJd15piFSVNpTzY0rysSr3VnMowTYgkGKcaHrbReepAkjTr8lH2CVWRi58Spg2CicQ==", + "dev": true, + "dependencies": { + "bluebird": "^3.5.3", + "cacache": "^12.0.2", + "chownr": "^1.1.2", + "figgy-pudding": "^3.5.1", + "get-stream": "^4.1.0", + "glob": "^7.1.3", + "infer-owner": "^1.0.4", + "lru-cache": "^5.1.1", + "make-fetch-happen": "^5.0.0", + "minimatch": "^3.0.4", + "minipass": "^2.3.5", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "normalize-package-data": "^2.4.0", + "npm-normalize-package-bin": "^1.0.0", + "npm-package-arg": "^6.1.0", + "npm-packlist": "^1.1.12", + "npm-pick-manifest": "^3.0.0", + "npm-registry-fetch": "^4.0.0", + "osenv": "^0.1.5", + "promise-inflight": "^1.0.1", + "promise-retry": "^1.1.1", + "protoduck": "^5.0.1", + "rimraf": "^2.6.2", + "safe-buffer": "^5.1.2", + "semver": "^5.6.0", + "ssri": "^6.0.1", + "tar": "^4.4.10", + "unique-filename": "^1.1.1", + "which": "^1.3.1" + } + }, + "node_modules/pacote/node_modules/cacache": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", + "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", + "dev": true, + "dependencies": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "infer-owner": "^1.0.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + } + }, + "node_modules/pacote/node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true + }, + "node_modules/pacote/node_modules/fs-minipass": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", + "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", + "dev": true, + "dependencies": { + "minipass": "^2.6.0" + } + }, + "node_modules/pacote/node_modules/hosted-git-info": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", + "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", + "dev": true + }, + "node_modules/pacote/node_modules/minipass": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", + "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "node_modules/pacote/node_modules/minizlib": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", + "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", + "dev": true, + "dependencies": { + "minipass": "^2.9.0" + } + }, + "node_modules/pacote/node_modules/npm-package-arg": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.1.1.tgz", + "integrity": "sha512-qBpssaL3IOZWi5vEKUKW0cO7kzLeT+EQO9W8RsLOZf76KF9E/K9+wH0C7t06HXPpaH8WH5xF1MExLuCwbTqRUg==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.7.1", + "osenv": "^0.1.5", + "semver": "^5.6.0", + "validate-npm-package-name": "^3.0.0" + } + }, + "node_modules/pacote/node_modules/npm-pick-manifest": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-3.0.2.tgz", + "integrity": "sha512-wNprTNg+X5nf+tDi+hbjdHhM4bX+mKqv6XmPh7B5eG+QY9VARfQPfCEH013H5GqfNj6ee8Ij2fg8yk0mzps1Vw==", + "dev": true, + "dependencies": { + "figgy-pudding": "^3.5.1", + "npm-package-arg": "^6.0.0", + "semver": "^5.4.1" + } + }, + "node_modules/pacote/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/pacote/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/pacote/node_modules/ssri": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", + "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", + "dev": true, + "dependencies": { + "figgy-pudding": "^3.5.1" + } + }, + "node_modules/pacote/node_modules/tar": { + "version": "4.4.13", + "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz", + "integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==", + "dev": true, + "dependencies": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.8.6", + "minizlib": "^1.2.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.3" + }, + "engines": { + "node": ">=4.5" + } + }, + "node_modules/pacote/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "dev": true + }, + "node_modules/parallel-transform": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", + "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", + "dev": true, + "dependencies": { + "cyclist": "^1.0.1", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + } + }, + "node_modules/parse-asn1": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", + "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", + "dev": true, + "dependencies": { + "asn1.js": "^5.2.0", + "browserify-aes": "^1.0.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/parse5": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", + "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", + "dev": true + }, + "node_modules/parseqs": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", + "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", + "dev": true, + "dependencies": { + "better-assert": "~1.0.0" + } + }, + "node_modules/parseuri": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", + "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", + "dev": true, + "dependencies": { + "better-assert": "~1.0.0" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", + "dev": true + }, + "node_modules/path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true + }, + "node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/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=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/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 + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/pbkdf2": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz", + "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==", + "dev": true, + "dependencies": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", + "dev": true + }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", + "dev": true, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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, + "dependencies": { + "pinkie": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "dependencies": { + "find-up": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/plist": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/plist/-/plist-3.0.2.tgz", + "integrity": "sha512-MSrkwZBdQ6YapHy87/8hDU8MnIcyxBKjeF+McXnr5A9MtffPewTs7G3hlpodT5TacyfIyFTaJEhh3GGcmasTgQ==", + "dev": true, + "dependencies": { + "base64-js": "^1.5.1", + "xmlbuilder": "^9.0.7", + "xmldom": "^0.5.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/plist/node_modules/xmlbuilder": { + "version": "9.0.7", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", + "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/pnp-webpack-plugin": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz", + "integrity": "sha512-7Wjy+9E3WwLOEL30D+m8TSTF7qJJUJLONBnwQp0518siuMxUQUbgZwssaFX+QKlZkjHZcw/IpZCt/H0srrntSg==", + "dev": true, + "dependencies": { + "ts-pnp": "^1.1.6" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/portfinder": { + "version": "1.0.28", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", + "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", + "dev": true, + "dependencies": { + "async": "^2.6.2", + "debug": "^3.1.1", + "mkdirp": "^0.5.5" + }, + "engines": { + "node": ">= 0.12.0" + } + }, + "node_modules/portfinder/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss": { + "version": "7.0.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.31.tgz", + "integrity": "sha512-a937VDHE1ftkjk+8/7nj/mrjtmkn69xxzJgRETXdAUU+IgOYPQNJF17haGWbeDxSyk++HA14UA98FurvPyBJOA==", + "dev": true, + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-calc": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.5.tgz", + "integrity": "sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg==", + "dev": true, + "dependencies": { + "postcss": "^7.0.27", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.0.2" + } + }, + "node_modules/postcss-colormin": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz", + "integrity": "sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==", + "dev": true, + "dependencies": { + "browserslist": "^4.0.0", + "color": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-colormin/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-convert-values": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz", + "integrity": "sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==", + "dev": true, + "dependencies": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-convert-values/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-discard-comments": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz", + "integrity": "sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==", + "dev": true, + "dependencies": { + "postcss": "^7.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-discard-duplicates": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz", + "integrity": "sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==", + "dev": true, + "dependencies": { + "postcss": "^7.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-discard-empty": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz", + "integrity": "sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==", + "dev": true, + "dependencies": { + "postcss": "^7.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-discard-overridden": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz", + "integrity": "sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==", + "dev": true, + "dependencies": { + "postcss": "^7.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-import": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-12.0.1.tgz", + "integrity": "sha512-3Gti33dmCjyKBgimqGxL3vcV8w9+bsHwO5UrBawp796+jdardbcFl4RP5w/76BwNL7aGzpKstIfF9I+kdE8pTw==", + "dev": true, + "dependencies": { + "postcss": "^7.0.1", + "postcss-value-parser": "^3.2.3", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-import/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-load-config": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.2.tgz", + "integrity": "sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw==", + "dev": true, + "dependencies": { + "cosmiconfig": "^5.0.0", + "import-cwd": "^2.0.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/postcss-loader": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-3.0.0.tgz", + "integrity": "sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA==", + "dev": true, + "dependencies": { + "loader-utils": "^1.1.0", + "postcss": "^7.0.0", + "postcss-load-config": "^2.0.0", + "schema-utils": "^1.0.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/postcss-loader/node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/postcss-loader/node_modules/loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/postcss-loader/node_modules/schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "dependencies": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/postcss-merge-longhand": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz", + "integrity": "sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==", + "dev": true, + "dependencies": { + "css-color-names": "0.0.4", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "stylehacks": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-merge-longhand/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-merge-rules": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz", + "integrity": "sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==", + "dev": true, + "dependencies": { + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "cssnano-util-same-parent": "^4.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0", + "vendors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-merge-rules/node_modules/postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "dev": true, + "dependencies": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/postcss-minify-font-values": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz", + "integrity": "sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==", + "dev": true, + "dependencies": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-minify-font-values/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-minify-gradients": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz", + "integrity": "sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==", + "dev": true, + "dependencies": { + "cssnano-util-get-arguments": "^4.0.0", + "is-color-stop": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-minify-gradients/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-minify-params": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz", + "integrity": "sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==", + "dev": true, + "dependencies": { + "alphanum-sort": "^1.0.0", + "browserslist": "^4.0.0", + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "uniqs": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-minify-params/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-minify-selectors": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz", + "integrity": "sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==", + "dev": true, + "dependencies": { + "alphanum-sort": "^1.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-minify-selectors/node_modules/postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "dev": true, + "dependencies": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/postcss-modules-extract-imports": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz", + "integrity": "sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ==", + "dev": true, + "dependencies": { + "postcss": "^7.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/postcss-modules-local-by-default": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz", + "integrity": "sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw==", + "dev": true, + "dependencies": { + "icss-utils": "^4.1.1", + "postcss": "^7.0.32", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/postcss-modules-local-by-default/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-modules-local-by-default/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-modules-local-by-default/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-modules-scope": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz", + "integrity": "sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ==", + "dev": true, + "dependencies": { + "postcss": "^7.0.6", + "postcss-selector-parser": "^6.0.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/postcss-modules-values": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz", + "integrity": "sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg==", + "dev": true, + "dependencies": { + "icss-utils": "^4.0.0", + "postcss": "^7.0.6" + } + }, + "node_modules/postcss-normalize-charset": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz", + "integrity": "sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==", + "dev": true, + "dependencies": { + "postcss": "^7.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-display-values": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz", + "integrity": "sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==", + "dev": true, + "dependencies": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-display-values/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-normalize-positions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz", + "integrity": "sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==", + "dev": true, + "dependencies": { + "cssnano-util-get-arguments": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-positions/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-normalize-repeat-style": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz", + "integrity": "sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==", + "dev": true, + "dependencies": { + "cssnano-util-get-arguments": "^4.0.0", + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-repeat-style/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-normalize-string": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz", + "integrity": "sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==", + "dev": true, + "dependencies": { + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-string/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-normalize-timing-functions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz", + "integrity": "sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==", + "dev": true, + "dependencies": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-timing-functions/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-normalize-unicode": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz", + "integrity": "sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==", + "dev": true, + "dependencies": { + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-unicode/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-normalize-url": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz", + "integrity": "sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==", + "dev": true, + "dependencies": { + "is-absolute-url": "^2.0.0", + "normalize-url": "^3.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-url/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-normalize-whitespace": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz", + "integrity": "sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==", + "dev": true, + "dependencies": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-whitespace/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-ordered-values": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz", + "integrity": "sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==", + "dev": true, + "dependencies": { + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-ordered-values/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-reduce-initial": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz", + "integrity": "sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==", + "dev": true, + "dependencies": { + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-reduce-transforms": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz", + "integrity": "sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==", + "dev": true, + "dependencies": { + "cssnano-util-get-match": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-reduce-transforms/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz", + "integrity": "sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-svgo": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.2.tgz", + "integrity": "sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw==", + "dev": true, + "dependencies": { + "is-svg": "^3.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "svgo": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-svgo/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-unique-selectors": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz", + "integrity": "sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==", + "dev": true, + "dependencies": { + "alphanum-sort": "^1.0.0", + "postcss": "^7.0.0", + "uniqs": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", + "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", + "dev": true + }, + "node_modules/postcss/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "node_modules/promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", + "dev": true + }, + "node_modules/promise-retry": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-1.1.1.tgz", + "integrity": "sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0=", + "dev": true, + "dependencies": { + "err-code": "^1.0.0", + "retry": "^0.10.0" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/promise-retry/node_modules/retry": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", + "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/prompts": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.1.tgz", + "integrity": "sha512-EQyfIuO2hPDsX1L/blblV+H7I0knhgAd82cVneCwcdND9B8AuCDuRcBH6yIcG4dFzlOUqbazQqwGjx5xmsNLuQ==", + "dev": true, + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/prompts/node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/properties-parser": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/properties-parser/-/properties-parser-0.3.1.tgz", + "integrity": "sha1-ExbpU5/7/ZOEXjabIRAiq9R4dxo=", + "dev": true, + "dependencies": { + "string.prototype.codepointat": "^0.2.0" + }, + "engines": { + "node": ">= 0.3.1" + } + }, + "node_modules/protoduck": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/protoduck/-/protoduck-5.0.1.tgz", + "integrity": "sha512-WxoCeDCoCBY55BMvj4cAEjdVUFGRWed9ZxPlqTKYyw1nDDTQ4pqmnIMAGfJlg7Dx35uB/M+PHJPTmGOvaCaPTg==", + "dev": true, + "dependencies": { + "genfun": "^5.0.0" + } + }, + "node_modules/protractor": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/protractor/-/protractor-7.0.0.tgz", + "integrity": "sha512-UqkFjivi4GcvUQYzqGYNe0mLzfn5jiLmO8w9nMhQoJRLhy2grJonpga2IWhI6yJO30LibWXJJtA4MOIZD2GgZw==", + "dev": true, + "dependencies": { + "@types/q": "^0.0.32", + "@types/selenium-webdriver": "^3.0.0", + "blocking-proxy": "^1.0.0", + "browserstack": "^1.5.1", + "chalk": "^1.1.3", + "glob": "^7.0.3", + "jasmine": "2.8.0", + "jasminewd2": "^2.1.0", + "q": "1.4.1", + "saucelabs": "^1.5.0", + "selenium-webdriver": "3.6.0", + "source-map-support": "~0.4.0", + "webdriver-js-extender": "2.1.0", + "webdriver-manager": "^12.1.7", + "yargs": "^15.3.1" + }, + "bin": { + "protractor": "bin/protractor", + "webdriver-manager": "bin/webdriver-manager" + }, + "engines": { + "node": ">=10.13.x" + } + }, + "node_modules/protractor/node_modules/@types/q": { + "version": "0.0.32", + "resolved": "https://registry.npmjs.org/@types/q/-/q-0.0.32.tgz", + "integrity": "sha1-vShOV8hPEyXacCur/IKlMoGQwMU=", + "dev": true + }, + "node_modules/protractor/node_modules/ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/protractor/node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/protractor/node_modules/array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true, + "dependencies": { + "array-uniq": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/protractor/node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "dependencies": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/protractor/node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/protractor/node_modules/cliui/node_modules/strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/protractor/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/protractor/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/protractor/node_modules/del": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", + "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", + "dev": true, + "dependencies": { + "globby": "^5.0.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "rimraf": "^2.2.8" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/protractor/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/protractor/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/protractor/node_modules/globby": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", + "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", + "dev": true, + "dependencies": { + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/protractor/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/protractor/node_modules/is-path-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", + "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/protractor/node_modules/is-path-in-cwd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", + "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", + "dev": true, + "dependencies": { + "is-path-inside": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/protractor/node_modules/is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "dev": true, + "dependencies": { + "path-is-inside": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/protractor/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/protractor/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/protractor/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/protractor/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/protractor/node_modules/q": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz", + "integrity": "sha1-VXBbzZPF82c1MMLCy8DCs63cKG4=", + "dev": true, + "engines": { + "node": ">=0.6.0", + "teleport": ">=0.2.0" + } + }, + "node_modules/protractor/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/protractor/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/protractor/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/protractor/node_modules/source-map-support": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", + "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "dev": true, + "dependencies": { + "source-map": "^0.5.6" + } + }, + "node_modules/protractor/node_modules/string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/protractor/node_modules/string-width/node_modules/strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/protractor/node_modules/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, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/protractor/node_modules/webdriver-manager": { + "version": "12.1.7", + "resolved": "https://registry.npmjs.org/webdriver-manager/-/webdriver-manager-12.1.7.tgz", + "integrity": "sha512-XINj6b8CYuUYC93SG3xPkxlyUc3IJbD6Vvo75CVGuG9uzsefDzWQrhz0Lq8vbPxtb4d63CZdYophF8k8Or/YiA==", + "dev": true, + "dependencies": { + "adm-zip": "^0.4.9", + "chalk": "^1.1.1", + "del": "^2.2.0", + "glob": "^7.0.3", + "ini": "^1.3.4", + "minimist": "^1.2.0", + "q": "^1.4.1", + "request": "^2.87.0", + "rimraf": "^2.5.2", + "semver": "^5.3.0", + "xml2js": "^0.4.17" + }, + "bin": { + "webdriver-manager": "bin/webdriver-manager" + }, + "engines": { + "node": ">=6.9.x" + } + }, + "node_modules/protractor/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/protractor/node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/protractor/node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/protractor/node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dev": true, + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/protractor/node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", + "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", + "dependencies": { + "forwarded": "~0.1.2", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "dev": true + }, + "node_modules/psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", + "dev": true + }, + "node_modules/public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "dev": true, + "dependencies": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/public-encrypt/node_modules/bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "dev": true, + "dependencies": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + } + }, + "node_modules/pumpify/node_modules/pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/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, + "engines": { + "node": ">=6" + } + }, + "node_modules/q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", + "dev": true, + "engines": { + "node": ">=0.6.0", + "teleport": ">=0.2.0" + } + }, + "node_modules/qjobs": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz", + "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==", + "dev": true, + "engines": { + "node": ">=0.9" + } + }, + "node_modules/qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/query-string": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", + "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", + "dev": true, + "dependencies": { + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "dev": true, + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", + "dev": true, + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "dev": true + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "dev": true, + "dependencies": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", + "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", + "dependencies": { + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/raw-loader": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-4.0.1.tgz", + "integrity": "sha512-baolhQBSi3iNh1cglJjA0mYzga+wePk7vdEX//1dTFd+v4TsQlQE0jitJSNF1OIP82rdYulH7otaVmdlDaJ64A==", + "dev": true, + "dependencies": { + "loader-utils": "^2.0.0", + "schema-utils": "^2.6.5" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=", + "dev": true, + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/read-cache/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-chunk": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/read-chunk/-/read-chunk-3.2.0.tgz", + "integrity": "sha512-CEjy9LCzhmD7nUpJ1oVOE6s/hBkejlcJEgLQHVnQznOSilOPb+kpKktlLfFDK3/WP43+F80xkUTM2VOkYoSYvQ==", + "dev": true, + "dependencies": { + "pify": "^4.0.1", + "with-open-file": "^0.1.6" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/read-package-json": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-2.1.2.tgz", + "integrity": "sha512-D1KmuLQr6ZSJS0tW8hf3WGpRlwszJOXZ3E8Yd/DNRaM5d+1wVRZdHlpGBLAuovjr28LbWvjpWkBHMxpRGGjzNA==", + "dev": true, + "dependencies": { + "glob": "^7.1.1", + "json-parse-even-better-errors": "^2.3.0", + "normalize-package-data": "^2.0.0", + "npm-normalize-package-bin": "^1.0.0" + } + }, + "node_modules/read-package-tree": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/read-package-tree/-/read-package-tree-5.3.1.tgz", + "integrity": "sha512-mLUDsD5JVtlZxjSlPPx1RETkNjjvQYuweKwNVt1Sn8kP5Jh44pvYuUHCp6xSVDZWbNxVxG5lyZJ921aJH61sTw==", + "dev": true, + "dependencies": { + "read-package-json": "^2.0.0", + "readdir-scoped-modules": "^1.0.0", + "util-promisify": "^2.1.0" + } + }, + "node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readdir-scoped-modules": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz", + "integrity": "sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==", + "dev": true, + "dependencies": { + "debuglog": "^1.0.1", + "dezalgo": "^1.0.0", + "graceful-fs": "^4.1.2", + "once": "^1.3.0" + } + }, + "node_modules/readdirp": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", + "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/reflect-metadata": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", + "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==", + "dev": true + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "node_modules/regenerate-unicode-properties": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz", + "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.13.5", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz", + "integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==", + "dev": true + }, + "node_modules/regenerator-transform": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", + "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "dependencies": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regex-parser": { + "version": "2.2.10", + "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.10.tgz", + "integrity": "sha512-8t6074A68gHfU8Neftl0Le6KTDwfGAj7IyjPIMSfikI2wJUTHDMaIq42bUsfVnj8mhx0R+45rdUXHGpN164avA==", + "dev": true + }, + "node_modules/regexp.prototype.flags": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz", + "integrity": "sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/regexp.prototype.flags/node_modules/es-abstract": { + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", + "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", + "dev": true, + "dependencies": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/regexpu-core": { + "version": "4.7.1", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.1.tgz", + "integrity": "sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^8.2.0", + "regjsgen": "^0.5.1", + "regjsparser": "^0.6.4", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsgen": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", + "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==", + "dev": true + }, + "node_modules/regjsparser": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz", + "integrity": "sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==", + "dev": true, + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "dev": true + }, + "node_modules/repeat-element": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "dev": true, + "dependencies": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/request/node_modules/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, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", + "dev": true + }, + "node_modules/resolve": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", + "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", + "dev": true, + "dependencies": { + "is-core-module": "^2.1.0", + "path-parse": "^1.0.6" + } + }, + "node_modules/resolve-cwd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", + "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", + "dev": true, + "dependencies": { + "resolve-from": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, + "node_modules/resolve-url-loader": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-3.1.1.tgz", + "integrity": "sha512-K1N5xUjj7v0l2j/3Sgs5b8CjrrgtC70SmdCuZiJ8tSyb5J+uk3FoeZ4b7yTnH6j7ngI+Bc5bldHJIa8hYdu2gQ==", + "dev": true, + "dependencies": { + "adjust-sourcemap-loader": "2.0.0", + "camelcase": "5.3.1", + "compose-function": "3.0.3", + "convert-source-map": "1.7.0", + "es6-iterator": "2.0.3", + "loader-utils": "1.2.3", + "postcss": "7.0.21", + "rework": "1.0.1", + "rework-visit": "1.0.0", + "source-map": "0.6.1" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/resolve-url-loader/node_modules/emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/resolve-url-loader/node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/resolve-url-loader/node_modules/loader-utils": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", + "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^2.0.0", + "json5": "^1.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/resolve-url-loader/node_modules/postcss": { + "version": "7.0.21", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.21.tgz", + "integrity": "sha512-uIFtJElxJo29QC753JzhidoAhvp/e/Exezkdhfmt8AymWT6/5B7W1WmponYWkHk2eg6sONyTch0A3nkMPun3SQ==", + "dev": true, + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/resolve-url-loader/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-url-loader/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rework": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/rework/-/rework-1.0.1.tgz", + "integrity": "sha1-MIBqhBNCtUUQqkEQhQzUhTQUSqc=", + "dev": true, + "dependencies": { + "convert-source-map": "^0.3.3", + "css": "^2.0.0" + } + }, + "node_modules/rework-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/rework-visit/-/rework-visit-1.0.0.tgz", + "integrity": "sha1-mUWygD8hni96ygCtuLyfZA+ELJo=", + "dev": true + }, + "node_modules/rework/node_modules/convert-source-map": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-0.3.5.tgz", + "integrity": "sha1-8dgClQr33SYxof6+BZZVDIarMZA=", + "dev": true + }, + "node_modules/rfdc": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.1.4.tgz", + "integrity": "sha512-5C9HXdzK8EAqN7JDif30jqsBzavB7wLpaubisuQIGHWf2gUXSpzy6ArX/+Da8RjFpagWsCn+pIgxTMAmKw9Zug==", + "dev": true + }, + "node_modules/rgb-regex": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz", + "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=", + "dev": true + }, + "node_modules/rgba-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz", + "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=", + "dev": true + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dev": true, + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "node_modules/rollup": { + "version": "2.10.9", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.10.9.tgz", + "integrity": "sha512-dY/EbjiWC17ZCUSyk14hkxATAMAShkMsD43XmZGWjLrgFj15M3Dw2kEkA9ns64BiLFm9PKN6vTQw8neHwK74eg==", + "dev": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=10.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.1.2" + } + }, + "node_modules/run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/run-parallel": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.10.tgz", + "integrity": "sha512-zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw==", + "dev": true + }, + "node_modules/run-queue": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", + "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", + "dev": true, + "dependencies": { + "aproba": "^1.1.1" + } + }, + "node_modules/rxjs": { + "version": "6.5.5", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.5.tgz", + "integrity": "sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ==", + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/rxjs/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/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==" + }, + "node_modules/safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "dependencies": { + "ret": "~0.1.10" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/sass": { + "version": "1.26.5", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.26.5.tgz", + "integrity": "sha512-FG2swzaZUiX53YzZSjSakzvGtlds0lcbF+URuU9mxOv7WBh7NhXEVDa4kPKN4hN6fC2TkOTOKqiqp6d53N9X5Q==", + "dev": true, + "dependencies": { + "chokidar": ">=2.0.0 <4.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/sass-loader": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-8.0.2.tgz", + "integrity": "sha512-7o4dbSK8/Ol2KflEmSco4jTjQoV988bM82P9CZdmo9hR3RLnvNc0ufMNdMrB0caq38JQ/FgF4/7RcbcfKzxoFQ==", + "dev": true, + "dependencies": { + "clone-deep": "^4.0.1", + "loader-utils": "^1.2.3", + "neo-async": "^2.6.1", + "schema-utils": "^2.6.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">= 8.9.0" + } + }, + "node_modules/sass-loader/node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/sass-loader/node_modules/loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/sass-loader/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/saucelabs": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/saucelabs/-/saucelabs-1.5.0.tgz", + "integrity": "sha512-jlX3FGdWvYf4Q3LFfFWS1QvPg3IGCGWxIc8QBFdPTbpTJnt/v17FHXYVAn7C8sHf1yUXo2c7yIM0isDryfYtHQ==", + "dev": true, + "dependencies": { + "https-proxy-agent": "^2.2.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true + }, + "node_modules/schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 8.9.0" + } + }, + "node_modules/schema-utils/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "node_modules/select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", + "dev": true + }, + "node_modules/selenium-webdriver": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-3.6.0.tgz", + "integrity": "sha512-WH7Aldse+2P5bbFBO4Gle/nuQOdVwpHMTL6raL3uuBj/vPG07k6uzt3aiahu352ONBr5xXh0hDlM3LhtXPOC4Q==", + "dev": true, + "dependencies": { + "jszip": "^3.1.3", + "rimraf": "^2.5.4", + "tmp": "0.0.30", + "xml2js": "^0.4.17" + }, + "engines": { + "node": ">= 6.9.0" + } + }, + "node_modules/selenium-webdriver/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/selenium-webdriver/node_modules/tmp": { + "version": "0.0.30", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.30.tgz", + "integrity": "sha1-ckGdSovn1s51FI/YsyTlk6cRwu0=", + "dev": true, + "dependencies": { + "os-tmpdir": "~1.0.1" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/selfsigned": { + "version": "1.10.8", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.8.tgz", + "integrity": "sha512-2P4PtieJeEwVgTU9QEcwIRDQ/mXJLX8/+I3ur+Pg16nS8oNbrGxEso9NyYWy8NAmXiNl4dlAp5MwoNeCWzON4w==", + "dev": true, + "dependencies": { + "node-forge": "^0.10.0" + } + }, + "node_modules/semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver-dsl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/semver-dsl/-/semver-dsl-1.0.1.tgz", + "integrity": "sha1-02eN5VVeimH2Ke7QJTZq5fJzQKA=", + "dev": true, + "dependencies": { + "semver": "^5.3.0" + } + }, + "node_modules/semver-dsl/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/semver-intersect": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/semver-intersect/-/semver-intersect-1.4.0.tgz", + "integrity": "sha512-d8fvGg5ycKAq0+I6nfWeCx6ffaWJCsBYU0H2Rq56+/zFePYfT8mXkB3tWBSjR5BerkHNZ5eTPIk1/LBYas35xQ==", + "dev": true, + "dependencies": { + "semver": "^5.0.0" + } + }, + "node_modules/semver-intersect/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "dependencies": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.7.2", + "mime": "1.6.0", + "ms": "2.1.1", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + }, + "node_modules/serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", + "dev": true, + "dependencies": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-index/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/serve-index/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "dev": true, + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "node_modules/serve-index/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/serve-index/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + }, + "node_modules/serve-static": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", + "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/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 + }, + "node_modules/set-immediate-shim": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", + "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/set-value/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", + "dev": true + }, + "node_modules/setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" + }, + "node_modules/sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "bin": { + "sha.js": "bin.js" + } + }, + "node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" + }, + "node_modules/simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", + "dev": true, + "dependencies": { + "is-arrayish": "^0.3.1" + } + }, + "node_modules/simple-swizzle/node_modules/is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", + "dev": true + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/slice-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/slice-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/slice-ansi/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/smart-buffer": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.1.0.tgz", + "integrity": "sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw==", + "dev": true, + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "dependencies": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "dependencies": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "dependencies": { + "kind-of": "^3.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/snapdragon/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/snapdragon/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/socket.io": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.3.0.tgz", + "integrity": "sha512-2A892lrj0GcgR/9Qk81EaY2gYhCBxurV0PfmmESO6p27QPrUK1J3zdns+5QPqvUYK2q657nSj0guoIil9+7eFg==", + "dev": true, + "dependencies": { + "debug": "~4.1.0", + "engine.io": "~3.4.0", + "has-binary2": "~1.0.2", + "socket.io-adapter": "~1.1.0", + "socket.io-client": "2.3.0", + "socket.io-parser": "~3.4.0" + } + }, + "node_modules/socket.io-adapter": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz", + "integrity": "sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g==", + "dev": true + }, + "node_modules/socket.io-client": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.3.0.tgz", + "integrity": "sha512-cEQQf24gET3rfhxZ2jJ5xzAOo/xhZwK+mOqtGRg5IowZsMgwvHwnf/mCRapAAkadhM26y+iydgwsXGObBB5ZdA==", + "dev": true, + "dependencies": { + "backo2": "1.0.2", + "base64-arraybuffer": "0.1.5", + "component-bind": "1.0.0", + "component-emitter": "1.2.1", + "debug": "~4.1.0", + "engine.io-client": "~3.4.0", + "has-binary2": "~1.0.2", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "object-component": "0.0.3", + "parseqs": "0.0.5", + "parseuri": "0.0.5", + "socket.io-parser": "~3.3.0", + "to-array": "0.1.4" + } + }, + "node_modules/socket.io-client/node_modules/base64-arraybuffer": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", + "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/socket.io-client/node_modules/component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true + }, + "node_modules/socket.io-client/node_modules/debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/socket.io-client/node_modules/isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", + "dev": true + }, + "node_modules/socket.io-client/node_modules/socket.io-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.1.tgz", + "integrity": "sha512-1QLvVAe8dTz+mKmZ07Swxt+LAo4Y1ff50rlyoEx00TQmDFVQYPfcqGvIDJLGaBdhdNCecXtyKpD+EgKGcmmbuQ==", + "dev": true, + "dependencies": { + "component-emitter": "~1.3.0", + "debug": "~3.1.0", + "isarray": "2.0.1" + } + }, + "node_modules/socket.io-client/node_modules/socket.io-parser/node_modules/component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true + }, + "node_modules/socket.io-client/node_modules/socket.io-parser/node_modules/debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/socket.io-client/node_modules/socket.io-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/socket.io-parser": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.4.1.tgz", + "integrity": "sha512-11hMgzL+WCLWf1uFtHSNvliI++tcRUWdoeYuwIl+Axvwy9z2gQM+7nJyN3STj1tLj5JyIUH8/gpDGxzAlDdi0A==", + "dev": true, + "dependencies": { + "component-emitter": "1.2.1", + "debug": "~4.1.0", + "isarray": "2.0.1" + } + }, + "node_modules/socket.io-parser/node_modules/component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true + }, + "node_modules/socket.io-parser/node_modules/debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/socket.io-parser/node_modules/isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", + "dev": true + }, + "node_modules/socket.io/node_modules/debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/sockjs": { + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.20.tgz", + "integrity": "sha512-SpmVOVpdq0DJc0qArhF3E5xsxvaiqGNb73XfgBpK1y3UD5gs8DSo8aCTsuT5pX8rssdc2NDIzANwP9eCAiSdTA==", + "dev": true, + "dependencies": { + "faye-websocket": "^0.10.0", + "uuid": "^3.4.0", + "websocket-driver": "0.6.5" + } + }, + "node_modules/sockjs-client": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.4.0.tgz", + "integrity": "sha512-5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g==", + "dev": true, + "dependencies": { + "debug": "^3.2.5", + "eventsource": "^1.0.7", + "faye-websocket": "~0.11.1", + "inherits": "^2.0.3", + "json3": "^3.3.2", + "url-parse": "^1.4.3" + } + }, + "node_modules/sockjs-client/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/sockjs-client/node_modules/faye-websocket": { + "version": "0.11.3", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz", + "integrity": "sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==", + "dev": true, + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/socks": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.3.3.tgz", + "integrity": "sha512-o5t52PCNtVdiOvzMry7wU4aOqYWL0PeCXRWBEiJow4/i/wr+wpsJQ9awEu1EonLIqsfGd5qSgDdxEOvCdmBEpA==", + "dev": true, + "dependencies": { + "ip": "1.1.5", + "smart-buffer": "^4.1.0" + }, + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks-proxy-agent": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-4.0.2.tgz", + "integrity": "sha512-NT6syHhI9LmuEMSK6Kd2V7gNv5KFZoLE7V5udWmn0de+3Mkj3UMA/AJPLyeNUVmElCurSHtUdM3ETpR3z770Wg==", + "dev": true, + "dependencies": { + "agent-base": "~4.2.1", + "socks": "~2.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/socks-proxy-agent/node_modules/agent-base": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz", + "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==", + "dev": true, + "dependencies": { + "es6-promisify": "^5.0.0" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/sort-keys": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", + "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", + "dev": true, + "dependencies": { + "is-plain-obj": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-list-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", + "dev": true + }, + "node_modules/source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/source-map-loader": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-1.0.0.tgz", + "integrity": "sha512-ZayyQCSCrQazN50aCvuS84lJT4xc1ZAcykH5blHaBdVveSwjiFK8UGMPvao0ho54DTb0Jf7m57uRRG/YYUZ2Fg==", + "dev": true, + "dependencies": { + "data-urls": "^2.0.0", + "iconv-lite": "^0.5.1", + "loader-utils": "^2.0.0", + "schema-utils": "^2.6.6", + "source-map": "^0.6.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/source-map-loader/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "dev": true, + "dependencies": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "dev": true + }, + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "dev": true + }, + "node_modules/spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "dev": true, + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz", + "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==", + "dev": true + }, + "node_modules/spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "dev": true, + "dependencies": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "dev": true, + "dependencies": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + } + }, + "node_modules/spdy-transport/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/speed-measure-webpack-plugin": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/speed-measure-webpack-plugin/-/speed-measure-webpack-plugin-1.3.3.tgz", + "integrity": "sha512-2ljD4Ch/rz2zG3HsLsnPfp23osuPBS0qPuz9sGpkNXTN1Ic4M+W9xB8l8rS8ob2cO4b1L+WTJw/0AJwWYVgcxQ==", + "dev": true, + "dependencies": { + "chalk": "^2.0.1" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "dependencies": { + "extend-shallow": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/split2": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", + "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", + "dev": true, + "dependencies": { + "readable-stream": "^3.0.0" + } + }, + "node_modules/split2/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "node_modules/sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "dev": true, + "dependencies": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "bin": { + "sshpk-conv": "bin/sshpk-conv", + "sshpk-sign": "bin/sshpk-sign", + "sshpk-verify": "bin/sshpk-verify" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ssri": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.0.tgz", + "integrity": "sha512-aq/pz989nxVYwn16Tsbj1TqFpD5LLrQxHf5zaHuieFV+R0Bbr4y8qUsOA45hXT/N4/9UNXTarBjnjVmjSOVaAA==", + "dev": true, + "dependencies": { + "minipass": "^3.1.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "dev": true + }, + "node_modules/static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "dependencies": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/stream-browserify": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", + "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", + "dev": true, + "dependencies": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + } + }, + "node_modules/stream-each": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", + "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" + } + }, + "node_modules/stream-http": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", + "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "dev": true, + "dependencies": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + } + }, + "node_modules/stream-shift": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", + "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", + "dev": true + }, + "node_modules/streamroller": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-2.2.4.tgz", + "integrity": "sha512-OG79qm3AujAM9ImoqgWEY1xG4HX+Lw+yY6qZj9R1K2mhF5bEmQ849wvrb+4vt4jLMLzwXttJlQbOdPOQVRv7DQ==", + "dev": true, + "dependencies": { + "date-format": "^2.1.0", + "debug": "^4.1.1", + "fs-extra": "^8.1.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/streamroller/node_modules/date-format": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-2.1.0.tgz", + "integrity": "sha512-bYQuGLeFxhkxNOF3rcMtiZxvCBAquGzZm6oWA1oZ0g2THUzivaRhv8uOhdr19LmoobSOLoIAxeUK2RdbM8IFTA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/streamroller/node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string_decoder": { + "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, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/string.prototype.codepointat": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/string.prototype.codepointat/-/string.prototype.codepointat-0.2.1.tgz", + "integrity": "sha512-2cBVCj6I4IOvEnjgO/hWqXjqBGsY+zwPmHl12Srk9IXSZ56Jwwmy+66XO5Iut/oQVR7t5ihYdLB0GMa4alEUcg==", + "dev": true + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz", + "integrity": "sha512-ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz", + "integrity": "sha512-oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + } + }, + "node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/style-loader": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-1.2.1.tgz", + "integrity": "sha512-ByHSTQvHLkWE9Ir5+lGbVOXhxX10fbprhLvdg96wedFZb4NDekDPxVKv5Fwmio+QcMlkkNfuK+5W1peQ5CUhZg==", + "dev": true, + "dependencies": { + "loader-utils": "^2.0.0", + "schema-utils": "^2.6.6" + }, + "engines": { + "node": ">= 8.9.0" + } + }, + "node_modules/stylehacks": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz", + "integrity": "sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==", + "dev": true, + "dependencies": { + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/stylehacks/node_modules/postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "dev": true, + "dependencies": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/stylus": { + "version": "0.54.7", + "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.54.7.tgz", + "integrity": "sha512-Yw3WMTzVwevT6ZTrLCYNHAFmanMxdylelL3hkWNgPMeTCpMwpV3nXjpOHuBXtFv7aiO2xRuQS6OoAdgkNcSNug==", + "dev": true, + "dependencies": { + "css-parse": "~2.0.0", + "debug": "~3.1.0", + "glob": "^7.1.3", + "mkdirp": "~0.5.x", + "safer-buffer": "^2.1.2", + "sax": "~1.2.4", + "semver": "^6.0.0", + "source-map": "^0.7.3" + }, + "bin": { + "stylus": "bin/stylus" + }, + "engines": { + "node": "*" + } + }, + "node_modules/stylus-loader": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/stylus-loader/-/stylus-loader-3.0.2.tgz", + "integrity": "sha512-+VomPdZ6a0razP+zinir61yZgpw2NfljeSsdUF5kJuEzlo3khXhY19Fn6l8QQz1GRJGtMCo8nG5C04ePyV7SUA==", + "dev": true, + "dependencies": { + "loader-utils": "^1.0.2", + "lodash.clonedeep": "^4.5.0", + "when": "~3.6.x" + } + }, + "node_modules/stylus-loader/node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/stylus-loader/node_modules/loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/stylus/node_modules/debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/stylus/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/stylus/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/svgo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", + "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", + "dev": true, + "dependencies": { + "chalk": "^2.4.1", + "coa": "^2.0.2", + "css-select": "^2.0.0", + "css-select-base-adapter": "^0.1.1", + "css-tree": "1.0.0-alpha.37", + "csso": "^4.0.2", + "js-yaml": "^3.13.1", + "mkdirp": "~0.5.1", + "object.values": "^1.1.0", + "sax": "~1.2.4", + "stable": "^0.1.8", + "unquote": "~1.1.1", + "util.promisify": "~1.0.0" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/symbol-observable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", + "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/tar": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.0.5.tgz", + "integrity": "sha512-0b4HOimQHj9nXNEAA7zWwMM91Zhhba3pspja6sQbgTpynOJf+bkjBnfybNYzbpLbnwXnbyB4LOREvlyXLkCHSg==", + "dev": true, + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/tar/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.7.0.tgz", + "integrity": "sha512-Lfb0RiZcjRDXCC3OSHJpEkxJ9Qeqs6mp2v4jf2MHfy8vGERmVDuvjXdd/EnP5Deme5F2yBRBymKmKHCBg2echw==", + "dev": true, + "dependencies": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-3.0.1.tgz", + "integrity": "sha512-eFDtq8qPUEa9hXcUzTwKXTnugIVtlqc1Z/ZVhG8LmRT3lgRY13+pQTnFLY2N7ATB6TKCHuW/IGjoAnZz9wOIqw==", + "dev": true, + "dependencies": { + "cacache": "^15.0.3", + "find-cache-dir": "^3.3.1", + "jest-worker": "^26.0.0", + "p-limit": "^2.3.0", + "schema-utils": "^2.6.6", + "serialize-javascript": "^3.0.0", + "source-map": "^0.6.1", + "terser": "^4.6.13", + "webpack-sources": "^1.4.3" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/terser-webpack-plugin/node_modules/serialize-javascript": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-3.1.0.tgz", + "integrity": "sha512-JIJT1DGiWmIKhzRsG91aS6Ze4sFUrYbltlkg2onR5OrnNM02Kl/hnY/T4FN2omvyeBbQmMJv+K4cPOpGzOTFBg==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/terser-webpack-plugin/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/terser/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, + "node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "dev": true + }, + "node_modules/timers-browserify": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", + "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", + "dev": true, + "dependencies": { + "setimmediate": "^1.0.4" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/timsort": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", + "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=", + "dev": true + }, + "node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/to-array": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", + "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=", + "dev": true + }, + "node_modules/to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", + "dev": true + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-object-path/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "dependencies": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dev": true, + "dependencies": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/tr46": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.0.2.tgz", + "integrity": "sha512-3n1qG+/5kg+jrbTzwAykB5yRYtQCTqOGKq5U5PE3b0a1/mzo6snDhjGS0zJVJunO0NrT3Dg1MLy5TjWP/UJppg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "bin": { + "tree-kill": "cli.js" + } + }, + "node_modules/ts-node": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.3.0.tgz", + "integrity": "sha512-dyNS/RqyVTDcmNM4NIBAeDMpsAdaQ+ojdf0GOLqE6nwJOgzEkdRNzJywhDfwnuvB10oa6NLVG1rUJQCpRN7qoQ==", + "dev": true, + "dependencies": { + "arg": "^4.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "source-map-support": "^0.5.6", + "yn": "^3.0.0" + }, + "bin": { + "ts-node": "dist/bin.js" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/ts-pnp": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/ts-pnp/-/ts-pnp-1.2.0.tgz", + "integrity": "sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/tslib": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz", + "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==" + }, + "node_modules/tslint": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/tslint/-/tslint-6.1.3.tgz", + "integrity": "sha512-IbR4nkT96EQOvKE2PW/djGz8iGNeJ4rF2mBfiYaR/nvUWYKJhLwimoJKgjIFEIDibBtOevj7BqCRL4oHeWWUCg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "builtin-modules": "^1.1.1", + "chalk": "^2.3.0", + "commander": "^2.12.1", + "diff": "^4.0.1", + "glob": "^7.1.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.3", + "resolve": "^1.3.2", + "semver": "^5.3.0", + "tslib": "^1.13.0", + "tsutils": "^2.29.0" + }, + "bin": { + "tslint": "bin/tslint" + }, + "engines": { + "node": ">=4.8.0" + } + }, + "node_modules/tslint/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/tslint/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/tsutils": { + "version": "2.29.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", + "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", + "dev": true, + "dependencies": { + "tslib": "^1.8.1" + } + }, + "node_modules/tsutils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", + "dev": true + }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true + }, + "node_modules/type": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==", + "dev": true + }, + "node_modules/type-fest": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", + "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true + }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/typescript": { + "version": "3.9.7", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.7.tgz", + "integrity": "sha512-BLbiRkiBzAwsjut4x/dsibSTB6yWpwT5qWmC2OfuCg3GgVQCSgMs4vEctYPhsaGtd0AeuuHMkjZ2h2WG8MSzRw==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/ua-parser-js": { + "version": "0.7.21", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.21.tgz", + "integrity": "sha512-+O8/qh/Qj8CgC6eYBVBykMrNtp5Gebn4dlGD/kKXVkJNDwyrAwSIqwz8CDf+tsAIWVycKcku6gIXJ0qwx/ZXaQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/underscore": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.1.tgz", + "integrity": "sha512-hzSoAVtJF+3ZtiFX0VgfFPHEDRm7Y/QPjGyNo4TVdnDTdft3tr8hEkD25a1jC+TjTuE7tkHGKkhwCgs9dgBB2g==", + "dev": true + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", + "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", + "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", + "dev": true, + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^1.0.4", + "unicode-property-aliases-ecmascript": "^1.0.4" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz", + "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz", + "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dev": true, + "dependencies": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/uniq": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", + "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", + "dev": true + }, + "node_modules/uniqs": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", + "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=", + "dev": true + }, + "node_modules/unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "dev": true, + "dependencies": { + "unique-slug": "^2.0.0" + } + }, + "node_modules/unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4" + } + }, + "node_modules/universal-analytics": { + "version": "0.4.20", + "resolved": "https://registry.npmjs.org/universal-analytics/-/universal-analytics-0.4.20.tgz", + "integrity": "sha512-gE91dtMvNkjO+kWsPstHRtSwHXz0l2axqptGYp5ceg4MsuurloM0PU3pdOfpb5zBXUvyjT4PwhWK2m39uczZuw==", + "dev": true, + "dependencies": { + "debug": "^3.0.0", + "request": "^2.88.0", + "uuid": "^3.0.0" + } + }, + "node_modules/universal-analytics/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/unquote": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", + "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=", + "dev": true + }, + "node_modules/unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "dependencies": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "dependencies": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "dependencies": { + "isarray": "1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/untildify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", + "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "dev": true, + "engines": { + "node": ">=4", + "yarn": "*" + } + }, + "node_modules/uri-js": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", + "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, + "node_modules/url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "dev": true, + "dependencies": { + "punycode": "1.3.2", + "querystring": "0.2.0" + } + }, + "node_modules/url-parse": { + "version": "1.4.7", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz", + "integrity": "sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg==", + "dev": true, + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/url/node_modules/punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "dev": true + }, + "node_modules/use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "dev": true, + "dependencies": { + "inherits": "2.0.1" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "node_modules/util-promisify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/util-promisify/-/util-promisify-2.1.0.tgz", + "integrity": "sha1-PCI2R2xNMsX/PEcAKt18E7moKlM=", + "dev": true, + "dependencies": { + "object.getownpropertydescriptors": "^2.0.3" + } + }, + "node_modules/util.promisify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", + "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.2", + "has-symbols": "^1.0.1", + "object.getownpropertydescriptors": "^2.1.0" + } + }, + "node_modules/util.promisify/node_modules/es-abstract": { + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", + "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", + "dev": true, + "dependencies": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/util/node_modules/inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", + "dev": true + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true, + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/validate-npm-package-license": { + "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, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/validate-npm-package-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", + "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", + "dev": true, + "dependencies": { + "builtins": "^1.0.3" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/vendors": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz", + "integrity": "sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==", + "dev": true + }, + "node_modules/verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "node_modules/vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", + "dev": true + }, + "node_modules/void-elements": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", + "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack": { + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", + "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==", + "dev": true, + "dependencies": { + "chokidar": "^3.4.1", + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0" + }, + "optionalDependencies": { + "watchpack-chokidar2": "^2.0.1" + } + }, + "node_modules/watchpack-chokidar2": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz", + "integrity": "sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==", + "dev": true, + "optional": true, + "dependencies": { + "chokidar": "^2.1.8" + } + }, + "node_modules/watchpack-chokidar2/node_modules/anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "optional": true, + "dependencies": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "node_modules/watchpack-chokidar2/node_modules/anymatch/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "optional": true, + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "optional": true, + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "optional": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "dev": true, + "optional": true, + "dependencies": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "node_modules/watchpack-chokidar2/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "optional": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "optional": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "optional": true, + "dependencies": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/glob-parent/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "optional": true, + "dependencies": { + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "optional": true, + "dependencies": { + "binary-extensions": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "optional": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "optional": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "optional": true, + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "optional": true, + "dependencies": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/watchpack-chokidar2/node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "optional": true, + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "dev": true, + "dependencies": { + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", + "dev": true, + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/webdriver-js-extender": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/webdriver-js-extender/-/webdriver-js-extender-2.1.0.tgz", + "integrity": "sha512-lcUKrjbBfCK6MNsh7xaY2UAUmZwe+/ib03AjVOpFobX4O7+83BUveSrLfU0Qsyb1DaKJdQRbuU+kM9aZ6QUhiQ==", + "dev": true, + "dependencies": { + "@types/selenium-webdriver": "^3.0.0", + "selenium-webdriver": "^3.0.1" + }, + "engines": { + "node": ">=6.9.x" + } + }, + "node_modules/webidl-conversions": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", + "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", + "dev": true, + "engines": { + "node": ">=10.4" + } + }, + "node_modules/webpack": { + "version": "4.43.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.43.0.tgz", + "integrity": "sha512-GW1LjnPipFW2Y78OOab8NJlCflB7EFskMih2AHdvjbpKMeDJqEgSx24cXXXiPS65+WSwVyxtDsJH6jGX2czy+g==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/wasm-edit": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "acorn": "^6.4.1", + "ajv": "^6.10.2", + "ajv-keywords": "^3.4.1", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^4.1.0", + "eslint-scope": "^4.0.3", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^2.4.0", + "loader-utils": "^1.2.3", + "memory-fs": "^0.4.1", + "micromatch": "^3.1.10", + "mkdirp": "^0.5.3", + "neo-async": "^2.6.1", + "node-libs-browser": "^2.2.1", + "schema-utils": "^1.0.0", + "tapable": "^1.1.3", + "terser-webpack-plugin": "^1.4.3", + "watchpack": "^1.6.1", + "webpack-sources": "^1.4.1" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/webpack-dev-middleware": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz", + "integrity": "sha512-1xC42LxbYoqLNAhV6YzTYacicgMZQTqRd27Sim9wn5hJrX3I5nxYy1SxSd4+gjUFsz1dQFj+yEe6zEVmSkeJjw==", + "dev": true, + "dependencies": { + "memory-fs": "^0.4.1", + "mime": "^2.4.4", + "mkdirp": "^0.5.1", + "range-parser": "^1.2.1", + "webpack-log": "^2.0.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/webpack-dev-middleware/node_modules/memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + "dev": true, + "dependencies": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "node_modules/webpack-dev-middleware/node_modules/mime": { + "version": "2.4.7", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.7.tgz", + "integrity": "sha512-dhNd1uA2u397uQk3Nv5LM4lm93WYDUXFn3Fu291FJerns4jyTudqhIWe4W04YLy7Uk1tm1Ore04NpjRvQp/NPA==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/webpack-dev-server": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.0.tgz", + "integrity": "sha512-PUxZ+oSTxogFQgkTtFndEtJIPNmml7ExwufBZ9L2/Xyyd5PnOL5UreWe5ZT7IU25DSdykL9p1MLQzmLh2ljSeg==", + "dev": true, + "dependencies": { + "ansi-html": "0.0.7", + "bonjour": "^3.5.0", + "chokidar": "^2.1.8", + "compression": "^1.7.4", + "connect-history-api-fallback": "^1.6.0", + "debug": "^4.1.1", + "del": "^4.1.1", + "express": "^4.17.1", + "html-entities": "^1.3.1", + "http-proxy-middleware": "0.19.1", + "import-local": "^2.0.0", + "internal-ip": "^4.3.0", + "ip": "^1.1.5", + "is-absolute-url": "^3.0.3", + "killable": "^1.0.1", + "loglevel": "^1.6.8", + "opn": "^5.5.0", + "p-retry": "^3.0.1", + "portfinder": "^1.0.26", + "schema-utils": "^1.0.0", + "selfsigned": "^1.10.7", + "semver": "^6.3.0", + "serve-index": "^1.9.1", + "sockjs": "0.3.20", + "sockjs-client": "1.4.0", + "spdy": "^4.0.2", + "strip-ansi": "^3.0.1", + "supports-color": "^6.1.0", + "url": "^0.11.0", + "webpack-dev-middleware": "^3.7.2", + "webpack-log": "^2.0.0", + "ws": "^6.2.1", + "yargs": "^13.3.2" + }, + "bin": { + "webpack-dev-server": "bin/webpack-dev-server.js" + }, + "engines": { + "node": ">= 6.11.5" + } + }, + "node_modules/webpack-dev-server/node_modules/anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "dependencies": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "node_modules/webpack-dev-server/node_modules/anymatch/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "dev": true, + "dependencies": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + }, + "optionalDependencies": { + "fsevents": "^1.2.7" + } + }, + "node_modules/webpack-dev-server/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/webpack-dev-server/node_modules/glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "dependencies": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + } + }, + "node_modules/webpack-dev-server/node_modules/glob-parent/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/is-absolute-url": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", + "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/webpack-dev-server/node_modules/is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "dependencies": { + "binary-extensions": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/webpack-dev-server/node_modules/schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "dependencies": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/webpack-dev-server/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/webpack-dev-server/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-dev-server/node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-log": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz", + "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==", + "dev": true, + "dependencies": { + "ansi-colors": "^3.0.0", + "uuid": "^3.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/webpack-merge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.2.tgz", + "integrity": "sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g==", + "dev": true, + "dependencies": { + "lodash": "^4.17.15" + } + }, + "node_modules/webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "dev": true, + "dependencies": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + }, + "node_modules/webpack-sources/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-subresource-integrity": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/webpack-subresource-integrity/-/webpack-subresource-integrity-1.4.1.tgz", + "integrity": "sha512-XMLFInbGbB1HV7K4vHWANzc1CN0t/c4bBvnlvGxGwV45yE/S/feAXIm8dJsCkzqWtSKnmaEgTp/meyeThxG4Iw==", + "dev": true, + "dependencies": { + "webpack-sources": "^1.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/webpack/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/cacache": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", + "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", + "dev": true, + "dependencies": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "infer-owner": "^1.0.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + } + }, + "node_modules/webpack/node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true + }, + "node_modules/webpack/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "dev": true, + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/webpack/node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/webpack/node_modules/loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/webpack/node_modules/memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + "dev": true, + "dependencies": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "node_modules/webpack/node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/webpack/node_modules/schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "dependencies": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/webpack/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/ssri": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", + "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", + "dev": true, + "dependencies": { + "figgy-pudding": "^3.5.1" + } + }, + "node_modules/webpack/node_modules/terser-webpack-plugin": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz", + "integrity": "sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==", + "dev": true, + "dependencies": { + "cacache": "^12.0.2", + "find-cache-dir": "^2.1.0", + "is-wsl": "^1.1.0", + "schema-utils": "^1.0.0", + "serialize-javascript": "^4.0.0", + "source-map": "^0.6.1", + "terser": "^4.1.2", + "webpack-sources": "^1.4.0", + "worker-farm": "^1.7.0" + }, + "engines": { + "node": ">= 6.9.0" + } + }, + "node_modules/webpack/node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/websocket-driver": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.6.5.tgz", + "integrity": "sha1-XLJVbOuF9Dc8bYI4qmkchFThOjY=", + "dev": true, + "dependencies": { + "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/whatwg-mimetype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", + "dev": true + }, + "node_modules/whatwg-url": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.4.0.tgz", + "integrity": "sha512-vwTUFf6V4zhcPkWp/4CQPr1TW9Ml6SF4lVyaIMBdJw5i6qUUJ1QWM4Z6YYVkfka0OUIzVo/0aNtGVGk256IKWw==", + "dev": true, + "dependencies": { + "lodash.sortby": "^4.7.0", + "tr46": "^2.0.2", + "webidl-conversions": "^6.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/when": { + "version": "3.6.4", + "resolved": "https://registry.npmjs.org/when/-/when-3.6.4.tgz", + "integrity": "sha1-RztRfsFZ4rhQBUl6E5g/CVQS404=", + "dev": true + }, + "node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "node_modules/with-open-file": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/with-open-file/-/with-open-file-0.1.7.tgz", + "integrity": "sha512-ecJS2/oHtESJ1t3ZfMI3B7KIDKyfN0O16miWxdn30zdh66Yd3LsRFebXZXq6GU4xfxLf6nVxp9kIqElb5fqczA==", + "dev": true, + "dependencies": { + "p-finally": "^1.0.0", + "p-try": "^2.1.0", + "pify": "^4.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/worker-farm": { + "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, + "dependencies": { + "errno": "~0.1.7" + } + }, + "node_modules/worker-plugin": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/worker-plugin/-/worker-plugin-4.0.3.tgz", + "integrity": "sha512-7hFDYWiKcE3yHZvemsoM9lZis/PzurHAEX1ej8PLCu818Rt6QqUAiDdxHPCKZctzmhqzPpcFSgvMCiPbtooqAg==", + "dev": true, + "dependencies": { + "loader-utils": "^1.1.0" + } + }, + "node_modules/worker-plugin/node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/worker-plugin/node_modules/loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/ws": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", + "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", + "dev": true, + "dependencies": { + "async-limiter": "~1.0.0" + } + }, + "node_modules/xml2js": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", + "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", + "dev": true, + "dependencies": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/xmldom": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.5.0.tgz", + "integrity": "sha512-Foaj5FXVzgn7xFzsKeNIde9g6aFBxTPi37iwsno8QvApmtg7KYrr+OPyRHcJF7dud2a5nGRBXK3n0dL62Gf7PA==", + "dev": true, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/xmlhttprequest-ssl": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz", + "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true, + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", + "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", + "dev": true + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "dev": true, + "dependencies": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" + } + }, + "node_modules/yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", + "dev": true, + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, + "node_modules/yeast": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", + "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=", + "dev": true + }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/zone.js": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.10.3.tgz", + "integrity": "sha512-LXVLVEq0NNOqK/fLJo3d0kfzd4sxwn2/h67/02pjCjfKDxgx1i9QqpvtHD8CrBnSSwMw5+dy11O7FRX5mkO7Cg==" + } + }, "dependencies": { "@angular-devkit/architect": { "version": "0.1000.8", @@ -1467,6 +19028,62 @@ "to-fast-properties": "^2.0.0" } }, + "@capacitor/android": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@capacitor/android/-/android-3.0.1.tgz", + "integrity": "sha512-+bKm0J1/oSln8VlVRfC25AWn+lLFwvC3Q8OeIA7DyI36RPi8WMkGfVPvZ3EIywUKBquj7mVuEXXhiZyM+YlDeQ==", + "requires": {} + }, + "@capacitor/cli": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@capacitor/cli/-/cli-3.0.1.tgz", + "integrity": "sha512-OIzpWgtpg0wshdS60Fz6QgXfsYqnWSfQx/9/bmp0eiiKgvtOJa9QmdfFAaGI2BRVoOyiulTMLetSvOAkuTJBPA==", + "dev": true, + "requires": { + "@ionic/cli-framework-output": "^2.2.1", + "@ionic/utils-fs": "^3.1.5", + "@ionic/utils-subprocess": "^2.1.6", + "@ionic/utils-terminal": "^2.3.0", + "commander": "^6.0.0", + "debug": "^4.2.0", + "env-paths": "^2.2.0", + "kleur": "^4.1.1", + "native-run": "^1.4.0", + "open": "^7.1.0", + "plist": "^3.0.2", + "prompts": "^2.3.2", + "semver": "^7.3.2", + "tar": "^6.0.5", + "tslib": "^2.1.0", + "xml2js": "^0.4.23" + }, + "dependencies": { + "commander": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", + "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", + "dev": true + }, + "open": { + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", + "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", + "dev": true, + "requires": { + "is-docker": "^2.0.0", + "is-wsl": "^2.1.1" + } + } + } + }, + "@capacitor/core": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@capacitor/core/-/core-3.0.1.tgz", + "integrity": "sha512-17iFkpICdOdTqfbKh3oXFYbwXn9dSxLe85PWeptXSW5jkiHN/YhI+iedRpcukv1QXkR1P629B+7kDqBcrzKL9w==", + "requires": { + "tslib": "^2.1.0" + } + }, "@ionic-native/core": { "version": "5.30.0", "resolved": "https://registry.npmjs.org/@ionic-native/core/-/core-5.30.0.tgz", @@ -1947,6 +19564,7 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/@netflix/nerror/-/nerror-1.1.3.tgz", "integrity": "sha512-b+MGNyP9/LXkapreJzNUzcvuzZslj/RGgdVVJ16P2wSlYatfLycPObImqVJSmNAdyeShvNeM/pl3sVZsObFueg==", + "dev": true, "requires": { "assert-plus": "^1.0.0", "extsprintf": "^1.4.0", @@ -1956,7 +19574,8 @@ "extsprintf": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.0.tgz", - "integrity": "sha1-4mifjzVvrWLMplo6kcXfX5VRaS8=" + "integrity": "sha1-4mifjzVvrWLMplo6kcXfX5VRaS8=", + "dev": true } } }, @@ -1976,6 +19595,7 @@ "version": "2.1.4", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz", "integrity": "sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA==", + "dev": true, "requires": { "@nodelib/fs.stat": "2.0.4", "run-parallel": "^1.1.9" @@ -1984,12 +19604,14 @@ "@nodelib/fs.stat": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz", - "integrity": "sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q==" + "integrity": "sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q==", + "dev": true }, "@nodelib/fs.walk": { "version": "1.2.6", "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz", "integrity": "sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow==", + "dev": true, "requires": { "@nodelib/fs.scandir": "2.1.4", "fastq": "^1.6.0" @@ -2317,16 +19939,6 @@ "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", "dev": true }, - "JSONStream": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", - "dev": true, - "requires": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - } - }, "abab": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", @@ -2336,7 +19948,8 @@ "abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true }, "accepts": { "version": "1.3.7", @@ -2471,9 +20084,10 @@ "dev": true }, "android-versions": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/android-versions/-/android-versions-1.6.0.tgz", - "integrity": "sha512-ojC2Ig7b/KJ6iNtR8e4bacmOsJyEkoERk3CKMIsnH7kJz5z6551NMbrVaRb7KXYavu1d74Uhml/bfcmqT3nAcg==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/android-versions/-/android-versions-1.7.0.tgz", + "integrity": "sha512-TCy4b8Dk8YS6A23ZPfhSKqK66JHFq0D8avGYiwvYpjno6HrrcI0DRgHx9+jtkvWYmrsE2vQWgbHJhvGGhhOb0g==", + "dev": true, "requires": { "semver": "^5.7.1" }, @@ -2481,14 +20095,16 @@ "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true } } }, "ansi": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/ansi/-/ansi-0.3.1.tgz", - "integrity": "sha1-DELU+xcWDVqa8eSEus4cZpIsGyE=" + "integrity": "sha1-DELU+xcWDVqa8eSEus4cZpIsGyE=", + "dev": true }, "ansi-colors": { "version": "3.2.4", @@ -2680,7 +20296,8 @@ "assert-plus": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true }, "assign-symbols": { "version": "1.0.0", @@ -2903,7 +20520,8 @@ "base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true }, "base64id": { "version": "2.0.0", @@ -2938,7 +20556,8 @@ "big-integer": { "version": "1.6.48", "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.48.tgz", - "integrity": "sha512-j51egjPa7/i+RdiRuJbPdJ2FIUYYPhvYLjzoYbcMMm62ooO6F94fETG4MTs46zPAF9Brs04OajboA/qTGuz78w==" + "integrity": "sha512-j51egjPa7/i+RdiRuJbPdJ2FIUYYPhvYLjzoYbcMMm62ooO6F94fETG4MTs46zPAF9Brs04OajboA/qTGuz78w==", + "dev": true }, "big.js": { "version": "5.2.2", @@ -3048,6 +20667,7 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz", "integrity": "sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==", + "dev": true, "requires": { "big-integer": "^1.6.44" } @@ -3065,6 +20685,7 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, "requires": { "fill-range": "^7.0.1" } @@ -3200,6 +20821,12 @@ "isarray": "^1.0.0" } }, + "buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", + "dev": true + }, "buffer-from": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", @@ -3362,6 +20989,22 @@ "integrity": "sha512-feylzsbDxi1gPZ1IjystzIQZagYYLvfKrSuygUCgf7z6x790VEzze5QEkdSV1U58RA7Hi0+v6fv4K54atOzATg==", "dev": true }, + "capacitor": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/capacitor/-/capacitor-0.5.5.tgz", + "integrity": "sha1-w3lxHuKTnXoWuV7KeJRfOJlzd7k=", + "requires": { + "immutable": "^3.7.3", + "lodash": "^2.4.1" + }, + "dependencies": { + "lodash": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz", + "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=" + } + } + }, "caseless": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", @@ -4022,16 +21665,20 @@ } }, "cordova-android": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/cordova-android/-/cordova-android-9.0.0.tgz", - "integrity": "sha512-2ZEgApK4LPMYW0zh/mLAH3CabzCaKE0yxQTzA2wTf0Eo2HHTJnRtDCf9spGf3nPOkubyXS6+pvzz5QzNHpVTqQ==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/cordova-android/-/cordova-android-9.1.0.tgz", + "integrity": "sha512-bzOX9E4eQsOSpa06oZZ7XAGq3DwB73juhhj0oPqHH/khWk0mkCD4aiVYMFoc0fmIaSQvzbY1ww7L6UBW5pyGfg==", + "dev": true, "requires": { "android-versions": "^1.5.0", "cordova-common": "^4.0.1", "execa": "^4.0.2", + "fast-glob": "^3.2.4", "fs-extra": "^9.0.1", + "is-path-inside": "^3.0.2", "nopt": "^4.0.3", "properties-parser": "^0.3.1", + "semver": "^7.3.4", "which": "^2.0.2" }, "dependencies": { @@ -4039,6 +21686,7 @@ "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, "requires": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -4049,6 +21697,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "dev": true, "requires": { "cross-spawn": "^7.0.0", "get-stream": "^5.0.0", @@ -4062,49 +21711,62 @@ } }, "fs-extra": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz", - "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, "requires": { "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", - "universalify": "^1.0.0" + "universalify": "^2.0.0" } }, "get-stream": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, "requires": { "pump": "^3.0.0" } }, + "is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true + }, "is-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==" + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "dev": true }, "jsonfile": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, "requires": { "graceful-fs": "^4.1.6", "universalify": "^2.0.0" - }, - "dependencies": { - "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" - } + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" } }, "npm-run-path": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, "requires": { "path-key": "^3.0.0" } @@ -4112,12 +21774,23 @@ "path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } }, "shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, "requires": { "shebang-regex": "^3.0.0" } @@ -4125,17 +21798,20 @@ "shebang-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true }, "universalify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", - "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true }, "which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, "requires": { "isexe": "^2.0.0" } @@ -4146,6 +21822,7 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/cordova-common/-/cordova-common-4.0.2.tgz", "integrity": "sha512-od7aNShyuBajzPY83mUEO8tERwwWdFklXETHiXP5Ft87CWeo/tSuwNPFztyTy8XYc74yXdogXKPTJeUHuVzB8Q==", + "dev": true, "requires": { "@netflix/nerror": "^1.1.3", "ansi": "^0.3.1", @@ -4167,6 +21844,7 @@ "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, "requires": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -4174,41 +21852,38 @@ } }, "fs-extra": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz", - "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, "requires": { "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", - "universalify": "^1.0.0" + "universalify": "^2.0.0" } }, "jsonfile": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, "requires": { "graceful-fs": "^4.1.6", "universalify": "^2.0.0" - }, - "dependencies": { - "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" - } } }, "path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true }, "shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, "requires": { "shebang-regex": "^3.0.0" } @@ -4216,17 +21891,20 @@ "shebang-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true }, "universalify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", - "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true }, "which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, "requires": { "isexe": "^2.0.0" } @@ -4750,7 +22428,8 @@ "dedent": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=" + "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=", + "dev": true }, "deep-equal": { "version": "1.1.1", @@ -5125,6 +22804,7 @@ "version": "0.1.7", "resolved": "https://registry.npmjs.org/elementtree/-/elementtree-0.1.7.tgz", "integrity": "sha1-mskb5uUvtuYkTE5UpKw+2K6OKcA=", + "dev": true, "requires": { "sax": "1.1.4" }, @@ -5132,7 +22812,8 @@ "sax": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/sax/-/sax-1.1.4.tgz", - "integrity": "sha1-dLbTPJrh4AFRDxeakRaFiPGu2qk=" + "integrity": "sha1-dLbTPJrh4AFRDxeakRaFiPGu2qk=", + "dev": true } } }, @@ -5200,6 +22881,7 @@ "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, "requires": { "once": "^1.4.0" } @@ -5208,6 +22890,7 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/endent/-/endent-1.4.1.tgz", "integrity": "sha512-buHTb5c8AC9NshtP6dgmNLYkiT+olskbq1z6cEGvfGCF3Qphbu/1zz5Xu+yjTDln8RbxNhPoUyJ5H8MSrp1olQ==", + "dev": true, "requires": { "dedent": "^0.7.0", "fast-json-parse": "^1.0.3", @@ -5344,6 +23027,12 @@ "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", "dev": true }, + "env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true + }, "err-code": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz", @@ -5819,6 +23508,7 @@ "version": "3.2.4", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz", "integrity": "sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==", + "dev": true, "requires": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -5831,7 +23521,8 @@ "fast-json-parse": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/fast-json-parse/-/fast-json-parse-1.0.3.tgz", - "integrity": "sha512-FRWsaZRWEJ1ESVNbDWmsAlqDk96gPQezzLghafp5J4GUKjbCz3OkAHuZs5TuPEtkbVQERysLp9xv6c24fBm8Aw==" + "integrity": "sha512-FRWsaZRWEJ1ESVNbDWmsAlqDk96gPQezzLghafp5J4GUKjbCz3OkAHuZs5TuPEtkbVQERysLp9xv6c24fBm8Aw==", + "dev": true }, "fast-json-stable-stringify": { "version": "2.1.0", @@ -5849,6 +23540,7 @@ "version": "1.10.0", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.10.0.tgz", "integrity": "sha512-NL2Qc5L3iQEsyYzweq7qfgy5OtXCmGzGvhElGEd/SoFWEMOEczNh5s5ocaF01HDetxz+p8ecjNPA6cZxxIHmzA==", + "dev": true, "requires": { "reusify": "^1.0.4" } @@ -5862,6 +23554,15 @@ "websocket-driver": ">=0.5.1" } }, + "fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", + "dev": true, + "requires": { + "pend": "~1.2.0" + } + }, "figgy-pudding": { "version": "3.5.2", "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", @@ -5891,6 +23592,7 @@ "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, "requires": { "to-regex-range": "^5.0.1" } @@ -6198,6 +23900,7 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "dev": true, "requires": { "is-glob": "^4.0.1" } @@ -6733,7 +24436,8 @@ "human-signals": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", - "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==" + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", + "dev": true }, "humanize-ms": { "version": "1.2.1", @@ -6802,6 +24506,11 @@ "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=", "dev": true }, + "immutable": { + "version": "3.8.2", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.2.tgz", + "integrity": "sha1-wkOZUUVbs5kT2vKBN28VMOEErfM=" + }, "import-cwd": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz", @@ -7191,7 +24900,8 @@ "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true }, "is-fullwidth-code-point": { "version": "2.0.0", @@ -7203,6 +24913,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, "requires": { "is-extglob": "^2.1.1" } @@ -7222,7 +24933,8 @@ "is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true }, "is-obj": { "version": "2.0.0", @@ -7633,6 +25345,16 @@ "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", "dev": true }, + "JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "dev": true, + "requires": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + } + }, "jsprim": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", @@ -7917,6 +25639,12 @@ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true }, + "kleur": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.4.tgz", + "integrity": "sha512-8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA==", + "dev": true + }, "less": { "version": "3.13.1", "resolved": "https://registry.npmjs.org/less/-/less-3.13.1.tgz", @@ -8278,12 +26006,14 @@ "merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true }, "merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true }, "methods": { "version": "1.1.2", @@ -8294,6 +26024,7 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "dev": true, "requires": { "braces": "^3.0.1", "picomatch": "^2.0.5" @@ -8338,7 +26069,8 @@ "mimic-fn": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true }, "mini-css-extract-plugin": { "version": "0.9.0", @@ -8611,6 +26343,47 @@ "dev": true, "optional": true }, + "native-run": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/native-run/-/native-run-1.4.0.tgz", + "integrity": "sha512-3XJiDxGNi6XCsn8KYDQFSYGDVkKEMg0y55qTMU0feEuPNNU4iztBwW5bE87sfybZsQPsYDJQyYt9CUKDSoJgdQ==", + "dev": true, + "requires": { + "@ionic/utils-fs": "^3.0.0", + "@ionic/utils-terminal": "^2.3.1", + "bplist-parser": "0.2.0", + "debug": "^4.1.1", + "elementtree": "^0.1.7", + "ini": "^1.3.5", + "plist": "^3.0.1", + "split2": "^3.1.0", + "through2": "^4.0.2", + "tslib": "^2.0.1", + "yauzl": "^2.10.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "through2": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", + "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", + "dev": true, + "requires": { + "readable-stream": "3" + } + } + } + }, "negotiator": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", @@ -8715,6 +26488,7 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz", "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", + "dev": true, "requires": { "abbrev": "1", "osenv": "^0.1.4" @@ -8827,9 +26601,9 @@ "integrity": "sha512-cny9v0+Mq6Tjz+e0erFAB+RYJ/AVGzkjnISiobqP8OWj9c9FLoZZu8/SPSKJWE17F1tk4018wfjV+ZbIbqC7fQ==", "dev": true, "requires": { - "JSONStream": "^1.3.4", "bluebird": "^3.5.1", "figgy-pudding": "^3.4.1", + "JSONStream": "^1.3.4", "lru-cache": "^5.1.1", "make-fetch-happen": "^5.0.0", "npm-package-arg": "^6.1.0", @@ -9025,7 +26799,8 @@ "objectorarray": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/objectorarray/-/objectorarray-1.0.4.tgz", - "integrity": "sha512-91k8bjcldstRz1bG6zJo8lWD7c6QXcB4nTDUqiEvIL1xAsLoZlOOZZG+nd6YPz+V7zY1580J4Xxh1vZtyv4i/w==" + "integrity": "sha512-91k8bjcldstRz1bG6zJo8lWD7c6QXcB4nTDUqiEvIL1xAsLoZlOOZZG+nd6YPz+V7zY1580J4Xxh1vZtyv4i/w==", + "dev": true }, "obuf": { "version": "1.1.2", @@ -9059,6 +26834,7 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, "requires": { "mimic-fn": "^2.1.0" } @@ -9190,17 +26966,20 @@ "os-homedir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true }, "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=" + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true }, "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" @@ -9209,7 +26988,8 @@ "p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true }, "p-limit": { "version": "2.3.0", @@ -9250,7 +27030,8 @@ "p-try": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true }, "pacote": { "version": "9.5.12", @@ -9563,6 +27344,12 @@ "sha.js": "^2.4.8" } }, + "pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", + "dev": true + }, "performance-now": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", @@ -9572,12 +27359,14 @@ "picomatch": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", - "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==" + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", + "dev": true }, "pify": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true }, "pinkie": { "version": "2.0.4", @@ -9604,19 +27393,21 @@ } }, "plist": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/plist/-/plist-3.0.1.tgz", - "integrity": "sha512-GpgvHHocGRyQm74b6FWEZZVRroHKE1I0/BTjAmySaohK+cUn+hZpbqXkc3KWgW3gQYkqcQej35FohcT0FRlkRQ==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/plist/-/plist-3.0.2.tgz", + "integrity": "sha512-MSrkwZBdQ6YapHy87/8hDU8MnIcyxBKjeF+McXnr5A9MtffPewTs7G3hlpodT5TacyfIyFTaJEhh3GGcmasTgQ==", + "dev": true, "requires": { - "base64-js": "^1.2.3", + "base64-js": "^1.5.1", "xmlbuilder": "^9.0.7", - "xmldom": "0.1.x" + "xmldom": "^0.5.0" }, "dependencies": { "xmlbuilder": { "version": "9.0.7", "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", - "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=" + "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=", + "dev": true } } }, @@ -10352,10 +28143,29 @@ } } }, + "prompts": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.1.tgz", + "integrity": "sha512-EQyfIuO2hPDsX1L/blblV+H7I0knhgAd82cVneCwcdND9B8AuCDuRcBH6yIcG4dFzlOUqbazQqwGjx5xmsNLuQ==", + "dev": true, + "requires": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "dependencies": { + "kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true + } + } + }, "properties-parser": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/properties-parser/-/properties-parser-0.3.1.tgz", "integrity": "sha1-ExbpU5/7/ZOEXjabIRAiq9R4dxo=", + "dev": true, "requires": { "string.prototype.codepointat": "^0.2.0" } @@ -10766,6 +28576,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, "requires": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -10803,7 +28614,8 @@ "q": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=" + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", + "dev": true }, "qjobs": { "version": "1.2.0", @@ -10925,6 +28737,7 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/read-chunk/-/read-chunk-3.2.0.tgz", "integrity": "sha512-CEjy9LCzhmD7nUpJ1oVOE6s/hBkejlcJEgLQHVnQznOSilOPb+kpKktlLfFDK3/WP43+F80xkUTM2VOkYoSYvQ==", + "dev": true, "requires": { "pify": "^4.0.1", "with-open-file": "^0.1.6" @@ -11309,7 +29122,8 @@ "reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true }, "rework": { "version": "1.0.1", @@ -11389,7 +29203,8 @@ "run-parallel": { "version": "1.1.10", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.10.tgz", - "integrity": "sha512-zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw==" + "integrity": "sha512-zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw==", + "dev": true }, "run-queue": { "version": "1.0.3", @@ -11831,6 +29646,12 @@ } } }, + "sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, "slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", @@ -12410,6 +30231,28 @@ "extend-shallow": "^3.0.0" } }, + "split2": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", + "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", + "dev": true, + "requires": { + "readable-stream": "^3.0.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", @@ -12549,6 +30392,15 @@ "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", "dev": true }, + "string_decoder": { + "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" + } + }, "string-width": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", @@ -12580,7 +30432,8 @@ "string.prototype.codepointat": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/string.prototype.codepointat/-/string.prototype.codepointat-0.2.1.tgz", - "integrity": "sha512-2cBVCj6I4IOvEnjgO/hWqXjqBGsY+zwPmHl12Srk9IXSZ56Jwwmy+66XO5Iut/oQVR7t5ihYdLB0GMa4alEUcg==" + "integrity": "sha512-2cBVCj6I4IOvEnjgO/hWqXjqBGsY+zwPmHl12Srk9IXSZ56Jwwmy+66XO5Iut/oQVR7t5ihYdLB0GMa4alEUcg==", + "dev": true }, "string.prototype.trimend": { "version": "1.0.3", @@ -12602,15 +30455,6 @@ "define-properties": "^1.1.3" } }, - "string_decoder": { - "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" - } - }, "strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", @@ -12623,7 +30467,8 @@ "strip-bom": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==" + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true }, "strip-eof": { "version": "1.0.0", @@ -12634,7 +30479,8 @@ "strip-final-newline": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==" + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true }, "style-loader": { "version": "1.2.1", @@ -12959,6 +30805,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, "requires": { "is-number": "^7.0.0" } @@ -13012,9 +30859,9 @@ "dev": true }, "tslib": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", - "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==" + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz", + "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==" }, "tslint": { "version": "6.1.3", @@ -13137,9 +30984,10 @@ "dev": true }, "underscore": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.12.0.tgz", - "integrity": "sha512-21rQzss/XPMjolTiIezSu3JAjgagXKROtNrYFEOWK109qY1Uv2tVjPTZ1ci2HgvQDA16gHYSthQIJfB+XId/rQ==" + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.1.tgz", + "integrity": "sha512-hzSoAVtJF+3ZtiFX0VgfFPHEDRm7Y/QPjGyNo4TVdnDTdft3tr8hEkD25a1jC+TjTuE7tkHGKkhwCgs9dgBB2g==", + "dev": true }, "unicode-canonical-property-names-ecmascript": { "version": "1.0.4", @@ -14422,6 +32270,7 @@ "version": "0.1.7", "resolved": "https://registry.npmjs.org/with-open-file/-/with-open-file-0.1.7.tgz", "integrity": "sha512-ecJS2/oHtESJ1t3ZfMI3B7KIDKyfN0O16miWxdn30zdh66Yd3LsRFebXZXq6GU4xfxLf6nVxp9kIqElb5fqczA==", + "dev": true, "requires": { "p-finally": "^1.0.0", "p-try": "^2.1.0", @@ -14538,9 +32387,10 @@ "dev": true }, "xmldom": { - "version": "0.1.31", - "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.1.31.tgz", - "integrity": "sha512-yS2uJflVQs6n+CyjHoaBmVSqIDevTAWrzMmjG1Gc7h1qQ7uVozNhEPJAwZXWyGQ/Gafo3fCwrcaokezLPupVyQ==" + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.5.0.tgz", + "integrity": "sha512-Foaj5FXVzgn7xFzsKeNIde9g6aFBxTPi37iwsno8QvApmtg7KYrr+OPyRHcJF7dud2a5nGRBXK3n0dL62Gf7PA==", + "dev": true }, "xmlhttprequest-ssl": { "version": "1.5.5", @@ -14594,6 +32444,16 @@ "decamelize": "^1.2.0" } }, + "yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", + "dev": true, + "requires": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, "yeast": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", diff --git a/ionic/package.json b/ionic/package.json index 0e74f9c5c4e911bd69d47735b34ee94748c83a56..8f83a535b5ef946d15aaee846e4ef07711b27771 100644 --- a/ionic/package.json +++ b/ionic/package.json @@ -19,12 +19,14 @@ "@angular/platform-browser": "~10.0.0", "@angular/platform-browser-dynamic": "~10.0.0", "@angular/router": "~10.0.0", + "@capacitor/android": "^3.0.1", + "@capacitor/core": "3.0.1", "@ionic-native/core": "^5.0.0", "@ionic-native/splash-screen": "^5.0.0", "@ionic-native/status-bar": "^5.0.0", "@ionic/angular": "^5.0.0", "@ionic/lab": "^3.2.10", - "cordova-android": "9.0.0", + "capacitor": "^0.5.5", "rxjs": "~6.5.5", "tslib": "^2.0.0", "zone.js": "~0.10.3" @@ -35,11 +37,13 @@ "@angular/compiler": "~10.0.0", "@angular/compiler-cli": "~10.0.0", "@angular/language-service": "~10.0.0", + "@capacitor/cli": "3.0.1", "@ionic/angular-toolkit": "^2.3.0", "@types/jasmine": "~3.5.0", "@types/jasminewd2": "~2.0.3", "@types/node": "^12.11.1", "codelyzer": "^6.0.0", + "cordova-android": "^9.1.0", "cordova-plugin-device": "^2.0.2", "cordova-plugin-ionic-keyboard": "^2.2.0", "cordova-plugin-ionic-webview": "^4.2.1", diff --git a/ionic/platforms/android/.gitignore b/ionic/platforms/android/.gitignore deleted file mode 100644 index 427a160a1d9ecfb367e72f222136ff9f60a9ddae..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/.gitignore +++ /dev/null @@ -1,21 +0,0 @@ -# Non-project-specific build files: -build.xml -local.properties -/gradlew -/gradlew.bat -/gradle -# Ant builds -ant-build -ant-gen -# Eclipse builds -gen -out -# Gradle build artifacts -.gradle -.gradletasknamecache -/build -/CordovaLib/build -/app/build -gradle-app.setting -# Android Studio -.idea diff --git a/ionic/platforms/android/CordovaLib/AndroidManifest.xml b/ionic/platforms/android/CordovaLib/AndroidManifest.xml deleted file mode 100755 index 320c2538ec93c62321ff3e3b7886f095a441b793..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/CordovaLib/AndroidManifest.xml +++ /dev/null @@ -1,22 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. ---> -<manifest xmlns:android="http://schemas.android.com/apk/res/android" - package="org.apache.cordova" android:versionName="1.0" android:versionCode="1"> -</manifest> diff --git a/ionic/platforms/android/CordovaLib/build.gradle b/ionic/platforms/android/CordovaLib/build.gradle deleted file mode 100644 index d7e0b1f72839911bac9f0ca434171b3ef71c2d37..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/CordovaLib/build.gradle +++ /dev/null @@ -1,148 +0,0 @@ -/* Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*/ - -ext { - apply from: 'cordova.gradle' - cdvCompileSdkVersion = privateHelpers.getProjectTarget() - cdvBuildToolsVersion = privateHelpers.findLatestInstalledBuildTools() -} - -buildscript { - repositories { - google() - jcenter() - } - - dependencies { - // The gradle plugin and the maven plugin have to be updated after each version of Android - // studio comes out - classpath 'com.android.tools.build:gradle:4.0.0' - classpath 'com.github.dcendents:android-maven-gradle-plugin:2.1' - classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.7.3' - } -} - -allprojects { - repositories { - google() - jcenter() - } -} - -apply plugin: 'com.android.library' -apply plugin: 'com.github.dcendents.android-maven' -apply plugin: 'com.jfrog.bintray' - -group = 'org.apache.cordova' -version = '9.0.0' - -android { - compileSdkVersion cdvCompileSdkVersion - buildToolsVersion cdvBuildToolsVersion - - compileOptions { - sourceCompatibility JavaVersion.VERSION_1_8 - targetCompatibility JavaVersion.VERSION_1_8 - } - - // For the Android Cordova Lib, we will hardcode the minSdkVersion and not allow changes. - defaultConfig { - minSdkVersion 22 - } - - sourceSets { - main { - manifest.srcFile 'AndroidManifest.xml' - java.srcDirs = ['src'] - resources.srcDirs = ['src'] - aidl.srcDirs = ['src'] - renderscript.srcDirs = ['src'] - res.srcDirs = ['res'] - assets.srcDirs = ['assets'] - } - } - - packagingOptions { - exclude 'META-INF/LICENSE' - exclude 'META-INF/LICENSE.txt' - exclude 'META-INF/DEPENDENCIES' - exclude 'META-INF/NOTICE' - } -} - -install { - repositories.mavenInstaller { - pom { - project { - packaging 'aar' - name 'Cordova' - url 'https://cordova.apache.org' - licenses { - license { - name 'The Apache Software License, Version 2.0' - url 'http://www.apache.org/licenses/LICENSE-2.0.txt' - } - } - developers { - developer { - id 'stevengill' - name 'Steve Gill' - } - } - scm { - connection 'scm:git:https://github.com/apache/cordova-android.git' - developerConnection 'scm:git:git@github.com:apache/cordova-android.git' - url 'https://github.com/apache/cordova-android' - - } - } - } - } -} - -task sourcesJar(type: Jar) { - from android.sourceSets.main.java.srcDirs - classifier = 'sources' -} - -artifacts { - archives sourcesJar -} - -bintray { - user = System.getenv('BINTRAY_USER') - key = System.getenv('BINTRAY_KEY') - configurations = ['archives'] - pkg { - repo = 'maven' - name = 'cordova-android' - userOrg = 'cordova' - licenses = ['Apache-2.0'] - vcsUrl = 'https://github.com/apache/cordova-android' - websiteUrl = 'https://cordova.apache.org' - issueTrackerUrl = 'https://github.com/apache/cordova-android/issues' - publicDownloadNumbers = true - licenses = ['Apache-2.0'] - labels = ['android', 'cordova', 'phonegap'] - version { - name = '9.0.0' - released = new Date() - vcsTag = '9.0.0' - } - } -} diff --git a/ionic/platforms/android/CordovaLib/cordova.gradle b/ionic/platforms/android/CordovaLib/cordova.gradle deleted file mode 100644 index 36750b68fa5448cb98790bd39bd444a8bbbd826b..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/CordovaLib/cordova.gradle +++ /dev/null @@ -1,205 +0,0 @@ -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*/ - -import java.util.regex.Pattern -import groovy.swing.SwingBuilder -import com.g00fy2.versioncompare.Version - -String doEnsureValueExists(filePath, props, key) { - if (props.get(key) == null) { - throw new GradleException(filePath + ': Missing key required "' + key + '"') - } - return props.get(key) -} - -String doGetProjectTarget() { - def props = new Properties() - def propertiesFile = 'project.properties'; - if(!(file(propertiesFile).exists())) { - propertiesFile = '../project.properties'; - } - file(propertiesFile).withReader { reader -> - props.load(reader) - } - return doEnsureValueExists('project.properties', props, 'target') -} - -Boolean isVersionValid(version) { - return !(new Version(version)).isEqual('0.0.0') -} - -String doFindLatestInstalledBuildTools(String minBuildToolsVersionString) { - def buildToolsDirContents - try { - def buildToolsDir = new File(getAndroidSdkDir(), "build-tools") - buildToolsDirContents = buildToolsDir.list() - } catch (e) { - println "An exception occurred while trying to find the Android build tools." - throw e - } - - def highestBuildToolsVersion = buildToolsDirContents - .collect { new Version(it) } - // Invalid inputs will be handled as 0.0.0 - .findAll { it.isHigherThan('0.0.0') } - .max() - - if (highestBuildToolsVersion == null) { - throw new RuntimeException(""" - No installed build tools found. Install the Android build tools - version ${minBuildToolsVersionString} or higher. - """.replaceAll(/\s+/, ' ').trim()) - } - - if (highestBuildToolsVersion.isLowerThan(minBuildToolsVersionString)) { - throw new RuntimeException(""" - No usable Android build tools found. Highest installed version is - ${highestBuildToolsVersion.getOriginalString()}; minimum version - required is ${minBuildToolsVersionString}. - """.replaceAll(/\s+/, ' ').trim()) - } - - highestBuildToolsVersion.getOriginalString() -} - -String getAndroidSdkDir() { - def rootDir = project.rootDir - def androidSdkDir = null - String envVar = System.getenv("ANDROID_SDK_ROOT") - if (envVar == null) { - envVar = System.getenv("ANDROID_HOME") - } - - def localProperties = new File(rootDir, 'local.properties') - String systemProperty = System.getProperty("android.home") - if (envVar != null) { - androidSdkDir = envVar - } else if (localProperties.exists()) { - Properties properties = new Properties() - localProperties.withInputStream { instr -> - properties.load(instr) - } - def sdkDirProp = properties.getProperty('sdk.dir') - if (sdkDirProp != null) { - androidSdkDir = sdkDirProp - } else { - sdkDirProp = properties.getProperty('android.dir') - if (sdkDirProp != null) { - androidSdkDir = (new File(rootDir, sdkDirProp)).getAbsolutePath() - } - } - } - if (androidSdkDir == null && systemProperty != null) { - androidSdkDir = systemProperty - } - if (androidSdkDir == null) { - throw new RuntimeException( - "Unable to determine Android SDK directory.") - } - androidSdkDir -} - -def doExtractIntFromManifest(name) { - def manifestFile = file(android.sourceSets.main.manifest.srcFile) - def pattern = Pattern.compile(name + "=\"(\\d+)\"") - def matcher = pattern.matcher(manifestFile.getText()) - matcher.find() - return new BigInteger(matcher.group(1)) -} - -def doExtractStringFromManifest(name) { - def manifestFile = file(android.sourceSets.main.manifest.srcFile) - def pattern = Pattern.compile(name + "=\"(\\S+)\"") - def matcher = pattern.matcher(manifestFile.getText()) - matcher.find() - return matcher.group(1) -} - -def doPromptForPassword(msg) { - if (System.console() == null) { - def ret = null - new SwingBuilder().edt { - dialog(modal: true, title: 'Enter password', alwaysOnTop: true, resizable: false, locationRelativeTo: null, pack: true, show: true) { - vbox { - label(text: msg) - def input = passwordField() - button(defaultButton: true, text: 'OK', actionPerformed: { - ret = input.password; - dispose(); - }) - } - } - } - if (!ret) { - throw new GradleException('User canceled build') - } - return new String(ret) - } else { - return System.console().readPassword('\n' + msg); - } -} - -def doGetConfigXml() { - def xml = file("src/main/res/xml/config.xml").getText() - // Disable namespace awareness since Cordova doesn't use them properly - return new XmlParser(false, false).parseText(xml) -} - -def doGetConfigPreference(name, defaultValue) { - name = name.toLowerCase() - def root = doGetConfigXml() - - def ret = defaultValue - root.preference.each { it -> - def attrName = it.attribute("name") - if (attrName && attrName.toLowerCase() == name) { - ret = it.attribute("value") - } - } - return ret -} - -// Properties exported here are visible to all plugins. -ext { - // These helpers are shared, but are not guaranteed to be stable / unchanged. - privateHelpers = {} - privateHelpers.getProjectTarget = { doGetProjectTarget() } - privateHelpers.findLatestInstalledBuildTools = { doFindLatestInstalledBuildTools('19.1.0') } - privateHelpers.extractIntFromManifest = { name -> doExtractIntFromManifest(name) } - privateHelpers.extractStringFromManifest = { name -> doExtractStringFromManifest(name) } - privateHelpers.promptForPassword = { msg -> doPromptForPassword(msg) } - privateHelpers.ensureValueExists = { filePath, props, key -> doEnsureValueExists(filePath, props, key) } - - // These helpers can be used by plugins / projects and will not change. - cdvHelpers = {} - // Returns a XmlParser for the config.xml. Added in 4.1.0. - cdvHelpers.getConfigXml = { doGetConfigXml() } - // Returns the value for the desired <preference>. Added in 4.1.0. - cdvHelpers.getConfigPreference = { name, defaultValue -> doGetConfigPreference(name, defaultValue) } -} - -buildscript { - repositories { - jcenter() - } - - dependencies { - classpath 'com.g00fy2:versioncompare:1.3.4@jar' - } -} diff --git a/ionic/platforms/android/CordovaLib/project.properties b/ionic/platforms/android/CordovaLib/project.properties deleted file mode 100644 index d051917468b558e142a51189dfc5145b73e2f354..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/CordovaLib/project.properties +++ /dev/null @@ -1,11 +0,0 @@ -# This file was originally created by the Android Tools, but is now -# used by cordova-android to manage the project configuration. - -# Indicates whether an apk should be generated for each density. -split.density=false - -# Project target. -target=android-29 -apk-configurations= -renderscript.opt.level=O0 -android.library=true diff --git a/ionic/platforms/android/CordovaLib/src/org/apache/cordova/AuthenticationToken.java b/ionic/platforms/android/CordovaLib/src/org/apache/cordova/AuthenticationToken.java deleted file mode 100644 index d3a231a0ba4b1799db0e5c74dcf0e2d8254558c4..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/CordovaLib/src/org/apache/cordova/AuthenticationToken.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*/ -package org.apache.cordova; - -/** - * The Class AuthenticationToken defines the userName and password to be used for authenticating a web resource - */ -public class AuthenticationToken { - private String userName; - private String password; - - /** - * Gets the user name. - * - * @return the user name - */ - public String getUserName() { - return userName; - } - - /** - * Sets the user name. - * - * @param userName - * the new user name - */ - public void setUserName(String userName) { - this.userName = userName; - } - - /** - * Gets the password. - * - * @return the password - */ - public String getPassword() { - return password; - } - - /** - * Sets the password. - * - * @param password - * the new password - */ - public void setPassword(String password) { - this.password = password; - } - - - - -} diff --git a/ionic/platforms/android/CordovaLib/src/org/apache/cordova/BuildHelper.java b/ionic/platforms/android/CordovaLib/src/org/apache/cordova/BuildHelper.java deleted file mode 100644 index 94fe96120b08bb39566ed20e92f336fdbdfbcb76..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/CordovaLib/src/org/apache/cordova/BuildHelper.java +++ /dev/null @@ -1,73 +0,0 @@ -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*/ - -package org.apache.cordova; - -/* - * This is a utility class that allows us to get the BuildConfig variable, which is required - * for the use of different providers. This is not guaranteed to work, and it's better for this - * to be set in the build step in config.xml - * - */ - -import android.app.Activity; -import android.content.Context; - -import java.lang.reflect.Field; - - -public class BuildHelper { - - - private static String TAG="BuildHelper"; - - /* - * This needs to be implemented if you wish to use the Camera Plugin or other plugins - * that read the Build Configuration. - * - * Thanks to Phil@Medtronic and Graham Borland for finding the answer and posting it to - * StackOverflow. This is annoying as hell! However, this method does not work with - * ProGuard, and you should use the config.xml to define the application_id - * - */ - - public static Object getBuildConfigValue(Context ctx, String key) - { - try - { - Class<?> clazz = Class.forName(ctx.getClass().getPackage().getName() + ".BuildConfig"); - Field field = clazz.getField(key); - return field.get(null); - } catch (ClassNotFoundException e) { - LOG.d(TAG, "Unable to get the BuildConfig, is this built with ANT?"); - e.printStackTrace(); - } catch (NoSuchFieldException e) { - LOG.d(TAG, key + " is not a valid field. Check your build.gradle"); - } catch (IllegalAccessException e) { - LOG.d(TAG, "Illegal Access Exception: Let's print a stack trace."); - e.printStackTrace(); - } catch (NullPointerException e) { - LOG.d(TAG, "Null Pointer Exception: Let's print a stack trace."); - e.printStackTrace(); - } - - return null; - } - -} \ No newline at end of file diff --git a/ionic/platforms/android/CordovaLib/src/org/apache/cordova/CallbackContext.java b/ionic/platforms/android/CordovaLib/src/org/apache/cordova/CallbackContext.java deleted file mode 100644 index 43363869dad577a579af806d9f0936ff1a8750c3..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/CordovaLib/src/org/apache/cordova/CallbackContext.java +++ /dev/null @@ -1,142 +0,0 @@ -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*/ -package org.apache.cordova; - -import org.json.JSONArray; - -import org.apache.cordova.CordovaWebView; -import org.apache.cordova.PluginResult; -import org.json.JSONObject; - -public class CallbackContext { - private static final String LOG_TAG = "CordovaPlugin"; - - private String callbackId; - private CordovaWebView webView; - protected boolean finished; - private int changingThreads; - - public CallbackContext(String callbackId, CordovaWebView webView) { - this.callbackId = callbackId; - this.webView = webView; - } - - public boolean isFinished() { - return finished; - } - - public boolean isChangingThreads() { - return changingThreads > 0; - } - - public String getCallbackId() { - return callbackId; - } - - public void sendPluginResult(PluginResult pluginResult) { - synchronized (this) { - if (finished) { - LOG.w(LOG_TAG, "Attempted to send a second callback for ID: " + callbackId + "\nResult was: " + pluginResult.getMessage()); - return; - } else { - finished = !pluginResult.getKeepCallback(); - } - } - webView.sendPluginResult(pluginResult, callbackId); - } - - /** - * Helper for success callbacks that just returns the Status.OK by default - * - * @param message The message to add to the success result. - */ - public void success(JSONObject message) { - sendPluginResult(new PluginResult(PluginResult.Status.OK, message)); - } - - /** - * Helper for success callbacks that just returns the Status.OK by default - * - * @param message The message to add to the success result. - */ - public void success(String message) { - sendPluginResult(new PluginResult(PluginResult.Status.OK, message)); - } - - /** - * Helper for success callbacks that just returns the Status.OK by default - * - * @param message The message to add to the success result. - */ - public void success(JSONArray message) { - sendPluginResult(new PluginResult(PluginResult.Status.OK, message)); - } - - /** - * Helper for success callbacks that just returns the Status.OK by default - * - * @param message The message to add to the success result. - */ - public void success(byte[] message) { - sendPluginResult(new PluginResult(PluginResult.Status.OK, message)); - } - - /** - * Helper for success callbacks that just returns the Status.OK by default - * - * @param message The message to add to the success result. - */ - public void success(int message) { - sendPluginResult(new PluginResult(PluginResult.Status.OK, message)); - } - - /** - * Helper for success callbacks that just returns the Status.OK by default - */ - public void success() { - sendPluginResult(new PluginResult(PluginResult.Status.OK)); - } - - /** - * Helper for error callbacks that just returns the Status.ERROR by default - * - * @param message The message to add to the error result. - */ - public void error(JSONObject message) { - sendPluginResult(new PluginResult(PluginResult.Status.ERROR, message)); - } - - /** - * Helper for error callbacks that just returns the Status.ERROR by default - * - * @param message The message to add to the error result. - */ - public void error(String message) { - sendPluginResult(new PluginResult(PluginResult.Status.ERROR, message)); - } - - /** - * Helper for error callbacks that just returns the Status.ERROR by default - * - * @param message The message to add to the error result. - */ - public void error(int message) { - sendPluginResult(new PluginResult(PluginResult.Status.ERROR, message)); - } -} diff --git a/ionic/platforms/android/CordovaLib/src/org/apache/cordova/CallbackMap.java b/ionic/platforms/android/CordovaLib/src/org/apache/cordova/CallbackMap.java deleted file mode 100644 index 050daa01fcc4e642d786a1e38335f28e08d436a7..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/CordovaLib/src/org/apache/cordova/CallbackMap.java +++ /dev/null @@ -1,65 +0,0 @@ -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*/ -package org.apache.cordova; - -import android.util.Pair; -import android.util.SparseArray; - -/** - * Provides a collection that maps unique request codes to CordovaPlugins and Integers. - * Used to ensure that when plugins make requests for runtime permissions, those requests do not - * collide with requests from other plugins that use the same request code value. - */ -public class CallbackMap { - private int currentCallbackId = 0; - private SparseArray<Pair<CordovaPlugin, Integer>> callbacks; - - public CallbackMap() { - this.callbacks = new SparseArray<Pair<CordovaPlugin, Integer>>(); - } - - /** - * Stores a CordovaPlugin and request code and returns a new unique request code to use - * in a permission request. - * - * @param receiver The plugin that is making the request - * @param requestCode The original request code used by the plugin - * @return A unique request code that can be used to retrieve this callback - * with getAndRemoveCallback() - */ - public synchronized int registerCallback(CordovaPlugin receiver, int requestCode) { - int mappedId = this.currentCallbackId++; - callbacks.put(mappedId, new Pair<CordovaPlugin, Integer>(receiver, requestCode)); - return mappedId; - } - - /** - * Retrieves and removes a callback stored in the map using the mapped request code - * obtained from registerCallback() - * - * @param mappedId The request code obtained from registerCallback() - * @return The CordovaPlugin and orignal request code that correspond to the - * given mappedCode - */ - public synchronized Pair<CordovaPlugin, Integer> getAndRemoveCallback(int mappedId) { - Pair<CordovaPlugin, Integer> callback = callbacks.get(mappedId); - callbacks.remove(mappedId); - return callback; - } -} diff --git a/ionic/platforms/android/CordovaLib/src/org/apache/cordova/Config.java b/ionic/platforms/android/CordovaLib/src/org/apache/cordova/Config.java deleted file mode 100644 index 073979599ebb4d394b008400769cc762ddbb46e8..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/CordovaLib/src/org/apache/cordova/Config.java +++ /dev/null @@ -1,71 +0,0 @@ -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*/ - -package org.apache.cordova; - -import java.util.List; - -import android.app.Activity; - -@Deprecated // Use Whitelist, CordovaPrefences, etc. directly. -public class Config { - private static final String TAG = "Config"; - - static ConfigXmlParser parser; - - private Config() { - } - - public static void init(Activity action) { - parser = new ConfigXmlParser(); - parser.parse(action); - //TODO: Add feature to bring this back. Some preferences should be overridden by intents, but not all - parser.getPreferences().setPreferencesBundle(action.getIntent().getExtras()); - } - - // Intended to be used for testing only; creates an empty configuration. - public static void init() { - if (parser == null) { - parser = new ConfigXmlParser(); - } - } - - public static String getStartUrl() { - if (parser == null) { - return "file:///android_asset/www/index.html"; - } - return parser.getLaunchUrl(); - } - - public static String getErrorUrl() { - return parser.getPreferences().getString("errorurl", null); - } - - public static List<PluginEntry> getPluginEntries() { - return parser.getPluginEntries(); - } - - public static CordovaPreferences getPreferences() { - return parser.getPreferences(); - } - - public static boolean isInitialized() { - return parser != null; - } -} diff --git a/ionic/platforms/android/CordovaLib/src/org/apache/cordova/ConfigXmlParser.java b/ionic/platforms/android/CordovaLib/src/org/apache/cordova/ConfigXmlParser.java deleted file mode 100644 index 01a97f2d0bed4cb8c939ddf103b59db4fb9c1b6a..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/CordovaLib/src/org/apache/cordova/ConfigXmlParser.java +++ /dev/null @@ -1,145 +0,0 @@ -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*/ - -package org.apache.cordova; - -import java.io.IOException; -import java.util.ArrayList; -import java.util.Locale; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - -import android.content.Context; - -public class ConfigXmlParser { - private static String TAG = "ConfigXmlParser"; - - private String launchUrl = "file:///android_asset/www/index.html"; - private CordovaPreferences prefs = new CordovaPreferences(); - private ArrayList<PluginEntry> pluginEntries = new ArrayList<PluginEntry>(20); - - public CordovaPreferences getPreferences() { - return prefs; - } - - public ArrayList<PluginEntry> getPluginEntries() { - return pluginEntries; - } - - public String getLaunchUrl() { - return launchUrl; - } - - public void parse(Context action) { - // First checking the class namespace for config.xml - int id = action.getResources().getIdentifier("config", "xml", action.getClass().getPackage().getName()); - if (id == 0) { - // If we couldn't find config.xml there, we'll look in the namespace from AndroidManifest.xml - id = action.getResources().getIdentifier("config", "xml", action.getPackageName()); - if (id == 0) { - LOG.e(TAG, "res/xml/config.xml is missing!"); - return; - } - } - parse(action.getResources().getXml(id)); - } - - boolean insideFeature = false; - String service = "", pluginClass = "", paramType = ""; - boolean onload = false; - - public void parse(XmlPullParser xml) { - int eventType = -1; - - while (eventType != XmlPullParser.END_DOCUMENT) { - if (eventType == XmlPullParser.START_TAG) { - handleStartTag(xml); - } - else if (eventType == XmlPullParser.END_TAG) - { - handleEndTag(xml); - } - try { - eventType = xml.next(); - } catch (XmlPullParserException e) { - e.printStackTrace(); - } catch (IOException e) { - e.printStackTrace(); - } - } - } - - public void handleStartTag(XmlPullParser xml) { - String strNode = xml.getName(); - if (strNode.equals("feature")) { - //Check for supported feature sets aka. plugins (Accelerometer, Geolocation, etc) - //Set the bit for reading params - insideFeature = true; - service = xml.getAttributeValue(null, "name"); - } - else if (insideFeature && strNode.equals("param")) { - paramType = xml.getAttributeValue(null, "name"); - if (paramType.equals("service")) // check if it is using the older service param - service = xml.getAttributeValue(null, "value"); - else if (paramType.equals("package") || paramType.equals("android-package")) - pluginClass = xml.getAttributeValue(null,"value"); - else if (paramType.equals("onload")) - onload = "true".equals(xml.getAttributeValue(null, "value")); - } - else if (strNode.equals("preference")) { - String name = xml.getAttributeValue(null, "name").toLowerCase(Locale.ENGLISH); - String value = xml.getAttributeValue(null, "value"); - prefs.set(name, value); - } - else if (strNode.equals("content")) { - String src = xml.getAttributeValue(null, "src"); - if (src != null) { - setStartUrl(src); - } - } - } - - public void handleEndTag(XmlPullParser xml) { - String strNode = xml.getName(); - if (strNode.equals("feature")) { - pluginEntries.add(new PluginEntry(service, pluginClass, onload)); - - service = ""; - pluginClass = ""; - insideFeature = false; - onload = false; - } - } - - private void setStartUrl(String src) { - Pattern schemeRegex = Pattern.compile("^[a-z-]+://"); - Matcher matcher = schemeRegex.matcher(src); - if (matcher.find()) { - launchUrl = src; - } else { - if (src.charAt(0) == '/') { - src = src.substring(1); - } - launchUrl = "file:///android_asset/www/" + src; - } - } -} diff --git a/ionic/platforms/android/CordovaLib/src/org/apache/cordova/CordovaActivity.java b/ionic/platforms/android/CordovaLib/src/org/apache/cordova/CordovaActivity.java deleted file mode 100755 index f2f5619e6d71cb12850a9383dc1f02d0e7755c5f..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/CordovaLib/src/org/apache/cordova/CordovaActivity.java +++ /dev/null @@ -1,521 +0,0 @@ -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*/ -package org.apache.cordova; - -import java.util.ArrayList; -import java.util.Locale; - -import org.json.JSONException; -import org.json.JSONObject; - -import android.app.Activity; -import android.app.AlertDialog; -import android.annotation.SuppressLint; -import android.content.DialogInterface; -import android.content.Intent; -import android.content.res.Configuration; -import android.graphics.Color; -import android.media.AudioManager; -import android.os.Build; -import android.os.Bundle; -import android.view.Menu; -import android.view.MenuItem; -import android.view.View; -import android.view.ViewGroup; -import android.view.Window; -import android.view.WindowManager; -import android.webkit.WebViewClient; -import android.widget.FrameLayout; - -/** - * This class is the main Android activity that represents the Cordova - * application. It should be extended by the user to load the specific - * html file that contains the application. - * - * As an example: - * - * <pre> - * package org.apache.cordova.examples; - * - * import android.os.Bundle; - * import org.apache.cordova.*; - * - * public class Example extends CordovaActivity { - * @Override - * public void onCreate(Bundle savedInstanceState) { - * super.onCreate(savedInstanceState); - * super.init(); - * // Load your application - * loadUrl(launchUrl); - * } - * } - * </pre> - * - * Cordova xml configuration: Cordova uses a configuration file at - * res/xml/config.xml to specify its settings. See "The config.xml File" - * guide in cordova-docs at http://cordova.apache.org/docs for the documentation - * for the configuration. The use of the set*Property() methods is - * deprecated in favor of the config.xml file. - * - */ -public class CordovaActivity extends Activity { - public static String TAG = "CordovaActivity"; - - // The webview for our app - protected CordovaWebView appView; - - private static int ACTIVITY_STARTING = 0; - private static int ACTIVITY_RUNNING = 1; - private static int ACTIVITY_EXITING = 2; - - // Keep app running when pause is received. (default = true) - // If true, then the JavaScript and native code continue to run in the background - // when another application (activity) is started. - protected boolean keepRunning = true; - - // Flag to keep immersive mode if set to fullscreen - protected boolean immersiveMode; - - // Read from config.xml: - protected CordovaPreferences preferences; - protected String launchUrl; - protected ArrayList<PluginEntry> pluginEntries; - protected CordovaInterfaceImpl cordovaInterface; - - /** - * Called when the activity is first created. - */ - @Override - public void onCreate(Bundle savedInstanceState) { - // need to activate preferences before super.onCreate to avoid "requestFeature() must be called before adding content" exception - loadConfig(); - - String logLevel = preferences.getString("loglevel", "ERROR"); - LOG.setLogLevel(logLevel); - - LOG.i(TAG, "Apache Cordova native platform version " + CordovaWebView.CORDOVA_VERSION + " is starting"); - LOG.d(TAG, "CordovaActivity.onCreate()"); - - if (!preferences.getBoolean("ShowTitle", false)) { - getWindow().requestFeature(Window.FEATURE_NO_TITLE); - } - - if (preferences.getBoolean("SetFullscreen", false)) { - LOG.d(TAG, "The SetFullscreen configuration is deprecated in favor of Fullscreen, and will be removed in a future version."); - preferences.set("Fullscreen", true); - } - if (preferences.getBoolean("Fullscreen", false)) { - // NOTE: use the FullscreenNotImmersive configuration key to set the activity in a REAL full screen - // (as was the case in previous cordova versions) - if (!preferences.getBoolean("FullscreenNotImmersive", false)) { - immersiveMode = true; - } else { - getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, - WindowManager.LayoutParams.FLAG_FULLSCREEN); - } - } else { - getWindow().setFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN, - WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN); - } - - super.onCreate(savedInstanceState); - - cordovaInterface = makeCordovaInterface(); - if (savedInstanceState != null) { - cordovaInterface.restoreInstanceState(savedInstanceState); - } - } - - protected void init() { - appView = makeWebView(); - createViews(); - if (!appView.isInitialized()) { - appView.init(cordovaInterface, pluginEntries, preferences); - } - cordovaInterface.onCordovaInit(appView.getPluginManager()); - - // Wire the hardware volume controls to control media if desired. - String volumePref = preferences.getString("DefaultVolumeStream", ""); - if ("media".equals(volumePref.toLowerCase(Locale.ENGLISH))) { - setVolumeControlStream(AudioManager.STREAM_MUSIC); - } - } - - @SuppressWarnings("deprecation") - protected void loadConfig() { - ConfigXmlParser parser = new ConfigXmlParser(); - parser.parse(this); - preferences = parser.getPreferences(); - preferences.setPreferencesBundle(getIntent().getExtras()); - launchUrl = parser.getLaunchUrl(); - pluginEntries = parser.getPluginEntries(); - Config.parser = parser; - } - - //Suppressing warnings in AndroidStudio - @SuppressWarnings({"deprecation", "ResourceType"}) - protected void createViews() { - //Why are we setting a constant as the ID? This should be investigated - appView.getView().setId(100); - appView.getView().setLayoutParams(new FrameLayout.LayoutParams( - ViewGroup.LayoutParams.MATCH_PARENT, - ViewGroup.LayoutParams.MATCH_PARENT)); - - setContentView(appView.getView()); - - if (preferences.contains("BackgroundColor")) { - try { - int backgroundColor = preferences.getInteger("BackgroundColor", Color.BLACK); - // Background of activity: - appView.getView().setBackgroundColor(backgroundColor); - } - catch (NumberFormatException e){ - e.printStackTrace(); - } - } - - appView.getView().requestFocusFromTouch(); - } - - /** - * Construct the default web view object. - * <p/> - * Override this to customize the webview that is used. - */ - protected CordovaWebView makeWebView() { - return new CordovaWebViewImpl(makeWebViewEngine()); - } - - protected CordovaWebViewEngine makeWebViewEngine() { - return CordovaWebViewImpl.createEngine(this, preferences); - } - - protected CordovaInterfaceImpl makeCordovaInterface() { - return new CordovaInterfaceImpl(this) { - @Override - public Object onMessage(String id, Object data) { - // Plumb this to CordovaActivity.onMessage for backwards compatibility - return CordovaActivity.this.onMessage(id, data); - } - }; - } - - /** - * Load the url into the webview. - */ - public void loadUrl(String url) { - if (appView == null) { - init(); - } - - // If keepRunning - this.keepRunning = preferences.getBoolean("KeepRunning", true); - - appView.loadUrlIntoView(url, true); - } - - /** - * Called when the system is about to start resuming a previous activity. - */ - @Override - protected void onPause() { - super.onPause(); - LOG.d(TAG, "Paused the activity."); - - if (this.appView != null) { - // CB-9382 If there is an activity that started for result and main activity is waiting for callback - // result, we shoudn't stop WebView Javascript timers, as activity for result might be using them - boolean keepRunning = this.keepRunning || this.cordovaInterface.activityResultCallback != null; - this.appView.handlePause(keepRunning); - } - } - - /** - * Called when the activity receives a new intent - */ - @Override - protected void onNewIntent(Intent intent) { - super.onNewIntent(intent); - //Forward to plugins - if (this.appView != null) - this.appView.onNewIntent(intent); - } - - /** - * Called when the activity will start interacting with the user. - */ - @Override - protected void onResume() { - super.onResume(); - LOG.d(TAG, "Resumed the activity."); - - if (this.appView == null) { - return; - } - if (! this.getWindow().getDecorView().hasFocus()) { - // Force window to have focus, so application always - // receive user input. Workaround for some devices (Samsung Galaxy Note 3 at least) - this.getWindow().getDecorView().requestFocus(); - } - - this.appView.handleResume(this.keepRunning); - } - - /** - * Called when the activity is no longer visible to the user. - */ - @Override - protected void onStop() { - super.onStop(); - LOG.d(TAG, "Stopped the activity."); - - if (this.appView == null) { - return; - } - this.appView.handleStop(); - } - - /** - * Called when the activity is becoming visible to the user. - */ - @Override - protected void onStart() { - super.onStart(); - LOG.d(TAG, "Started the activity."); - - if (this.appView == null) { - return; - } - this.appView.handleStart(); - } - - /** - * The final call you receive before your activity is destroyed. - */ - @Override - public void onDestroy() { - LOG.d(TAG, "CordovaActivity.onDestroy()"); - super.onDestroy(); - - if (this.appView != null) { - appView.handleDestroy(); - } - } - - /** - * Called when view focus is changed - */ - @SuppressLint("InlinedApi") - @Override - public void onWindowFocusChanged(boolean hasFocus) { - super.onWindowFocusChanged(hasFocus); - if (hasFocus && immersiveMode) { - final int uiOptions = View.SYSTEM_UI_FLAG_LAYOUT_STABLE - | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION - | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN - | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION - | View.SYSTEM_UI_FLAG_FULLSCREEN - | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY; - - getWindow().getDecorView().setSystemUiVisibility(uiOptions); - } - } - - @SuppressLint("NewApi") - @Override - public void startActivityForResult(Intent intent, int requestCode, Bundle options) { - // Capture requestCode here so that it is captured in the setActivityResultCallback() case. - cordovaInterface.setActivityResultRequestCode(requestCode); - super.startActivityForResult(intent, requestCode, options); - } - - /** - * Called when an activity you launched exits, giving you the requestCode you started it with, - * the resultCode it returned, and any additional data from it. - * - * @param requestCode The request code originally supplied to startActivityForResult(), - * allowing you to identify who this result came from. - * @param resultCode The integer result code returned by the child activity through its setResult(). - * @param intent An Intent, which can return result data to the caller (various data can be attached to Intent "extras"). - */ - @Override - protected void onActivityResult(int requestCode, int resultCode, Intent intent) { - LOG.d(TAG, "Incoming Result. Request code = " + requestCode); - super.onActivityResult(requestCode, resultCode, intent); - cordovaInterface.onActivityResult(requestCode, resultCode, intent); - } - - /** - * Report an error to the host application. These errors are unrecoverable (i.e. the main resource is unavailable). - * The errorCode parameter corresponds to one of the ERROR_* constants. - * - * @param errorCode The error code corresponding to an ERROR_* value. - * @param description A String describing the error. - * @param failingUrl The url that failed to load. - */ - public void onReceivedError(final int errorCode, final String description, final String failingUrl) { - final CordovaActivity me = this; - - // If errorUrl specified, then load it - final String errorUrl = preferences.getString("errorUrl", null); - if ((errorUrl != null) && (!failingUrl.equals(errorUrl)) && (appView != null)) { - // Load URL on UI thread - me.runOnUiThread(new Runnable() { - public void run() { - me.appView.showWebPage(errorUrl, false, true, null); - } - }); - } - // If not, then display error dialog - else { - final boolean exit = !(errorCode == WebViewClient.ERROR_HOST_LOOKUP); - me.runOnUiThread(new Runnable() { - public void run() { - if (exit) { - me.appView.getView().setVisibility(View.GONE); - me.displayError("Application Error", description + " (" + failingUrl + ")", "OK", exit); - } - } - }); - } - } - - /** - * Display an error dialog and optionally exit application. - */ - public void displayError(final String title, final String message, final String button, final boolean exit) { - final CordovaActivity me = this; - me.runOnUiThread(new Runnable() { - public void run() { - try { - AlertDialog.Builder dlg = new AlertDialog.Builder(me); - dlg.setMessage(message); - dlg.setTitle(title); - dlg.setCancelable(false); - dlg.setPositiveButton(button, - new AlertDialog.OnClickListener() { - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - if (exit) { - finish(); - } - } - }); - dlg.create(); - dlg.show(); - } catch (Exception e) { - finish(); - } - } - }); - } - - /* - * Hook in Cordova for menu plugins - */ - @Override - public boolean onCreateOptionsMenu(Menu menu) { - if (appView != null) { - appView.getPluginManager().postMessage("onCreateOptionsMenu", menu); - } - return super.onCreateOptionsMenu(menu); - } - - @Override - public boolean onPrepareOptionsMenu(Menu menu) { - if (appView != null) { - appView.getPluginManager().postMessage("onPrepareOptionsMenu", menu); - } - return true; - } - - @Override - public boolean onOptionsItemSelected(MenuItem item) { - if (appView != null) { - appView.getPluginManager().postMessage("onOptionsItemSelected", item); - } - return true; - } - - /** - * Called when a message is sent to plugin. - * - * @param id The message id - * @param data The message data - * @return Object or null - */ - public Object onMessage(String id, Object data) { - if ("onReceivedError".equals(id)) { - JSONObject d = (JSONObject) data; - try { - this.onReceivedError(d.getInt("errorCode"), d.getString("description"), d.getString("url")); - } catch (JSONException e) { - e.printStackTrace(); - } - } else if ("exit".equals(id)) { - finish(); - } - return null; - } - - protected void onSaveInstanceState(Bundle outState) { - cordovaInterface.onSaveInstanceState(outState); - super.onSaveInstanceState(outState); - } - - /** - * Called by the system when the device configuration changes while your activity is running. - * - * @param newConfig The new device configuration - */ - @Override - public void onConfigurationChanged(Configuration newConfig) { - super.onConfigurationChanged(newConfig); - if (this.appView == null) { - return; - } - PluginManager pm = this.appView.getPluginManager(); - if (pm != null) { - pm.onConfigurationChanged(newConfig); - } - } - - /** - * Called by the system when the user grants permissions - * - * @param requestCode - * @param permissions - * @param grantResults - */ - @Override - public void onRequestPermissionsResult(int requestCode, String permissions[], - int[] grantResults) { - try - { - cordovaInterface.onRequestPermissionResult(requestCode, permissions, grantResults); - } - catch (JSONException e) - { - LOG.d(TAG, "JSONException: Parameters fed into the method are not valid"); - e.printStackTrace(); - } - - } - -} diff --git a/ionic/platforms/android/CordovaLib/src/org/apache/cordova/CordovaArgs.java b/ionic/platforms/android/CordovaLib/src/org/apache/cordova/CordovaArgs.java deleted file mode 100644 index d40d26ebbf325936ce691b05edbc0780a46b9e82..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/CordovaLib/src/org/apache/cordova/CordovaArgs.java +++ /dev/null @@ -1,113 +0,0 @@ -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*/ -package org.apache.cordova; - -import org.json.JSONArray; -import org.json.JSONException; -import org.json.JSONObject; - -import android.util.Base64; - -public class CordovaArgs { - private JSONArray baseArgs; - - public CordovaArgs(JSONArray args) { - this.baseArgs = args; - } - - - // Pass through the basics to the base args. - public Object get(int index) throws JSONException { - return baseArgs.get(index); - } - - public boolean getBoolean(int index) throws JSONException { - return baseArgs.getBoolean(index); - } - - public double getDouble(int index) throws JSONException { - return baseArgs.getDouble(index); - } - - public int getInt(int index) throws JSONException { - return baseArgs.getInt(index); - } - - public JSONArray getJSONArray(int index) throws JSONException { - return baseArgs.getJSONArray(index); - } - - public JSONObject getJSONObject(int index) throws JSONException { - return baseArgs.getJSONObject(index); - } - - public long getLong(int index) throws JSONException { - return baseArgs.getLong(index); - } - - public String getString(int index) throws JSONException { - return baseArgs.getString(index); - } - - - public Object opt(int index) { - return baseArgs.opt(index); - } - - public boolean optBoolean(int index) { - return baseArgs.optBoolean(index); - } - - public double optDouble(int index) { - return baseArgs.optDouble(index); - } - - public int optInt(int index) { - return baseArgs.optInt(index); - } - - public JSONArray optJSONArray(int index) { - return baseArgs.optJSONArray(index); - } - - public JSONObject optJSONObject(int index) { - return baseArgs.optJSONObject(index); - } - - public long optLong(int index) { - return baseArgs.optLong(index); - } - - public String optString(int index) { - return baseArgs.optString(index); - } - - public boolean isNull(int index) { - return baseArgs.isNull(index); - } - - - // The interesting custom helpers. - public byte[] getArrayBuffer(int index) throws JSONException { - String encoded = baseArgs.getString(index); - return Base64.decode(encoded, Base64.DEFAULT); - } -} - - diff --git a/ionic/platforms/android/CordovaLib/src/org/apache/cordova/CordovaBridge.java b/ionic/platforms/android/CordovaLib/src/org/apache/cordova/CordovaBridge.java deleted file mode 100644 index 7416cd1932f8c635fa211219587e951a96ad9c96..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/CordovaLib/src/org/apache/cordova/CordovaBridge.java +++ /dev/null @@ -1,187 +0,0 @@ -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*/ -package org.apache.cordova; - -import android.annotation.SuppressLint; - -import java.security.SecureRandom; - -import org.json.JSONArray; -import org.json.JSONException; - -/** - * Contains APIs that the JS can call. All functions in here should also have - * an equivalent entry in CordovaChromeClient.java, and be added to - * cordova-js/lib/android/plugin/android/promptbasednativeapi.js - */ -public class CordovaBridge { - private static final String LOG_TAG = "CordovaBridge"; - private PluginManager pluginManager; - private NativeToJsMessageQueue jsMessageQueue; - private volatile int expectedBridgeSecret = -1; // written by UI thread, read by JS thread. - - public CordovaBridge(PluginManager pluginManager, NativeToJsMessageQueue jsMessageQueue) { - this.pluginManager = pluginManager; - this.jsMessageQueue = jsMessageQueue; - } - - public String jsExec(int bridgeSecret, String service, String action, String callbackId, String arguments) throws JSONException, IllegalAccessException { - if (!verifySecret("exec()", bridgeSecret)) { - return null; - } - // If the arguments weren't received, send a message back to JS. It will switch bridge modes and try again. See CB-2666. - // We send a message meant specifically for this case. It starts with "@" so no other message can be encoded into the same string. - if (arguments == null) { - return "@Null arguments."; - } - - jsMessageQueue.setPaused(true); - try { - // Tell the resourceApi what thread the JS is running on. - CordovaResourceApi.jsThread = Thread.currentThread(); - - pluginManager.exec(service, action, callbackId, arguments); - String ret = null; - if (!NativeToJsMessageQueue.DISABLE_EXEC_CHAINING) { - ret = jsMessageQueue.popAndEncode(false); - } - return ret; - } catch (Throwable e) { - e.printStackTrace(); - return ""; - } finally { - jsMessageQueue.setPaused(false); - } - } - - public void jsSetNativeToJsBridgeMode(int bridgeSecret, int value) throws IllegalAccessException { - if (!verifySecret("setNativeToJsBridgeMode()", bridgeSecret)) { - return; - } - jsMessageQueue.setBridgeMode(value); - } - - public String jsRetrieveJsMessages(int bridgeSecret, boolean fromOnlineEvent) throws IllegalAccessException { - if (!verifySecret("retrieveJsMessages()", bridgeSecret)) { - return null; - } - return jsMessageQueue.popAndEncode(fromOnlineEvent); - } - - private boolean verifySecret(String action, int bridgeSecret) throws IllegalAccessException { - if (!jsMessageQueue.isBridgeEnabled()) { - if (bridgeSecret == -1) { - LOG.d(LOG_TAG, action + " call made before bridge was enabled."); - } else { - LOG.d(LOG_TAG, "Ignoring " + action + " from previous page load."); - } - return false; - } - // Bridge secret wrong and bridge not due to it being from the previous page. - if (expectedBridgeSecret < 0 || bridgeSecret != expectedBridgeSecret) { - LOG.e(LOG_TAG, "Bridge access attempt with wrong secret token, possibly from malicious code. Disabling exec() bridge!"); - clearBridgeSecret(); - throw new IllegalAccessException(); - } - return true; - } - - /** Called on page transitions */ - void clearBridgeSecret() { - expectedBridgeSecret = -1; - } - - public boolean isSecretEstablished() { - return expectedBridgeSecret != -1; - } - - /** Called by cordova.js to initialize the bridge. */ - //On old Androids SecureRandom isn't really secure, this is the least of your problems if - //you're running Android 4.3 and below in 2017 - @SuppressLint("TrulyRandom") - int generateBridgeSecret() { - SecureRandom randGen = new SecureRandom(); - expectedBridgeSecret = randGen.nextInt(Integer.MAX_VALUE); - return expectedBridgeSecret; - } - - public void reset() { - jsMessageQueue.reset(); - clearBridgeSecret(); - } - - public String promptOnJsPrompt(String origin, String message, String defaultValue) { - if (defaultValue != null && defaultValue.startsWith("gap:")) { - JSONArray array; - try { - array = new JSONArray(defaultValue.substring(4)); - int bridgeSecret = array.getInt(0); - String service = array.getString(1); - String action = array.getString(2); - String callbackId = array.getString(3); - String r = jsExec(bridgeSecret, service, action, callbackId, message); - return r == null ? "" : r; - } catch (JSONException e) { - e.printStackTrace(); - } catch (IllegalAccessException e) { - e.printStackTrace(); - } - return ""; - } - // Sets the native->JS bridge mode. - else if (defaultValue != null && defaultValue.startsWith("gap_bridge_mode:")) { - try { - int bridgeSecret = Integer.parseInt(defaultValue.substring(16)); - jsSetNativeToJsBridgeMode(bridgeSecret, Integer.parseInt(message)); - } catch (NumberFormatException e){ - e.printStackTrace(); - } catch (IllegalAccessException e) { - e.printStackTrace(); - } - return ""; - } - // Polling for JavaScript messages - else if (defaultValue != null && defaultValue.startsWith("gap_poll:")) { - int bridgeSecret = Integer.parseInt(defaultValue.substring(9)); - try { - String r = jsRetrieveJsMessages(bridgeSecret, "1".equals(message)); - return r == null ? "" : r; - } catch (IllegalAccessException e) { - e.printStackTrace(); - } - return ""; - } - else if (defaultValue != null && defaultValue.startsWith("gap_init:")) { - // Protect against random iframes being able to talk through the bridge. - // Trust only pages which the app would have been allowed to navigate to anyway. - if (pluginManager.shouldAllowBridgeAccess(origin)) { - // Enable the bridge - int bridgeMode = Integer.parseInt(defaultValue.substring(9)); - jsMessageQueue.setBridgeMode(bridgeMode); - // Tell JS the bridge secret. - int secret = generateBridgeSecret(); - return ""+secret; - } else { - LOG.e(LOG_TAG, "gap_init called from restricted origin: " + origin); - } - return ""; - } - return null; - } -} diff --git a/ionic/platforms/android/CordovaLib/src/org/apache/cordova/CordovaClientCertRequest.java b/ionic/platforms/android/CordovaLib/src/org/apache/cordova/CordovaClientCertRequest.java deleted file mode 100644 index ad7c588a8df0984112dec599c8268543d77488dc..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/CordovaLib/src/org/apache/cordova/CordovaClientCertRequest.java +++ /dev/null @@ -1,105 +0,0 @@ -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*/ -package org.apache.cordova; - -import java.security.Principal; -import java.security.PrivateKey; -import java.security.cert.X509Certificate; - -import android.annotation.SuppressLint; -import android.webkit.ClientCertRequest; - -/** - * Implementation of the ICordovaClientCertRequest for Android WebView. - * - */ -public class CordovaClientCertRequest implements ICordovaClientCertRequest { - - private final ClientCertRequest request; - - public CordovaClientCertRequest(ClientCertRequest request) { - this.request = request; - } - - /** - * Cancel this request - */ - @SuppressLint("NewApi") - public void cancel() - { - request.cancel(); - } - - /* - * Returns the host name of the server requesting the certificate. - */ - @SuppressLint("NewApi") - public String getHost() - { - return request.getHost(); - } - - /* - * Returns the acceptable types of asymmetric keys (can be null). - */ - @SuppressLint("NewApi") - public String[] getKeyTypes() - { - return request.getKeyTypes(); - } - - /* - * Returns the port number of the server requesting the certificate. - */ - @SuppressLint("NewApi") - public int getPort() - { - return request.getPort(); - } - - /* - * Returns the acceptable certificate issuers for the certificate matching the private key (can be null). - */ - @SuppressLint("NewApi") - public Principal[] getPrincipals() - { - return request.getPrincipals(); - } - - /* - * Ignore the request for now. Do not remember user's choice. - */ - @SuppressLint("NewApi") - public void ignore() - { - request.ignore(); - } - - /* - * Proceed with the specified private key and client certificate chain. Remember the user's positive choice and use it for future requests. - * - * @param privateKey The privateKey - * @param chain The certificate chain - */ - @SuppressLint("NewApi") - public void proceed(PrivateKey privateKey, X509Certificate[] chain) - { - request.proceed(privateKey, chain); - } -} diff --git a/ionic/platforms/android/CordovaLib/src/org/apache/cordova/CordovaDialogsHelper.java b/ionic/platforms/android/CordovaLib/src/org/apache/cordova/CordovaDialogsHelper.java deleted file mode 100644 index a219c9922a9398ca183aded313274c8142cb1f14..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/CordovaLib/src/org/apache/cordova/CordovaDialogsHelper.java +++ /dev/null @@ -1,152 +0,0 @@ -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*/ -package org.apache.cordova; - -import android.app.AlertDialog; -import android.content.Context; -import android.content.DialogInterface; -import android.view.KeyEvent; -import android.widget.EditText; - -/** - * Helper class for WebViews to implement prompt(), alert(), confirm() dialogs. - */ -public class CordovaDialogsHelper { - private final Context context; - private AlertDialog lastHandledDialog; - - public CordovaDialogsHelper(Context context) { - this.context = context; - } - - public void showAlert(String message, final Result result) { - AlertDialog.Builder dlg = new AlertDialog.Builder(context); - dlg.setMessage(message); - dlg.setTitle("Alert"); - //Don't let alerts break the back button - dlg.setCancelable(true); - dlg.setPositiveButton(android.R.string.ok, - new AlertDialog.OnClickListener() { - public void onClick(DialogInterface dialog, int which) { - result.gotResult(true, null); - } - }); - dlg.setOnCancelListener( - new DialogInterface.OnCancelListener() { - public void onCancel(DialogInterface dialog) { - result.gotResult(false, null); - } - }); - dlg.setOnKeyListener(new DialogInterface.OnKeyListener() { - //DO NOTHING - public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) { - if (keyCode == KeyEvent.KEYCODE_BACK) - { - result.gotResult(true, null); - return false; - } - else - return true; - } - }); - lastHandledDialog = dlg.show(); - } - - public void showConfirm(String message, final Result result) { - AlertDialog.Builder dlg = new AlertDialog.Builder(context); - dlg.setMessage(message); - dlg.setTitle("Confirm"); - dlg.setCancelable(true); - dlg.setPositiveButton(android.R.string.ok, - new DialogInterface.OnClickListener() { - public void onClick(DialogInterface dialog, int which) { - result.gotResult(true, null); - } - }); - dlg.setNegativeButton(android.R.string.cancel, - new DialogInterface.OnClickListener() { - public void onClick(DialogInterface dialog, int which) { - result.gotResult(false, null); - } - }); - dlg.setOnCancelListener( - new DialogInterface.OnCancelListener() { - public void onCancel(DialogInterface dialog) { - result.gotResult(false, null); - } - }); - dlg.setOnKeyListener(new DialogInterface.OnKeyListener() { - //DO NOTHING - public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) { - if (keyCode == KeyEvent.KEYCODE_BACK) - { - result.gotResult(false, null); - return false; - } - else - return true; - } - }); - lastHandledDialog = dlg.show(); - } - - /** - * Tell the client to display a prompt dialog to the user. - * If the client returns true, WebView will assume that the client will - * handle the prompt dialog and call the appropriate JsPromptResult method. - * - * Since we are hacking prompts for our own purposes, we should not be using them for - * this purpose, perhaps we should hack console.log to do this instead! - */ - public void showPrompt(String message, String defaultValue, final Result result) { - // Returning false would also show a dialog, but the default one shows the origin (ugly). - AlertDialog.Builder dlg = new AlertDialog.Builder(context); - dlg.setMessage(message); - final EditText input = new EditText(context); - if (defaultValue != null) { - input.setText(defaultValue); - } - dlg.setView(input); - dlg.setCancelable(false); - dlg.setPositiveButton(android.R.string.ok, - new DialogInterface.OnClickListener() { - public void onClick(DialogInterface dialog, int which) { - String userText = input.getText().toString(); - result.gotResult(true, userText); - } - }); - dlg.setNegativeButton(android.R.string.cancel, - new DialogInterface.OnClickListener() { - public void onClick(DialogInterface dialog, int which) { - result.gotResult(false, null); - } - }); - lastHandledDialog = dlg.show(); - } - - public void destroyLastDialog(){ - if (lastHandledDialog != null){ - lastHandledDialog.cancel(); - } - } - - public interface Result { - public void gotResult(boolean success, String value); - } -} \ No newline at end of file diff --git a/ionic/platforms/android/CordovaLib/src/org/apache/cordova/CordovaHttpAuthHandler.java b/ionic/platforms/android/CordovaLib/src/org/apache/cordova/CordovaHttpAuthHandler.java deleted file mode 100644 index a2692f8c790838264881ca1469724e98e224ffa4..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/CordovaLib/src/org/apache/cordova/CordovaHttpAuthHandler.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*/ -package org.apache.cordova; - -import android.webkit.HttpAuthHandler; - -/** - * Specifies interface for HTTP auth handler object which is used to handle auth requests and - * specifying user credentials. - */ -public class CordovaHttpAuthHandler implements ICordovaHttpAuthHandler { - - private final HttpAuthHandler handler; - - public CordovaHttpAuthHandler(HttpAuthHandler handler) { - this.handler = handler; - } - - /** - * Instructs the WebView to cancel the authentication request. - */ - public void cancel () { - this.handler.cancel(); - } - - /** - * Instructs the WebView to proceed with the authentication with the given credentials. - * - * @param username - * @param password - */ - public void proceed (String username, String password) { - this.handler.proceed(username, password); - } -} diff --git a/ionic/platforms/android/CordovaLib/src/org/apache/cordova/CordovaInterface.java b/ionic/platforms/android/CordovaLib/src/org/apache/cordova/CordovaInterface.java deleted file mode 100755 index 7661b7421f587ade032c420e39e4c15a4e4e851f..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/CordovaLib/src/org/apache/cordova/CordovaInterface.java +++ /dev/null @@ -1,97 +0,0 @@ -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*/ -package org.apache.cordova; - -import android.app.Activity; -import android.content.Context; -import android.content.Intent; - -import org.apache.cordova.CordovaPlugin; - -import java.util.concurrent.ExecutorService; - -/** - * The Activity interface that is implemented by CordovaActivity. - * It is used to isolate plugin development, and remove dependency on entire Cordova library. - */ -public interface CordovaInterface { - - /** - * Launch an activity for which you would like a result when it finished. When this activity exits, - * your onActivityResult() method will be called. - * - * @param command The command object - * @param intent The intent to start - * @param requestCode The request code that is passed to callback to identify the activity - */ - abstract public void startActivityForResult(CordovaPlugin command, Intent intent, int requestCode); - - /** - * Set the plugin to be called when a sub-activity exits. - * - * @param plugin The plugin on which onActivityResult is to be called - */ - abstract public void setActivityResultCallback(CordovaPlugin plugin); - - /** - * Get the Android activity. - * - * If a custom engine lives outside of the Activity's lifecycle the return value may be null. - * - * @return the Activity - */ - public abstract Activity getActivity(); - - /** - * Get the Android context. - * - * @return the Context - */ - public Context getContext(); - - /** - * Called when a message is sent to plugin. - * - * @param id The message id - * @param data The message data - * @return Object or null - */ - public Object onMessage(String id, Object data); - - /** - * Returns a shared thread pool that can be used for background tasks. - */ - public ExecutorService getThreadPool(); - - /** - * Sends a permission request to the activity for one permission. - */ - public void requestPermission(CordovaPlugin plugin, int requestCode, String permission); - - /** - * Sends a permission request to the activity for a group of permissions - */ - public void requestPermissions(CordovaPlugin plugin, int requestCode, String [] permissions); - - /** - * Check for a permission. Returns true if the permission is granted, false otherwise. - */ - public boolean hasPermission(String permission); - -} diff --git a/ionic/platforms/android/CordovaLib/src/org/apache/cordova/CordovaInterfaceImpl.java b/ionic/platforms/android/CordovaLib/src/org/apache/cordova/CordovaInterfaceImpl.java deleted file mode 100644 index 9a6e9245f8909b471c574e6cb79b2ddb788c18d6..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/CordovaLib/src/org/apache/cordova/CordovaInterfaceImpl.java +++ /dev/null @@ -1,249 +0,0 @@ -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*/ - -package org.apache.cordova; - -import android.annotation.SuppressLint; -import android.app.Activity; -import android.content.Context; -import android.content.Intent; -import android.content.pm.PackageManager; -import android.os.Build; -import android.os.Bundle; -import android.util.Pair; - -import org.json.JSONException; -import org.json.JSONObject; - -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; - -/** - * Default implementation of CordovaInterface. - */ -public class CordovaInterfaceImpl implements CordovaInterface { - private static final String TAG = "CordovaInterfaceImpl"; - protected Activity activity; - protected ExecutorService threadPool; - protected PluginManager pluginManager; - - protected ActivityResultHolder savedResult; - protected CallbackMap permissionResultCallbacks; - protected CordovaPlugin activityResultCallback; - protected String initCallbackService; - protected int activityResultRequestCode; - protected boolean activityWasDestroyed = false; - protected Bundle savedPluginState; - - public CordovaInterfaceImpl(Activity activity) { - this(activity, Executors.newCachedThreadPool()); - } - - public CordovaInterfaceImpl(Activity activity, ExecutorService threadPool) { - this.activity = activity; - this.threadPool = threadPool; - this.permissionResultCallbacks = new CallbackMap(); - } - - @Override - public void startActivityForResult(CordovaPlugin command, Intent intent, int requestCode) { - setActivityResultCallback(command); - try { - activity.startActivityForResult(intent, requestCode); - } catch (RuntimeException e) { // E.g.: ActivityNotFoundException - activityResultCallback = null; - throw e; - } - } - - @Override - public void setActivityResultCallback(CordovaPlugin plugin) { - // Cancel any previously pending activity. - if (activityResultCallback != null) { - activityResultCallback.onActivityResult(activityResultRequestCode, Activity.RESULT_CANCELED, null); - } - activityResultCallback = plugin; - } - - @Override - public Activity getActivity() { - return activity; - } - - @Override - public Context getContext() { - return activity; - } - - @Override - public Object onMessage(String id, Object data) { - if ("exit".equals(id)) { - activity.finish(); - } - return null; - } - - @Override - public ExecutorService getThreadPool() { - return threadPool; - } - - /** - * Dispatches any pending onActivityResult callbacks and sends the resume event if the - * Activity was destroyed by the OS. - */ - public void onCordovaInit(PluginManager pluginManager) { - this.pluginManager = pluginManager; - if (savedResult != null) { - onActivityResult(savedResult.requestCode, savedResult.resultCode, savedResult.intent); - } else if(activityWasDestroyed) { - // If there was no Activity result, we still need to send out the resume event if the - // Activity was destroyed by the OS - activityWasDestroyed = false; - if(pluginManager != null) - { - CoreAndroid appPlugin = (CoreAndroid) pluginManager.getPlugin(CoreAndroid.PLUGIN_NAME); - if(appPlugin != null) { - JSONObject obj = new JSONObject(); - try { - obj.put("action", "resume"); - } catch (JSONException e) { - LOG.e(TAG, "Failed to create event message", e); - } - appPlugin.sendResumeEvent(new PluginResult(PluginResult.Status.OK, obj)); - } - } - - } - } - - /** - * Routes the result to the awaiting plugin. Returns false if no plugin was waiting. - */ - public boolean onActivityResult(int requestCode, int resultCode, Intent intent) { - CordovaPlugin callback = activityResultCallback; - if(callback == null && initCallbackService != null) { - // The application was restarted, but had defined an initial callback - // before being shut down. - savedResult = new ActivityResultHolder(requestCode, resultCode, intent); - if (pluginManager != null) { - callback = pluginManager.getPlugin(initCallbackService); - if(callback != null) { - callback.onRestoreStateForActivityResult(savedPluginState.getBundle(callback.getServiceName()), - new ResumeCallback(callback.getServiceName(), pluginManager)); - } - } - } - activityResultCallback = null; - - if (callback != null) { - LOG.d(TAG, "Sending activity result to plugin"); - initCallbackService = null; - savedResult = null; - callback.onActivityResult(requestCode, resultCode, intent); - return true; - } - LOG.w(TAG, "Got an activity result, but no plugin was registered to receive it" + (savedResult != null ? " yet!" : ".")); - return false; - } - - /** - * Call this from your startActivityForResult() overload. This is required to catch the case - * where plugins use Activity.startActivityForResult() + CordovaInterface.setActivityResultCallback() - * rather than CordovaInterface.startActivityForResult(). - */ - public void setActivityResultRequestCode(int requestCode) { - activityResultRequestCode = requestCode; - } - - /** - * Saves parameters for startActivityForResult(). - */ - public void onSaveInstanceState(Bundle outState) { - if (activityResultCallback != null) { - String serviceName = activityResultCallback.getServiceName(); - outState.putString("callbackService", serviceName); - } - if(pluginManager != null){ - outState.putBundle("plugin", pluginManager.onSaveInstanceState()); - } - - } - - /** - * Call this from onCreate() so that any saved startActivityForResult parameters will be restored. - */ - public void restoreInstanceState(Bundle savedInstanceState) { - initCallbackService = savedInstanceState.getString("callbackService"); - savedPluginState = savedInstanceState.getBundle("plugin"); - activityWasDestroyed = true; - } - - private static class ActivityResultHolder { - private int requestCode; - private int resultCode; - private Intent intent; - - public ActivityResultHolder(int requestCode, int resultCode, Intent intent) { - this.requestCode = requestCode; - this.resultCode = resultCode; - this.intent = intent; - } - } - - /** - * Called by the system when the user grants permissions - * - * @param requestCode - * @param permissions - * @param grantResults - */ - public void onRequestPermissionResult(int requestCode, String[] permissions, - int[] grantResults) throws JSONException { - Pair<CordovaPlugin, Integer> callback = permissionResultCallbacks.getAndRemoveCallback(requestCode); - if(callback != null) { - callback.first.onRequestPermissionResult(callback.second, permissions, grantResults); - } - } - - public void requestPermission(CordovaPlugin plugin, int requestCode, String permission) { - String[] permissions = new String [1]; - permissions[0] = permission; - requestPermissions(plugin, requestCode, permissions); - } - - @SuppressLint("NewApi") - public void requestPermissions(CordovaPlugin plugin, int requestCode, String [] permissions) { - int mappedRequestCode = permissionResultCallbacks.registerCallback(plugin, requestCode); - getActivity().requestPermissions(permissions, mappedRequestCode); - } - - public boolean hasPermission(String permission) - { - if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) - { - int result = activity.checkSelfPermission(permission); - return PackageManager.PERMISSION_GRANTED == result; - } - else - { - return true; - } - } -} diff --git a/ionic/platforms/android/CordovaLib/src/org/apache/cordova/CordovaPlugin.java b/ionic/platforms/android/CordovaLib/src/org/apache/cordova/CordovaPlugin.java deleted file mode 100644 index 41af1db79cc17a0a1e81beba61b462dee85e2fdb..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/CordovaLib/src/org/apache/cordova/CordovaPlugin.java +++ /dev/null @@ -1,422 +0,0 @@ -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*/ -package org.apache.cordova; - -import org.apache.cordova.CordovaArgs; -import org.apache.cordova.CordovaWebView; -import org.apache.cordova.CordovaInterface; -import org.apache.cordova.CallbackContext; -import org.json.JSONArray; -import org.json.JSONException; - -import android.content.Intent; -import android.content.pm.PackageManager; -import android.content.res.Configuration; -import android.net.Uri; -import android.os.Build; -import android.os.Bundle; - -import java.io.FileNotFoundException; -import java.io.IOException; - -/** - * Plugins must extend this class and override one of the execute methods. - */ -public class CordovaPlugin { - public CordovaWebView webView; - public CordovaInterface cordova; - protected CordovaPreferences preferences; - private String serviceName; - - /** - * Call this after constructing to initialize the plugin. - * Final because we want to be able to change args without breaking plugins. - */ - public final void privateInitialize(String serviceName, CordovaInterface cordova, CordovaWebView webView, CordovaPreferences preferences) { - assert this.cordova == null; - this.serviceName = serviceName; - this.cordova = cordova; - this.webView = webView; - this.preferences = preferences; - initialize(cordova, webView); - pluginInitialize(); - } - - /** - * Called after plugin construction and fields have been initialized. - * Prefer to use pluginInitialize instead since there is no value in - * having parameters on the initialize() function. - */ - public void initialize(CordovaInterface cordova, CordovaWebView webView) { - } - - /** - * Called after plugin construction and fields have been initialized. - */ - protected void pluginInitialize() { - } - - /** - * Returns the plugin's service name (what you'd use when calling pluginManger.getPlugin()) - */ - public String getServiceName() { - return serviceName; - } - - /** - * Executes the request. - * - * This method is called from the WebView thread. To do a non-trivial amount of work, use: - * cordova.getThreadPool().execute(runnable); - * - * To run on the UI thread, use: - * cordova.getActivity().runOnUiThread(runnable); - * - * @param action The action to execute. - * @param rawArgs The exec() arguments in JSON form. - * @param callbackContext The callback context used when calling back into JavaScript. - * @return Whether the action was valid. - */ - public boolean execute(String action, String rawArgs, CallbackContext callbackContext) throws JSONException { - JSONArray args = new JSONArray(rawArgs); - return execute(action, args, callbackContext); - } - - /** - * Executes the request. - * - * This method is called from the WebView thread. To do a non-trivial amount of work, use: - * cordova.getThreadPool().execute(runnable); - * - * To run on the UI thread, use: - * cordova.getActivity().runOnUiThread(runnable); - * - * @param action The action to execute. - * @param args The exec() arguments. - * @param callbackContext The callback context used when calling back into JavaScript. - * @return Whether the action was valid. - */ - public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException { - CordovaArgs cordovaArgs = new CordovaArgs(args); - return execute(action, cordovaArgs, callbackContext); - } - - /** - * Executes the request. - * - * This method is called from the WebView thread. To do a non-trivial amount of work, use: - * cordova.getThreadPool().execute(runnable); - * - * To run on the UI thread, use: - * cordova.getActivity().runOnUiThread(runnable); - * - * @param action The action to execute. - * @param args The exec() arguments, wrapped with some Cordova helpers. - * @param callbackContext The callback context used when calling back into JavaScript. - * @return Whether the action was valid. - */ - public boolean execute(String action, CordovaArgs args, CallbackContext callbackContext) throws JSONException { - return false; - } - - /** - * Called when the system is about to start resuming a previous activity. - * - * @param multitasking Flag indicating if multitasking is turned on for app - */ - public void onPause(boolean multitasking) { - } - - /** - * Called when the activity will start interacting with the user. - * - * @param multitasking Flag indicating if multitasking is turned on for app - */ - public void onResume(boolean multitasking) { - } - - /** - * Called when the activity is becoming visible to the user. - */ - public void onStart() { - } - - /** - * Called when the activity is no longer visible to the user. - */ - public void onStop() { - } - - /** - * Called when the activity receives a new intent. - */ - public void onNewIntent(Intent intent) { - } - - /** - * The final call you receive before your activity is destroyed. - */ - public void onDestroy() { - } - - /** - * Called when the Activity is being destroyed (e.g. if a plugin calls out to an external - * Activity and the OS kills the CordovaActivity in the background). The plugin should save its - * state in this method only if it is awaiting the result of an external Activity and needs - * to preserve some information so as to handle that result; onRestoreStateForActivityResult() - * will only be called if the plugin is the recipient of an Activity result - * - * @return Bundle containing the state of the plugin or null if state does not need to be saved - */ - public Bundle onSaveInstanceState() { - return null; - } - - /** - * Called when a plugin is the recipient of an Activity result after the CordovaActivity has - * been destroyed. The Bundle will be the same as the one the plugin returned in - * onSaveInstanceState() - * - * @param state Bundle containing the state of the plugin - * @param callbackContext Replacement Context to return the plugin result to - */ - public void onRestoreStateForActivityResult(Bundle state, CallbackContext callbackContext) {} - - /** - * Called when a message is sent to plugin. - * - * @param id The message id - * @param data The message data - * @return Object to stop propagation or null - */ - public Object onMessage(String id, Object data) { - return null; - } - - /** - * Called when an activity you launched exits, giving you the requestCode you started it with, - * the resultCode it returned, and any additional data from it. - * - * @param requestCode The request code originally supplied to startActivityForResult(), - * allowing you to identify who this result came from. - * @param resultCode The integer result code returned by the child activity through its setResult(). - * @param intent An Intent, which can return result data to the caller (various data can be - * attached to Intent "extras"). - */ - public void onActivityResult(int requestCode, int resultCode, Intent intent) { - } - - /** - * Hook for blocking the loading of external resources. - * - * This will be called when the WebView's shouldInterceptRequest wants to - * know whether to open a connection to an external resource. Return false - * to block the request: if any plugin returns false, Cordova will block - * the request. If all plugins return null, the default policy will be - * enforced. If at least one plugin returns true, and no plugins return - * false, then the request will proceed. - * - * Note that this only affects resource requests which are routed through - * WebViewClient.shouldInterceptRequest, such as XMLHttpRequest requests and - * img tag loads. WebSockets and media requests (such as <video> and <audio> - * tags) are not affected by this method. Use CSP headers to control access - * to such resources. - */ - public Boolean shouldAllowRequest(String url) { - return null; - } - - /** - * Hook for blocking navigation by the Cordova WebView. This applies both to top-level and - * iframe navigations. - * - * This will be called when the WebView's needs to know whether to navigate - * to a new page. Return false to block the navigation: if any plugin - * returns false, Cordova will block the navigation. If all plugins return - * null, the default policy will be enforced. It at least one plugin returns - * true, and no plugins return false, then the navigation will proceed. - */ - public Boolean shouldAllowNavigation(String url) { - return null; - } - - /** - * Hook for allowing page to call exec(). By default, this returns the result of - * shouldAllowNavigation(). It's generally unsafe to allow untrusted content to be loaded - * into a CordovaWebView, even within an iframe, so it's best not to touch this. - */ - public Boolean shouldAllowBridgeAccess(String url) { - return shouldAllowNavigation(url); - } - - /** - * Hook for blocking the launching of Intents by the Cordova application. - * - * This will be called when the WebView will not navigate to a page, but - * could launch an intent to handle the URL. Return false to block this: if - * any plugin returns false, Cordova will block the navigation. If all - * plugins return null, the default policy will be enforced. If at least one - * plugin returns true, and no plugins return false, then the URL will be - * opened. - */ - public Boolean shouldOpenExternalUrl(String url) { - return null; - } - - /** - * Allows plugins to handle a link being clicked. Return true here to cancel the navigation. - * - * @param url The URL that is trying to be loaded in the Cordova webview. - * @return Return true to prevent the URL from loading. Default is false. - */ - public boolean onOverrideUrlLoading(String url) { - return false; - } - - /** - * Hook for redirecting requests. Applies to WebView requests as well as requests made by plugins. - * To handle the request directly, return a URI in the form: - * - * cdvplugin://pluginId/... - * - * And implement handleOpenForRead(). - * To make this easier, use the toPluginUri() and fromPluginUri() helpers: - * - * public Uri remapUri(Uri uri) { return toPluginUri(uri); } - * - * public CordovaResourceApi.OpenForReadResult handleOpenForRead(Uri uri) throws IOException { - * Uri origUri = fromPluginUri(uri); - * ... - * } - */ - public Uri remapUri(Uri uri) { - return null; - } - - /** - * Called to handle CordovaResourceApi.openForRead() calls for a cdvplugin://pluginId/ URL. - * Should never return null. - * Added in cordova-android@4.0.0 - */ - public CordovaResourceApi.OpenForReadResult handleOpenForRead(Uri uri) throws IOException { - throw new FileNotFoundException("Plugin can't handle uri: " + uri); - } - - /** - * Refer to remapUri() - * Added in cordova-android@4.0.0 - */ - protected Uri toPluginUri(Uri origUri) { - return new Uri.Builder() - .scheme(CordovaResourceApi.PLUGIN_URI_SCHEME) - .authority(serviceName) - .appendQueryParameter("origUri", origUri.toString()) - .build(); - } - - /** - * Refer to remapUri() - * Added in cordova-android@4.0.0 - */ - protected Uri fromPluginUri(Uri pluginUri) { - return Uri.parse(pluginUri.getQueryParameter("origUri")); - } - - /** - * Called when the WebView does a top-level navigation or refreshes. - * - * Plugins should stop any long-running processes and clean up internal state. - * - * Does nothing by default. - */ - public void onReset() { - } - - /** - * Called when the system received an HTTP authentication request. Plugin can use - * the supplied HttpAuthHandler to process this auth challenge. - * - * @param view The WebView that is initiating the callback - * @param handler The HttpAuthHandler used to set the WebView's response - * @param host The host requiring authentication - * @param realm The realm for which authentication is required - * - * @return Returns True if plugin will resolve this auth challenge, otherwise False - * - */ - public boolean onReceivedHttpAuthRequest(CordovaWebView view, ICordovaHttpAuthHandler handler, String host, String realm) { - return false; - } - - /** - * Called when he system received an SSL client certificate request. Plugin can use - * the supplied ClientCertRequest to process this certificate challenge. - * - * @param view The WebView that is initiating the callback - * @param request The client certificate request - * - * @return Returns True if plugin will resolve this auth challenge, otherwise False - * - */ - public boolean onReceivedClientCertRequest(CordovaWebView view, ICordovaClientCertRequest request) { - return false; - } - - /** - * Called by the system when the device configuration changes while your activity is running. - * - * @param newConfig The new device configuration - */ - public void onConfigurationChanged(Configuration newConfig) { - } - - /** - * Called by the Plugin Manager when we need to actually request permissions - * - * @param requestCode Passed to the activity to track the request - * - * @return Returns the permission that was stored in the plugin - */ - - public void requestPermissions(int requestCode) { - } - - /* - * Called by the WebView implementation to check for geolocation permissions, can be used - * by other Java methods in the event that a plugin is using this as a dependency. - * - * @return Returns true if the plugin has all the permissions it needs to operate. - */ - - public boolean hasPermisssion() { - return true; - } - - /** - * Called by the system when the user grants permissions - * - * @param requestCode - * @param permissions - * @param grantResults - */ - public void onRequestPermissionResult(int requestCode, String[] permissions, - int[] grantResults) throws JSONException { - - } -} diff --git a/ionic/platforms/android/CordovaLib/src/org/apache/cordova/CordovaPreferences.java b/ionic/platforms/android/CordovaLib/src/org/apache/cordova/CordovaPreferences.java deleted file mode 100644 index 96c219c9e7be52d985e7c7e41ce9767124d19772..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/CordovaLib/src/org/apache/cordova/CordovaPreferences.java +++ /dev/null @@ -1,101 +0,0 @@ -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*/ - -package org.apache.cordova; - -import java.util.HashMap; -import java.util.Locale; -import java.util.Map; - -import org.apache.cordova.LOG; - -import android.app.Activity; -import android.os.Bundle; - -public class CordovaPreferences { - private HashMap<String, String> prefs = new HashMap<String, String>(20); - private Bundle preferencesBundleExtras; - - public void setPreferencesBundle(Bundle extras) { - preferencesBundleExtras = extras; - } - - public void set(String name, String value) { - prefs.put(name.toLowerCase(Locale.ENGLISH), value); - } - - public void set(String name, boolean value) { - set(name, "" + value); - } - - public void set(String name, int value) { - set(name, "" + value); - } - - public void set(String name, double value) { - set(name, "" + value); - } - - public Map<String, String> getAll() { - return prefs; - } - - public boolean getBoolean(String name, boolean defaultValue) { - name = name.toLowerCase(Locale.ENGLISH); - String value = prefs.get(name); - if (value != null) { - return Boolean.parseBoolean(value); - } - return defaultValue; - } - - // Added in 4.0.0 - public boolean contains(String name) { - return getString(name, null) != null; - } - - public int getInteger(String name, int defaultValue) { - name = name.toLowerCase(Locale.ENGLISH); - String value = prefs.get(name); - if (value != null) { - // Use Integer.decode() can't handle it if the highest bit is set. - return (int)(long)Long.decode(value); - } - return defaultValue; - } - - public double getDouble(String name, double defaultValue) { - name = name.toLowerCase(Locale.ENGLISH); - String value = prefs.get(name); - if (value != null) { - return Double.valueOf(value); - } - return defaultValue; - } - - public String getString(String name, String defaultValue) { - name = name.toLowerCase(Locale.ENGLISH); - String value = prefs.get(name); - if (value != null) { - return value; - } - return defaultValue; - } - -} diff --git a/ionic/platforms/android/CordovaLib/src/org/apache/cordova/CordovaResourceApi.java b/ionic/platforms/android/CordovaLib/src/org/apache/cordova/CordovaResourceApi.java deleted file mode 100644 index 8350ec278073f8d7aba09e7e4ce0b600e96f0c44..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/CordovaLib/src/org/apache/cordova/CordovaResourceApi.java +++ /dev/null @@ -1,472 +0,0 @@ -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. - */ -package org.apache.cordova; - -import android.content.ContentResolver; -import android.content.Context; -import android.content.res.AssetFileDescriptor; -import android.content.res.AssetManager; -import android.database.Cursor; -import android.net.Uri; -import android.os.Looper; -import android.util.Base64; -import android.webkit.MimeTypeMap; - -import java.io.ByteArrayInputStream; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; -import java.io.UnsupportedEncodingException; -import java.net.HttpURLConnection; -import java.net.URL; -import java.nio.channels.FileChannel; -import java.util.Locale; - -/** - * What this class provides: - * 1. Helpers for reading & writing to URLs. - * - E.g. handles assets, resources, content providers, files, data URIs, http[s] - * - E.g. Can be used to query for mime-type & content length. - * - * 2. To allow plugins to redirect URLs (via remapUrl). - * - All plugins should call remapUrl() on URLs they receive from JS *before* - * passing the URL onto other utility functions in this class. - * - For an example usage of this, refer to the org.apache.cordova.file plugin. - * - * Future Work: - * - Consider using a Cursor to query content URLs for their size (like the file plugin does). - * - Allow plugins to remapUri to "cdv-plugin://plugin-name/foo", which CordovaResourceApi - * would then delegate to pluginManager.getPlugin(plugin-name).openForRead(url) - * - Currently, plugins *can* do this by remapping to a data: URL, but it's inefficient - * for large payloads. - */ -public class CordovaResourceApi { - @SuppressWarnings("unused") - private static final String LOG_TAG = "CordovaResourceApi"; - - public static final int URI_TYPE_FILE = 0; - public static final int URI_TYPE_ASSET = 1; - public static final int URI_TYPE_CONTENT = 2; - public static final int URI_TYPE_RESOURCE = 3; - public static final int URI_TYPE_DATA = 4; - public static final int URI_TYPE_HTTP = 5; - public static final int URI_TYPE_HTTPS = 6; - public static final int URI_TYPE_PLUGIN = 7; - public static final int URI_TYPE_UNKNOWN = -1; - - public static final String PLUGIN_URI_SCHEME = "cdvplugin"; - - private static final String[] LOCAL_FILE_PROJECTION = { "_data" }; - - public static Thread jsThread; - - private final AssetManager assetManager; - private final ContentResolver contentResolver; - private final PluginManager pluginManager; - private boolean threadCheckingEnabled = true; - - - public CordovaResourceApi(Context context, PluginManager pluginManager) { - this.contentResolver = context.getContentResolver(); - this.assetManager = context.getAssets(); - this.pluginManager = pluginManager; - } - - public void setThreadCheckingEnabled(boolean value) { - threadCheckingEnabled = value; - } - - public boolean isThreadCheckingEnabled() { - return threadCheckingEnabled; - } - - - public static int getUriType(Uri uri) { - assertNonRelative(uri); - String scheme = uri.getScheme(); - if (ContentResolver.SCHEME_CONTENT.equalsIgnoreCase(scheme)) { - return URI_TYPE_CONTENT; - } - if (ContentResolver.SCHEME_ANDROID_RESOURCE.equalsIgnoreCase(scheme)) { - return URI_TYPE_RESOURCE; - } - if (ContentResolver.SCHEME_FILE.equalsIgnoreCase(scheme)) { - if (uri.getPath().startsWith("/android_asset/")) { - return URI_TYPE_ASSET; - } - return URI_TYPE_FILE; - } - if ("data".equalsIgnoreCase(scheme)) { - return URI_TYPE_DATA; - } - if ("http".equalsIgnoreCase(scheme)) { - return URI_TYPE_HTTP; - } - if ("https".equalsIgnoreCase(scheme)) { - return URI_TYPE_HTTPS; - } - if (PLUGIN_URI_SCHEME.equalsIgnoreCase(scheme)) { - return URI_TYPE_PLUGIN; - } - return URI_TYPE_UNKNOWN; - } - - public Uri remapUri(Uri uri) { - assertNonRelative(uri); - Uri pluginUri = pluginManager.remapUri(uri); - return pluginUri != null ? pluginUri : uri; - } - - public String remapPath(String path) { - return remapUri(Uri.fromFile(new File(path))).getPath(); - } - - /** - * Returns a File that points to the resource, or null if the resource - * is not on the local filesystem. - */ - public File mapUriToFile(Uri uri) { - assertBackgroundThread(); - switch (getUriType(uri)) { - case URI_TYPE_FILE: - return new File(uri.getPath()); - case URI_TYPE_CONTENT: { - Cursor cursor = contentResolver.query(uri, LOCAL_FILE_PROJECTION, null, null, null); - if (cursor != null) { - try { - int columnIndex = cursor.getColumnIndex(LOCAL_FILE_PROJECTION[0]); - if (columnIndex != -1 && cursor.getCount() > 0) { - cursor.moveToFirst(); - String realPath = cursor.getString(columnIndex); - if (realPath != null) { - return new File(realPath); - } - } - } finally { - cursor.close(); - } - } - } - } - return null; - } - - public String getMimeType(Uri uri) { - switch (getUriType(uri)) { - case URI_TYPE_FILE: - case URI_TYPE_ASSET: - return getMimeTypeFromPath(uri.getPath()); - case URI_TYPE_CONTENT: - case URI_TYPE_RESOURCE: - return contentResolver.getType(uri); - case URI_TYPE_DATA: { - return getDataUriMimeType(uri); - } - case URI_TYPE_HTTP: - case URI_TYPE_HTTPS: { - try { - HttpURLConnection conn = (HttpURLConnection)new URL(uri.toString()).openConnection(); - conn.setDoInput(false); - conn.setRequestMethod("HEAD"); - String mimeType = conn.getHeaderField("Content-Type"); - if (mimeType != null) { - mimeType = mimeType.split(";")[0]; - } - return mimeType; - } catch (IOException e) { - } - } - } - - return null; - } - - - //This already exists - private String getMimeTypeFromPath(String path) { - String extension = path; - int lastDot = extension.lastIndexOf('.'); - if (lastDot != -1) { - extension = extension.substring(lastDot + 1); - } - // Convert the URI string to lower case to ensure compatibility with MimeTypeMap (see CB-2185). - extension = extension.toLowerCase(Locale.getDefault()); - if (extension.equals("3ga")) { - return "audio/3gpp"; - } else if (extension.equals("js")) { - // Missing from the map :(. - return "text/javascript"; - } - return MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension); - } - - /** - * Opens a stream to the given URI, also providing the MIME type & length. - * @return Never returns null. - * @throws Throws an InvalidArgumentException for relative URIs. Relative URIs should be - * resolved before being passed into this function. - * @throws Throws an IOException if the URI cannot be opened. - * @throws Throws an IllegalStateException if called on a foreground thread. - */ - public OpenForReadResult openForRead(Uri uri) throws IOException { - return openForRead(uri, false); - } - - /** - * Opens a stream to the given URI, also providing the MIME type & length. - * @return Never returns null. - * @throws Throws an InvalidArgumentException for relative URIs. Relative URIs should be - * resolved before being passed into this function. - * @throws Throws an IOException if the URI cannot be opened. - * @throws Throws an IllegalStateException if called on a foreground thread and skipThreadCheck is false. - */ - public OpenForReadResult openForRead(Uri uri, boolean skipThreadCheck) throws IOException { - if (!skipThreadCheck) { - assertBackgroundThread(); - } - switch (getUriType(uri)) { - case URI_TYPE_FILE: { - FileInputStream inputStream = new FileInputStream(uri.getPath()); - String mimeType = getMimeTypeFromPath(uri.getPath()); - long length = inputStream.getChannel().size(); - return new OpenForReadResult(uri, inputStream, mimeType, length, null); - } - case URI_TYPE_ASSET: { - String assetPath = uri.getPath().substring(15); - AssetFileDescriptor assetFd = null; - InputStream inputStream; - long length = -1; - try { - assetFd = assetManager.openFd(assetPath); - inputStream = assetFd.createInputStream(); - length = assetFd.getLength(); - } catch (FileNotFoundException e) { - // Will occur if the file is compressed. - inputStream = assetManager.open(assetPath); - length = inputStream.available(); - } - String mimeType = getMimeTypeFromPath(assetPath); - return new OpenForReadResult(uri, inputStream, mimeType, length, assetFd); - } - case URI_TYPE_CONTENT: - case URI_TYPE_RESOURCE: { - String mimeType = contentResolver.getType(uri); - AssetFileDescriptor assetFd = contentResolver.openAssetFileDescriptor(uri, "r"); - InputStream inputStream = assetFd.createInputStream(); - long length = assetFd.getLength(); - return new OpenForReadResult(uri, inputStream, mimeType, length, assetFd); - } - case URI_TYPE_DATA: { - OpenForReadResult ret = readDataUri(uri); - if (ret == null) { - break; - } - return ret; - } - case URI_TYPE_HTTP: - case URI_TYPE_HTTPS: { - HttpURLConnection conn = (HttpURLConnection)new URL(uri.toString()).openConnection(); - conn.setDoInput(true); - String mimeType = conn.getHeaderField("Content-Type"); - if (mimeType != null) { - mimeType = mimeType.split(";")[0]; - } - int length = conn.getContentLength(); - InputStream inputStream = conn.getInputStream(); - return new OpenForReadResult(uri, inputStream, mimeType, length, null); - } - case URI_TYPE_PLUGIN: { - String pluginId = uri.getHost(); - CordovaPlugin plugin = pluginManager.getPlugin(pluginId); - if (plugin == null) { - throw new FileNotFoundException("Invalid plugin ID in URI: " + uri); - } - return plugin.handleOpenForRead(uri); - } - } - throw new FileNotFoundException("URI not supported by CordovaResourceApi: " + uri); - } - - public OutputStream openOutputStream(Uri uri) throws IOException { - return openOutputStream(uri, false); - } - - /** - * Opens a stream to the given URI. - * @return Never returns null. - * @throws Throws an InvalidArgumentException for relative URIs. Relative URIs should be - * resolved before being passed into this function. - * @throws Throws an IOException if the URI cannot be opened. - */ - public OutputStream openOutputStream(Uri uri, boolean append) throws IOException { - assertBackgroundThread(); - switch (getUriType(uri)) { - case URI_TYPE_FILE: { - File localFile = new File(uri.getPath()); - File parent = localFile.getParentFile(); - if (parent != null) { - parent.mkdirs(); - } - return new FileOutputStream(localFile, append); - } - case URI_TYPE_CONTENT: - case URI_TYPE_RESOURCE: { - AssetFileDescriptor assetFd = contentResolver.openAssetFileDescriptor(uri, append ? "wa" : "w"); - return assetFd.createOutputStream(); - } - } - throw new FileNotFoundException("URI not supported by CordovaResourceApi: " + uri); - } - - public HttpURLConnection createHttpConnection(Uri uri) throws IOException { - assertBackgroundThread(); - return (HttpURLConnection)new URL(uri.toString()).openConnection(); - } - - // Copies the input to the output in the most efficient manner possible. - // Closes both streams. - public void copyResource(OpenForReadResult input, OutputStream outputStream) throws IOException { - assertBackgroundThread(); - try { - InputStream inputStream = input.inputStream; - if (inputStream instanceof FileInputStream && outputStream instanceof FileOutputStream) { - FileChannel inChannel = ((FileInputStream)input.inputStream).getChannel(); - FileChannel outChannel = ((FileOutputStream)outputStream).getChannel(); - long offset = 0; - long length = input.length; - if (input.assetFd != null) { - offset = input.assetFd.getStartOffset(); - } - // transferFrom()'s 2nd arg is a relative position. Need to set the absolute - // position first. - inChannel.position(offset); - outChannel.transferFrom(inChannel, 0, length); - } else { - final int BUFFER_SIZE = 8192; - byte[] buffer = new byte[BUFFER_SIZE]; - - for (;;) { - int bytesRead = inputStream.read(buffer, 0, BUFFER_SIZE); - - if (bytesRead <= 0) { - break; - } - outputStream.write(buffer, 0, bytesRead); - } - } - } finally { - input.inputStream.close(); - if (outputStream != null) { - outputStream.close(); - } - } - } - - public void copyResource(Uri sourceUri, OutputStream outputStream) throws IOException { - copyResource(openForRead(sourceUri), outputStream); - } - - // Added in 3.5.0. - public void copyResource(Uri sourceUri, Uri dstUri) throws IOException { - copyResource(openForRead(sourceUri), openOutputStream(dstUri)); - } - - private void assertBackgroundThread() { - if (threadCheckingEnabled) { - Thread curThread = Thread.currentThread(); - if (curThread == Looper.getMainLooper().getThread()) { - throw new IllegalStateException("Do not perform IO operations on the UI thread. Use CordovaInterface.getThreadPool() instead."); - } - if (curThread == jsThread) { - throw new IllegalStateException("Tried to perform an IO operation on the WebCore thread. Use CordovaInterface.getThreadPool() instead."); - } - } - } - - private String getDataUriMimeType(Uri uri) { - String uriAsString = uri.getSchemeSpecificPart(); - int commaPos = uriAsString.indexOf(','); - if (commaPos == -1) { - return null; - } - String[] mimeParts = uriAsString.substring(0, commaPos).split(";"); - if (mimeParts.length > 0) { - return mimeParts[0]; - } - return null; - } - - private OpenForReadResult readDataUri(Uri uri) { - String uriAsString = uri.getSchemeSpecificPart(); - int commaPos = uriAsString.indexOf(','); - if (commaPos == -1) { - return null; - } - String[] mimeParts = uriAsString.substring(0, commaPos).split(";"); - String contentType = null; - boolean base64 = false; - if (mimeParts.length > 0) { - contentType = mimeParts[0]; - } - for (int i = 1; i < mimeParts.length; ++i) { - if ("base64".equalsIgnoreCase(mimeParts[i])) { - base64 = true; - } - } - String dataPartAsString = uriAsString.substring(commaPos + 1); - byte[] data; - if (base64) { - data = Base64.decode(dataPartAsString, Base64.DEFAULT); - } else { - try { - data = dataPartAsString.getBytes("UTF-8"); - } catch (UnsupportedEncodingException e) { - data = dataPartAsString.getBytes(); - } - } - InputStream inputStream = new ByteArrayInputStream(data); - return new OpenForReadResult(uri, inputStream, contentType, data.length, null); - } - - private static void assertNonRelative(Uri uri) { - if (!uri.isAbsolute()) { - throw new IllegalArgumentException("Relative URIs are not supported."); - } - } - - public static final class OpenForReadResult { - public final Uri uri; - public final InputStream inputStream; - public final String mimeType; - public final long length; - public final AssetFileDescriptor assetFd; - - public OpenForReadResult(Uri uri, InputStream inputStream, String mimeType, long length, AssetFileDescriptor assetFd) { - this.uri = uri; - this.inputStream = inputStream; - this.mimeType = mimeType; - this.length = length; - this.assetFd = assetFd; - } - } -} diff --git a/ionic/platforms/android/CordovaLib/src/org/apache/cordova/CordovaWebView.java b/ionic/platforms/android/CordovaLib/src/org/apache/cordova/CordovaWebView.java deleted file mode 100644 index 7ee8d2470950ecfacd9aff12b8ce5f4803ef2306..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/CordovaLib/src/org/apache/cordova/CordovaWebView.java +++ /dev/null @@ -1,142 +0,0 @@ -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - http://www.apache.org/licenses/LICENSE-2.0 - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*/ -package org.apache.cordova; - -import java.util.List; -import java.util.Map; - -import android.content.Context; -import android.content.Intent; -import android.view.View; -import android.webkit.WebChromeClient.CustomViewCallback; - -/** - * Main interface for interacting with a Cordova webview - implemented by CordovaWebViewImpl. - * This is an interface so that it can be easily mocked in tests. - * Methods may be added to this interface without a major version bump, as plugins & embedders - * are not expected to implement it. - */ -public interface CordovaWebView { - public static final String CORDOVA_VERSION = "9.0.0"; - - void init(CordovaInterface cordova, List<PluginEntry> pluginEntries, CordovaPreferences preferences); - - boolean isInitialized(); - - View getView(); - - void loadUrlIntoView(String url, boolean recreatePlugins); - - void stopLoading(); - - boolean canGoBack(); - - void clearCache(); - - /** Use parameter-less overload */ - @Deprecated - void clearCache(boolean b); - - void clearHistory(); - - boolean backHistory(); - - void handlePause(boolean keepRunning); - - void onNewIntent(Intent intent); - - void handleResume(boolean keepRunning); - - void handleStart(); - - void handleStop(); - - void handleDestroy(); - - /** - * Send JavaScript statement back to JavaScript. - * - * Deprecated (https://issues.apache.org/jira/browse/CB-6851) - * Instead of executing snippets of JS, you should use the exec bridge - * to create a Java->JS communication channel. - * To do this: - * 1. Within plugin.xml (to have your JS run before deviceready): - * <js-module><runs/></js-module> - * 2. Within your .js (call exec on start-up): - * require('cordova/channel').onCordovaReady.subscribe(function() { - * require('cordova/exec')(win, null, 'Plugin', 'method', []); - * function win(message) { - * ... process message from java here ... - * } - * }); - * 3. Within your .java: - * PluginResult dataResult = new PluginResult(PluginResult.Status.OK, CODE); - * dataResult.setKeepCallback(true); - * savedCallbackContext.sendPluginResult(dataResult); - */ - @Deprecated - void sendJavascript(String statememt); - - /** - * Load the specified URL in the Cordova webview or a new browser instance. - * - * NOTE: If openExternal is false, only whitelisted URLs can be loaded. - * - * @param url The url to load. - * @param openExternal Load url in browser instead of Cordova webview. - * @param clearHistory Clear the history stack, so new page becomes top of history - * @param params Parameters for new app - */ - void showWebPage(String url, boolean openExternal, boolean clearHistory, Map<String, Object> params); - - /** - * Deprecated in 4.0.0. Use your own View-toggling logic. - */ - @Deprecated - boolean isCustomViewShowing(); - - /** - * Deprecated in 4.0.0. Use your own View-toggling logic. - */ - @Deprecated - void showCustomView(View view, CustomViewCallback callback); - - /** - * Deprecated in 4.0.0. Use your own View-toggling logic. - */ - @Deprecated - void hideCustomView(); - - CordovaResourceApi getResourceApi(); - - void setButtonPlumbedToJs(int keyCode, boolean override); - boolean isButtonPlumbedToJs(int keyCode); - - void sendPluginResult(PluginResult cr, String callbackId); - - PluginManager getPluginManager(); - CordovaWebViewEngine getEngine(); - CordovaPreferences getPreferences(); - ICordovaCookieManager getCookieManager(); - - String getUrl(); - - // TODO: Work on deleting these by removing refs from plugins. - Context getContext(); - void loadUrl(String url); - Object postMessage(String id, Object data); -} diff --git a/ionic/platforms/android/CordovaLib/src/org/apache/cordova/CordovaWebViewEngine.java b/ionic/platforms/android/CordovaLib/src/org/apache/cordova/CordovaWebViewEngine.java deleted file mode 100644 index c8e5a55d2366179d4f9a87d38a9015d944abe685..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/CordovaLib/src/org/apache/cordova/CordovaWebViewEngine.java +++ /dev/null @@ -1,85 +0,0 @@ -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*/ -package org.apache.cordova; - -import android.view.KeyEvent; -import android.view.View; -import android.webkit.ValueCallback; - -/** - * Interface for all Cordova engines. - * No methods will be added to this class (in order to be compatible with existing engines). - * Instead, we will create a new interface: e.g. CordovaWebViewEngineV2 - */ -public interface CordovaWebViewEngine { - void init(CordovaWebView parentWebView, CordovaInterface cordova, Client client, - CordovaResourceApi resourceApi, PluginManager pluginManager, - NativeToJsMessageQueue nativeToJsMessageQueue); - - CordovaWebView getCordovaWebView(); - ICordovaCookieManager getCookieManager(); - View getView(); - - void loadUrl(String url, boolean clearNavigationStack); - - void stopLoading(); - - /** Return the currently loaded URL */ - String getUrl(); - - void clearCache(); - - /** After calling clearHistory(), canGoBack() should be false. */ - void clearHistory(); - - boolean canGoBack(); - - /** Returns whether a navigation occurred */ - boolean goBack(); - - /** Pauses / resumes the WebView's event loop. */ - void setPaused(boolean value); - - /** Clean up all resources associated with the WebView. */ - void destroy(); - - /** Add the evaulate Javascript method **/ - void evaluateJavascript(String js, ValueCallback<String> callback); - - /** - * Used to retrieve the associated CordovaWebView given a View without knowing the type of Engine. - * E.g. ((CordovaWebView.EngineView)activity.findViewById(android.R.id.webView)).getCordovaWebView(); - */ - public interface EngineView { - CordovaWebView getCordovaWebView(); - } - - /** - * Contains methods that an engine uses to communicate with the parent CordovaWebView. - * Methods may be added in future cordova versions, but never removed. - */ - public interface Client { - Boolean onDispatchKeyEvent(KeyEvent event); - void clearLoadTimeoutTimer(); - void onPageStarted(String newUrl); - void onReceivedError(int errorCode, String description, String failingUrl); - void onPageFinishedLoading(String url); - boolean onNavigationAttempt(String url); - } -} diff --git a/ionic/platforms/android/CordovaLib/src/org/apache/cordova/CordovaWebViewImpl.java b/ionic/platforms/android/CordovaLib/src/org/apache/cordova/CordovaWebViewImpl.java deleted file mode 100644 index a77502d6ef2b5817b88c0fb72a99540f04c1f913..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/CordovaLib/src/org/apache/cordova/CordovaWebViewImpl.java +++ /dev/null @@ -1,635 +0,0 @@ -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*/ -package org.apache.cordova; - -import android.annotation.SuppressLint; -import android.content.Context; -import android.content.Intent; -import android.net.Uri; -import android.view.Gravity; -import android.view.KeyEvent; -import android.view.View; -import android.view.ViewGroup; -import android.webkit.WebChromeClient; -import android.widget.FrameLayout; - -import org.apache.cordova.engine.SystemWebViewEngine; -import org.json.JSONException; -import org.json.JSONObject; - -import java.lang.reflect.Constructor; -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; - -/** - * Main class for interacting with a Cordova webview. Manages plugins, events, and a CordovaWebViewEngine. - * Class uses two-phase initialization. You must call init() before calling any other methods. - */ -public class CordovaWebViewImpl implements CordovaWebView { - - public static final String TAG = "CordovaWebViewImpl"; - - private PluginManager pluginManager; - - protected final CordovaWebViewEngine engine; - private CordovaInterface cordova; - - // Flag to track that a loadUrl timeout occurred - private int loadUrlTimeout = 0; - - private CordovaResourceApi resourceApi; - private CordovaPreferences preferences; - private CoreAndroid appPlugin; - private NativeToJsMessageQueue nativeToJsMessageQueue; - private EngineClient engineClient = new EngineClient(); - private boolean hasPausedEver; - - // The URL passed to loadUrl(), not necessarily the URL of the current page. - String loadedUrl; - - /** custom view created by the browser (a video player for example) */ - private View mCustomView; - private WebChromeClient.CustomViewCallback mCustomViewCallback; - - private Set<Integer> boundKeyCodes = new HashSet<Integer>(); - - public static CordovaWebViewEngine createEngine(Context context, CordovaPreferences preferences) { - String className = preferences.getString("webview", SystemWebViewEngine.class.getCanonicalName()); - try { - Class<?> webViewClass = Class.forName(className); - Constructor<?> constructor = webViewClass.getConstructor(Context.class, CordovaPreferences.class); - return (CordovaWebViewEngine) constructor.newInstance(context, preferences); - } catch (Exception e) { - throw new RuntimeException("Failed to create webview. ", e); - } - } - - public CordovaWebViewImpl(CordovaWebViewEngine cordovaWebViewEngine) { - this.engine = cordovaWebViewEngine; - } - - // Convenience method for when creating programmatically (not from Config.xml). - public void init(CordovaInterface cordova) { - init(cordova, new ArrayList<PluginEntry>(), new CordovaPreferences()); - } - - @SuppressLint("Assert") - @Override - public void init(CordovaInterface cordova, List<PluginEntry> pluginEntries, CordovaPreferences preferences) { - if (this.cordova != null) { - throw new IllegalStateException(); - } - this.cordova = cordova; - this.preferences = preferences; - pluginManager = new PluginManager(this, this.cordova, pluginEntries); - resourceApi = new CordovaResourceApi(engine.getView().getContext(), pluginManager); - nativeToJsMessageQueue = new NativeToJsMessageQueue(); - nativeToJsMessageQueue.addBridgeMode(new NativeToJsMessageQueue.NoOpBridgeMode()); - nativeToJsMessageQueue.addBridgeMode(new NativeToJsMessageQueue.LoadUrlBridgeMode(engine, cordova)); - - if (preferences.getBoolean("DisallowOverscroll", false)) { - engine.getView().setOverScrollMode(View.OVER_SCROLL_NEVER); - } - engine.init(this, cordova, engineClient, resourceApi, pluginManager, nativeToJsMessageQueue); - // This isn't enforced by the compiler, so assert here. - assert engine.getView() instanceof CordovaWebViewEngine.EngineView; - - pluginManager.addService(CoreAndroid.PLUGIN_NAME, "org.apache.cordova.CoreAndroid"); - pluginManager.init(); - - } - - @Override - public boolean isInitialized() { - return cordova != null; - } - - @Override - public void loadUrlIntoView(final String url, boolean recreatePlugins) { - LOG.d(TAG, ">>> loadUrl(" + url + ")"); - if (url.equals("about:blank") || url.startsWith("javascript:")) { - engine.loadUrl(url, false); - return; - } - - recreatePlugins = recreatePlugins || (loadedUrl == null); - - if (recreatePlugins) { - // Don't re-initialize on first load. - if (loadedUrl != null) { - appPlugin = null; - pluginManager.init(); - } - loadedUrl = url; - } - - // Create a timeout timer for loadUrl - final int currentLoadUrlTimeout = loadUrlTimeout; - final int loadUrlTimeoutValue = preferences.getInteger("LoadUrlTimeoutValue", 20000); - - // Timeout error method - final Runnable loadError = new Runnable() { - public void run() { - stopLoading(); - LOG.e(TAG, "CordovaWebView: TIMEOUT ERROR!"); - - // Handle other errors by passing them to the webview in JS - JSONObject data = new JSONObject(); - try { - data.put("errorCode", -6); - data.put("description", "The connection to the server was unsuccessful."); - data.put("url", url); - } catch (JSONException e) { - // Will never happen. - } - pluginManager.postMessage("onReceivedError", data); - } - }; - - // Timeout timer method - final Runnable timeoutCheck = new Runnable() { - public void run() { - try { - synchronized (this) { - wait(loadUrlTimeoutValue); - } - } catch (InterruptedException e) { - e.printStackTrace(); - } - - // If timeout, then stop loading and handle error - if (loadUrlTimeout == currentLoadUrlTimeout) { - cordova.getActivity().runOnUiThread(loadError); - } - } - }; - - final boolean _recreatePlugins = recreatePlugins; - cordova.getActivity().runOnUiThread(new Runnable() { - public void run() { - if (loadUrlTimeoutValue > 0) { - cordova.getThreadPool().execute(timeoutCheck); - } - engine.loadUrl(url, _recreatePlugins); - } - }); - } - - - @Override - public void loadUrl(String url) { - loadUrlIntoView(url, true); - } - - @Override - public void showWebPage(String url, boolean openExternal, boolean clearHistory, Map<String, Object> params) { - LOG.d(TAG, "showWebPage(%s, %b, %b, HashMap)", url, openExternal, clearHistory); - - // If clearing history - if (clearHistory) { - engine.clearHistory(); - } - - // If loading into our webview - if (!openExternal) { - // Make sure url is in whitelist - if (pluginManager.shouldAllowNavigation(url)) { - // TODO: What about params? - // Load new URL - loadUrlIntoView(url, true); - return; - } else { - LOG.w(TAG, "showWebPage: Refusing to load URL into webview since it is not in the <allow-navigation> whitelist. URL=" + url); - return; - } - } - if (!pluginManager.shouldOpenExternalUrl(url)) { - LOG.w(TAG, "showWebPage: Refusing to send intent for URL since it is not in the <allow-intent> whitelist. URL=" + url); - return; - } - try { - Intent intent = new Intent(Intent.ACTION_VIEW); - // To send an intent without CATEGORY_BROWSER, a custom plugin should be used. - intent.addCategory(Intent.CATEGORY_BROWSABLE); - Uri uri = Uri.parse(url); - // Omitting the MIME type for file: URLs causes "No Activity found to handle Intent". - // Adding the MIME type to http: URLs causes them to not be handled by the downloader. - if ("file".equals(uri.getScheme())) { - intent.setDataAndType(uri, resourceApi.getMimeType(uri)); - } else { - intent.setData(uri); - } - cordova.getActivity().startActivity(intent); - } catch (android.content.ActivityNotFoundException e) { - LOG.e(TAG, "Error loading url " + url, e); - } - } - - private static class WrapperView extends FrameLayout { - - private final CordovaWebViewEngine engine; - - public WrapperView(Context context, CordovaWebViewEngine engine) { - super(context); - this.engine = engine; - } - - @Override - public boolean dispatchKeyEvent(KeyEvent event) { - return engine.getView().dispatchKeyEvent(event); - } - } - - @Override - @Deprecated - public void showCustomView(View view, WebChromeClient.CustomViewCallback callback) { - // This code is adapted from the original Android Browser code, licensed under the Apache License, Version 2.0 - LOG.d(TAG, "showing Custom View"); - // if a view already exists then immediately terminate the new one - if (mCustomView != null) { - callback.onCustomViewHidden(); - return; - } - - WrapperView wrapperView = new WrapperView(getContext(), engine); - wrapperView.addView(view); - - // Store the view and its callback for later (to kill it properly) - mCustomView = wrapperView; - mCustomViewCallback = callback; - - // Add the custom view to its container. - ViewGroup parent = (ViewGroup) engine.getView().getParent(); - parent.addView(wrapperView, new FrameLayout.LayoutParams( - ViewGroup.LayoutParams.MATCH_PARENT, - ViewGroup.LayoutParams.MATCH_PARENT, - Gravity.CENTER)); - - // Hide the content view. - engine.getView().setVisibility(View.GONE); - - // Finally show the custom view container. - parent.setVisibility(View.VISIBLE); - parent.bringToFront(); - } - - @Override - @Deprecated - public void hideCustomView() { - // This code is adapted from the original Android Browser code, licensed under the Apache License, Version 2.0 - if (mCustomView == null) return; - LOG.d(TAG, "Hiding Custom View"); - - // Hide the custom view. - mCustomView.setVisibility(View.GONE); - - // Remove the custom view from its container. - ViewGroup parent = (ViewGroup) engine.getView().getParent(); - parent.removeView(mCustomView); - mCustomView = null; - mCustomViewCallback.onCustomViewHidden(); - - // Show the content view. - engine.getView().setVisibility(View.VISIBLE); - } - - @Override - @Deprecated - public boolean isCustomViewShowing() { - return mCustomView != null; - } - - @Override - @Deprecated - public void sendJavascript(String statement) { - nativeToJsMessageQueue.addJavaScript(statement); - } - - @Override - public void sendPluginResult(PluginResult cr, String callbackId) { - nativeToJsMessageQueue.addPluginResult(cr, callbackId); - } - - @Override - public PluginManager getPluginManager() { - return pluginManager; - } - @Override - public CordovaPreferences getPreferences() { - return preferences; - } - @Override - public ICordovaCookieManager getCookieManager() { - return engine.getCookieManager(); - } - @Override - public CordovaResourceApi getResourceApi() { - return resourceApi; - } - @Override - public CordovaWebViewEngine getEngine() { - return engine; - } - @Override - public View getView() { - return engine.getView(); - } - @Override - public Context getContext() { - return engine.getView().getContext(); - } - - private void sendJavascriptEvent(String event) { - if (appPlugin == null) { - appPlugin = (CoreAndroid)pluginManager.getPlugin(CoreAndroid.PLUGIN_NAME); - } - - if (appPlugin == null) { - LOG.w(TAG, "Unable to fire event without existing plugin"); - return; - } - appPlugin.fireJavascriptEvent(event); - } - - @Override - public void setButtonPlumbedToJs(int keyCode, boolean override) { - switch (keyCode) { - case KeyEvent.KEYCODE_VOLUME_DOWN: - case KeyEvent.KEYCODE_VOLUME_UP: - case KeyEvent.KEYCODE_BACK: - case KeyEvent.KEYCODE_MENU: - // TODO: Why are search and menu buttons handled separately? - if (override) { - boundKeyCodes.add(keyCode); - } else { - boundKeyCodes.remove(keyCode); - } - return; - default: - throw new IllegalArgumentException("Unsupported keycode: " + keyCode); - } - } - - @Override - public boolean isButtonPlumbedToJs(int keyCode) { - return boundKeyCodes.contains(keyCode); - } - - @Override - public Object postMessage(String id, Object data) { - return pluginManager.postMessage(id, data); - } - - // Engine method proxies: - @Override - public String getUrl() { - return engine.getUrl(); - } - - @Override - public void stopLoading() { - // Clear timeout flag - loadUrlTimeout++; - } - - @Override - public boolean canGoBack() { - return engine.canGoBack(); - } - - @Override - public void clearCache() { - engine.clearCache(); - } - - @Override - @Deprecated - public void clearCache(boolean b) { - engine.clearCache(); - } - - @Override - public void clearHistory() { - engine.clearHistory(); - } - - @Override - public boolean backHistory() { - return engine.goBack(); - } - - /////// LifeCycle methods /////// - @Override - public void onNewIntent(Intent intent) { - if (this.pluginManager != null) { - this.pluginManager.onNewIntent(intent); - } - } - @Override - public void handlePause(boolean keepRunning) { - if (!isInitialized()) { - return; - } - hasPausedEver = true; - pluginManager.onPause(keepRunning); - sendJavascriptEvent("pause"); - - // If app doesn't want to run in background - if (!keepRunning) { - // Pause JavaScript timers. This affects all webviews within the app! - engine.setPaused(true); - } - } - @Override - public void handleResume(boolean keepRunning) { - if (!isInitialized()) { - return; - } - - // Resume JavaScript timers. This affects all webviews within the app! - engine.setPaused(false); - this.pluginManager.onResume(keepRunning); - - // In order to match the behavior of the other platforms, we only send onResume after an - // onPause has occurred. The resume event might still be sent if the Activity was killed - // while waiting for the result of an external Activity once the result is obtained - if (hasPausedEver) { - sendJavascriptEvent("resume"); - } - } - @Override - public void handleStart() { - if (!isInitialized()) { - return; - } - pluginManager.onStart(); - } - @Override - public void handleStop() { - if (!isInitialized()) { - return; - } - pluginManager.onStop(); - } - @Override - public void handleDestroy() { - if (!isInitialized()) { - return; - } - // Cancel pending timeout timer. - loadUrlTimeout++; - - // Forward to plugins - this.pluginManager.onDestroy(); - - // TODO: about:blank is a bit special (and the default URL for new frames) - // We should use a blank data: url instead so it's more obvious - this.loadUrl("about:blank"); - - // TODO: Should not destroy webview until after about:blank is done loading. - engine.destroy(); - hideCustomView(); - } - - protected class EngineClient implements CordovaWebViewEngine.Client { - @Override - public void clearLoadTimeoutTimer() { - loadUrlTimeout++; - } - - @Override - public void onPageStarted(String newUrl) { - LOG.d(TAG, "onPageDidNavigate(" + newUrl + ")"); - boundKeyCodes.clear(); - pluginManager.onReset(); - pluginManager.postMessage("onPageStarted", newUrl); - } - - @Override - public void onReceivedError(int errorCode, String description, String failingUrl) { - clearLoadTimeoutTimer(); - JSONObject data = new JSONObject(); - try { - data.put("errorCode", errorCode); - data.put("description", description); - data.put("url", failingUrl); - } catch (JSONException e) { - e.printStackTrace(); - } - pluginManager.postMessage("onReceivedError", data); - } - - @Override - public void onPageFinishedLoading(String url) { - LOG.d(TAG, "onPageFinished(" + url + ")"); - - clearLoadTimeoutTimer(); - - // Broadcast message that page has loaded - pluginManager.postMessage("onPageFinished", url); - - // Make app visible after 2 sec in case there was a JS error and Cordova JS never initialized correctly - if (engine.getView().getVisibility() != View.VISIBLE) { - Thread t = new Thread(new Runnable() { - public void run() { - try { - Thread.sleep(2000); - cordova.getActivity().runOnUiThread(new Runnable() { - public void run() { - pluginManager.postMessage("spinner", "stop"); - } - }); - } catch (InterruptedException e) { - } - } - }); - t.start(); - } - - // Shutdown if blank loaded - if (url.equals("about:blank")) { - pluginManager.postMessage("exit", null); - } - } - - @Override - public Boolean onDispatchKeyEvent(KeyEvent event) { - int keyCode = event.getKeyCode(); - boolean isBackButton = keyCode == KeyEvent.KEYCODE_BACK; - if (event.getAction() == KeyEvent.ACTION_DOWN) { - if (isBackButton && mCustomView != null) { - return true; - } else if (boundKeyCodes.contains(keyCode)) { - return true; - } else if (isBackButton) { - return engine.canGoBack(); - } - } else if (event.getAction() == KeyEvent.ACTION_UP) { - if (isBackButton && mCustomView != null) { - hideCustomView(); - return true; - } else if (boundKeyCodes.contains(keyCode)) { - String eventName = null; - switch (keyCode) { - case KeyEvent.KEYCODE_VOLUME_DOWN: - eventName = "volumedownbutton"; - break; - case KeyEvent.KEYCODE_VOLUME_UP: - eventName = "volumeupbutton"; - break; - case KeyEvent.KEYCODE_SEARCH: - eventName = "searchbutton"; - break; - case KeyEvent.KEYCODE_MENU: - eventName = "menubutton"; - break; - case KeyEvent.KEYCODE_BACK: - eventName = "backbutton"; - break; - } - if (eventName != null) { - sendJavascriptEvent(eventName); - return true; - } - } else if (isBackButton) { - return engine.goBack(); - } - } - return null; - } - - @Override - public boolean onNavigationAttempt(String url) { - // Give plugins the chance to handle the url - if (pluginManager.onOverrideUrlLoading(url)) { - return true; - } else if (pluginManager.shouldAllowNavigation(url)) { - return false; - } else if (pluginManager.shouldOpenExternalUrl(url)) { - showWebPage(url, true, false, null); - return true; - } - LOG.w(TAG, "Blocked (possibly sub-frame) navigation to non-allowed URL: " + url); - return true; - } - } -} diff --git a/ionic/platforms/android/CordovaLib/src/org/apache/cordova/CoreAndroid.java b/ionic/platforms/android/CordovaLib/src/org/apache/cordova/CoreAndroid.java deleted file mode 100755 index 6ebdecb3a8d2424dade46b7f868457e79d23d260..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/CordovaLib/src/org/apache/cordova/CoreAndroid.java +++ /dev/null @@ -1,410 +0,0 @@ -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*/ - -package org.apache.cordova; - -import org.json.JSONArray; -import org.json.JSONException; -import org.json.JSONObject; - -import android.content.BroadcastReceiver; -import android.content.Context; -import android.content.Intent; -import android.content.IntentFilter; -import android.telephony.TelephonyManager; -import android.view.KeyEvent; - -import java.lang.reflect.Field; -import java.util.HashMap; - -/** - * This class exposes methods in Cordova that can be called from JavaScript. - */ -public class CoreAndroid extends CordovaPlugin { - - public static final String PLUGIN_NAME = "CoreAndroid"; - protected static final String TAG = "CordovaApp"; - private BroadcastReceiver telephonyReceiver; - private CallbackContext messageChannel; - private PluginResult pendingResume; - private PluginResult pendingPause; - private final Object messageChannelLock = new Object(); - - /** - * Send an event to be fired on the Javascript side. - * - * @param action The name of the event to be fired - */ - public void fireJavascriptEvent(String action) { - sendEventMessage(action); - } - - /** - * Sets the context of the Command. This can then be used to do things like - * get file paths associated with the Activity. - */ - @Override - public void pluginInitialize() { - this.initTelephonyReceiver(); - } - - /** - * Executes the request and returns PluginResult. - * - * @param action The action to execute. - * @param args JSONArry of arguments for the plugin. - * @param callbackContext The callback context from which we were invoked. - * @return A PluginResult object with a status and message. - */ - public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException { - PluginResult.Status status = PluginResult.Status.OK; - String result = ""; - - try { - if (action.equals("clearCache")) { - this.clearCache(); - } - else if (action.equals("show")) { - // This gets called from JavaScript onCordovaReady to show the webview. - // I recommend we change the name of the Message as spinner/stop is not - // indicative of what this actually does (shows the webview). - cordova.getActivity().runOnUiThread(new Runnable() { - public void run() { - webView.getPluginManager().postMessage("spinner", "stop"); - } - }); - } - else if (action.equals("loadUrl")) { - this.loadUrl(args.getString(0), args.optJSONObject(1)); - } - else if (action.equals("cancelLoadUrl")) { - //this.cancelLoadUrl(); - } - else if (action.equals("clearHistory")) { - this.clearHistory(); - } - else if (action.equals("backHistory")) { - this.backHistory(); - } - else if (action.equals("overrideButton")) { - this.overrideButton(args.getString(0), args.getBoolean(1)); - } - else if (action.equals("overrideBackbutton")) { - this.overrideBackbutton(args.getBoolean(0)); - } - else if (action.equals("exitApp")) { - this.exitApp(); - } - else if (action.equals("messageChannel")) { - synchronized(messageChannelLock) { - messageChannel = callbackContext; - if (pendingPause != null) { - sendEventMessage(pendingPause); - pendingPause = null; - } - if (pendingResume != null) { - sendEventMessage(pendingResume); - pendingResume = null; - } - } - return true; - } - - callbackContext.sendPluginResult(new PluginResult(status, result)); - return true; - } catch (JSONException e) { - callbackContext.sendPluginResult(new PluginResult(PluginResult.Status.JSON_EXCEPTION)); - return false; - } - } - - //-------------------------------------------------------------------------- - // LOCAL METHODS - //-------------------------------------------------------------------------- - - /** - * Clear the resource cache. - */ - public void clearCache() { - cordova.getActivity().runOnUiThread(new Runnable() { - public void run() { - webView.clearCache(); - } - }); - } - - /** - * Load the url into the webview. - * - * @param url - * @param props Properties that can be passed in to the Cordova activity (i.e. loadingDialog, wait, ...) - * @throws JSONException - */ - public void loadUrl(String url, JSONObject props) throws JSONException { - LOG.d("App", "App.loadUrl("+url+","+props+")"); - int wait = 0; - boolean openExternal = false; - boolean clearHistory = false; - - // If there are properties, then set them on the Activity - HashMap<String, Object> params = new HashMap<String, Object>(); - if (props != null) { - JSONArray keys = props.names(); - for (int i = 0; i < keys.length(); i++) { - String key = keys.getString(i); - if (key.equals("wait")) { - wait = props.getInt(key); - } - else if (key.equalsIgnoreCase("openexternal")) { - openExternal = props.getBoolean(key); - } - else if (key.equalsIgnoreCase("clearhistory")) { - clearHistory = props.getBoolean(key); - } - else { - Object value = props.get(key); - if (value == null) { - - } - else if (value.getClass().equals(String.class)) { - params.put(key, (String)value); - } - else if (value.getClass().equals(Boolean.class)) { - params.put(key, (Boolean)value); - } - else if (value.getClass().equals(Integer.class)) { - params.put(key, (Integer)value); - } - } - } - } - - // If wait property, then delay loading - - if (wait > 0) { - try { - synchronized(this) { - this.wait(wait); - } - } catch (InterruptedException e) { - e.printStackTrace(); - } - } - this.webView.showWebPage(url, openExternal, clearHistory, params); - } - - /** - * Clear page history for the app. - */ - public void clearHistory() { - cordova.getActivity().runOnUiThread(new Runnable() { - public void run() { - webView.clearHistory(); - } - }); - } - - /** - * Go to previous page displayed. - * This is the same as pressing the backbutton on Android device. - */ - public void backHistory() { - cordova.getActivity().runOnUiThread(new Runnable() { - public void run() { - webView.backHistory(); - } - }); - } - - /** - * Override the default behavior of the Android back button. - * If overridden, when the back button is pressed, the "backKeyDown" JavaScript event will be fired. - * - * @param override T=override, F=cancel override - */ - public void overrideBackbutton(boolean override) { - LOG.i("App", "WARNING: Back Button Default Behavior will be overridden. The backbutton event will be fired!"); - webView.setButtonPlumbedToJs(KeyEvent.KEYCODE_BACK, override); - } - - /** - * Override the default behavior of the Android volume buttons. - * If overridden, when the volume button is pressed, the "volume[up|down]button" JavaScript event will be fired. - * - * @param button volumeup, volumedown - * @param override T=override, F=cancel override - */ - public void overrideButton(String button, boolean override) { - LOG.i("App", "WARNING: Volume Button Default Behavior will be overridden. The volume event will be fired!"); - if (button.equals("volumeup")) { - webView.setButtonPlumbedToJs(KeyEvent.KEYCODE_VOLUME_UP, override); - } - else if (button.equals("volumedown")) { - webView.setButtonPlumbedToJs(KeyEvent.KEYCODE_VOLUME_DOWN, override); - } - else if (button.equals("menubutton")) { - webView.setButtonPlumbedToJs(KeyEvent.KEYCODE_MENU, override); - } - } - - /** - * Return whether the Android back button is overridden by the user. - * - * @return boolean - */ - public boolean isBackbuttonOverridden() { - return webView.isButtonPlumbedToJs(KeyEvent.KEYCODE_BACK); - } - - /** - * Exit the Android application. - */ - public void exitApp() { - this.webView.getPluginManager().postMessage("exit", null); - } - - - /** - * Listen for telephony events: RINGING, OFFHOOK and IDLE - * Send these events to all plugins using - * CordovaActivity.onMessage("telephone", "ringing" | "offhook" | "idle") - */ - private void initTelephonyReceiver() { - IntentFilter intentFilter = new IntentFilter(); - intentFilter.addAction(TelephonyManager.ACTION_PHONE_STATE_CHANGED); - //final CordovaInterface mycordova = this.cordova; - this.telephonyReceiver = new BroadcastReceiver() { - - @Override - public void onReceive(Context context, Intent intent) { - - // If state has changed - if ((intent != null) && intent.getAction().equals(TelephonyManager.ACTION_PHONE_STATE_CHANGED)) { - if (intent.hasExtra(TelephonyManager.EXTRA_STATE)) { - String extraData = intent.getStringExtra(TelephonyManager.EXTRA_STATE); - if (extraData.equals(TelephonyManager.EXTRA_STATE_RINGING)) { - LOG.i(TAG, "Telephone RINGING"); - webView.getPluginManager().postMessage("telephone", "ringing"); - } - else if (extraData.equals(TelephonyManager.EXTRA_STATE_OFFHOOK)) { - LOG.i(TAG, "Telephone OFFHOOK"); - webView.getPluginManager().postMessage("telephone", "offhook"); - } - else if (extraData.equals(TelephonyManager.EXTRA_STATE_IDLE)) { - LOG.i(TAG, "Telephone IDLE"); - webView.getPluginManager().postMessage("telephone", "idle"); - } - } - } - } - }; - - // Register the receiver - webView.getContext().registerReceiver(this.telephonyReceiver, intentFilter); - } - - private void sendEventMessage(String action) { - JSONObject obj = new JSONObject(); - try { - obj.put("action", action); - } catch (JSONException e) { - LOG.e(TAG, "Failed to create event message", e); - } - PluginResult result = new PluginResult(PluginResult.Status.OK, obj); - - if (messageChannel == null) { - LOG.i(TAG, "Request to send event before messageChannel initialised: " + action); - if ("pause".equals(action)) { - pendingPause = result; - } else if ("resume".equals(action)) { - // When starting normally onPause then onResume is called - pendingPause = null; - } - } else { - sendEventMessage(result); - } - } - - private void sendEventMessage(PluginResult payload) { - payload.setKeepCallback(true); - if (messageChannel != null) { - messageChannel.sendPluginResult(payload); - } - } - - /* - * Unregister the receiver - * - */ - public void onDestroy() - { - webView.getContext().unregisterReceiver(this.telephonyReceiver); - } - - /** - * Used to send the resume event in the case that the Activity is destroyed by the OS - * - * @param resumeEvent PluginResult containing the payload for the resume event to be fired - */ - public void sendResumeEvent(PluginResult resumeEvent) { - // This operation must be synchronized because plugin results that trigger resume - // events can be processed asynchronously - synchronized(messageChannelLock) { - if (messageChannel != null) { - sendEventMessage(resumeEvent); - } else { - // Might get called before the page loads, so we need to store it until the - // messageChannel gets created - this.pendingResume = resumeEvent; - } - } - } - - /* - * This needs to be implemented if you wish to use the Camera Plugin or other plugins - * that read the Build Configuration. - * - * Thanks to Phil@Medtronic and Graham Borland for finding the answer and posting it to - * StackOverflow. This is annoying as hell! - * - */ - - public static Object getBuildConfigValue(Context ctx, String key) - { - try - { - Class<?> clazz = Class.forName(ctx.getClass().getPackage().getName() + ".BuildConfig"); - Field field = clazz.getField(key); - return field.get(null); - } catch (ClassNotFoundException e) { - LOG.d(TAG, "Unable to get the BuildConfig, is this built with ANT?"); - e.printStackTrace(); - } catch (NoSuchFieldException e) { - LOG.d(TAG, key + " is not a valid field. Check your build.gradle"); - } catch (IllegalAccessException e) { - LOG.d(TAG, "Illegal Access Exception: Let's print a stack trace."); - e.printStackTrace(); - } catch (NullPointerException e) { - LOG.d(TAG, "Null Pointer Exception: Let's print a stack trace."); - e.printStackTrace(); - } - - return null; - } -} diff --git a/ionic/platforms/android/CordovaLib/src/org/apache/cordova/ExposedJsApi.java b/ionic/platforms/android/CordovaLib/src/org/apache/cordova/ExposedJsApi.java deleted file mode 100644 index acc65c6fcf6692e6a07823f14ca1f59761278079..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/CordovaLib/src/org/apache/cordova/ExposedJsApi.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*/ - -package org.apache.cordova; - -import org.json.JSONException; - -/* - * Any exposed Javascript API MUST implement these three things! - */ -public interface ExposedJsApi { - public String exec(int bridgeSecret, String service, String action, String callbackId, String arguments) throws JSONException, IllegalAccessException; - public void setNativeToJsBridgeMode(int bridgeSecret, int value) throws IllegalAccessException; - public String retrieveJsMessages(int bridgeSecret, boolean fromOnlineEvent) throws IllegalAccessException; -} diff --git a/ionic/platforms/android/CordovaLib/src/org/apache/cordova/ICordovaClientCertRequest.java b/ionic/platforms/android/CordovaLib/src/org/apache/cordova/ICordovaClientCertRequest.java deleted file mode 100644 index 1417a156c6a3e19b13c841facad3060313f90bd3..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/CordovaLib/src/org/apache/cordova/ICordovaClientCertRequest.java +++ /dev/null @@ -1,66 +0,0 @@ -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*/ -package org.apache.cordova; - -import java.security.Principal; -import java.security.PrivateKey; -import java.security.cert.X509Certificate; - -/** - * Specifies interface for handling certificate requests. - */ -public interface ICordovaClientCertRequest { - /** - * Cancel this request - */ - public void cancel(); - - /* - * Returns the host name of the server requesting the certificate. - */ - public String getHost(); - - /* - * Returns the acceptable types of asymmetric keys (can be null). - */ - public String[] getKeyTypes(); - - /* - * Returns the port number of the server requesting the certificate. - */ - public int getPort(); - - /* - * Returns the acceptable certificate issuers for the certificate matching the private key (can be null). - */ - public Principal[] getPrincipals(); - - /* - * Ignore the request for now. Do not remember user's choice. - */ - public void ignore(); - - /* - * Proceed with the specified private key and client certificate chain. Remember the user's positive choice and use it for future requests. - * - * @param privateKey The privateKey - * @param chain The certificate chain - */ - public void proceed(PrivateKey privateKey, X509Certificate[] chain); -} \ No newline at end of file diff --git a/ionic/platforms/android/CordovaLib/src/org/apache/cordova/ICordovaCookieManager.java b/ionic/platforms/android/CordovaLib/src/org/apache/cordova/ICordovaCookieManager.java deleted file mode 100644 index e776194f2911c43d6c7508ebea22cf958ac70fe0..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/CordovaLib/src/org/apache/cordova/ICordovaCookieManager.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*/ - -package org.apache.cordova; - -public interface ICordovaCookieManager { - - public void setCookiesEnabled(boolean accept); - - public void setCookie(final String url, final String value); - - public String getCookie(final String url); - - public void clearCookies(); - - public void flush(); -}; diff --git a/ionic/platforms/android/CordovaLib/src/org/apache/cordova/ICordovaHttpAuthHandler.java b/ionic/platforms/android/CordovaLib/src/org/apache/cordova/ICordovaHttpAuthHandler.java deleted file mode 100644 index c89e5b9a21f82c86536aaeb14fbe7084202de737..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/CordovaLib/src/org/apache/cordova/ICordovaHttpAuthHandler.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*/ -package org.apache.cordova; - -/** - * Specifies interface for HTTP auth handler object which is used to handle auth requests and - * specifying user credentials. - */ - public interface ICordovaHttpAuthHandler { - /** - * Instructs the WebView to cancel the authentication request. - */ - public void cancel (); - - /** - * Instructs the WebView to proceed with the authentication with the given credentials. - * - * @param username The user name - * @param password The password - */ - public void proceed (String username, String password); -} \ No newline at end of file diff --git a/ionic/platforms/android/CordovaLib/src/org/apache/cordova/LOG.java b/ionic/platforms/android/CordovaLib/src/org/apache/cordova/LOG.java deleted file mode 100755 index 9fe7a7dfc23804a0b479c839624d64221d59f092..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/CordovaLib/src/org/apache/cordova/LOG.java +++ /dev/null @@ -1,244 +0,0 @@ -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*/ -package org.apache.cordova; - -import android.util.Log; - -/** - * Log to Android logging system. - * - * Log message can be a string or a printf formatted string with arguments. - * See http://developer.android.com/reference/java/util/Formatter.html - */ -public class LOG { - - public static final int VERBOSE = Log.VERBOSE; - public static final int DEBUG = Log.DEBUG; - public static final int INFO = Log.INFO; - public static final int WARN = Log.WARN; - public static final int ERROR = Log.ERROR; - - // Current log level - public static int LOGLEVEL = Log.ERROR; - - /** - * Set the current log level. - * - * @param logLevel - */ - public static void setLogLevel(int logLevel) { - LOGLEVEL = logLevel; - Log.i("CordovaLog", "Changing log level to " + logLevel); - } - - /** - * Set the current log level. - * - * @param logLevel - */ - public static void setLogLevel(String logLevel) { - if ("VERBOSE".equals(logLevel)) LOGLEVEL = VERBOSE; - else if ("DEBUG".equals(logLevel)) LOGLEVEL = DEBUG; - else if ("INFO".equals(logLevel)) LOGLEVEL = INFO; - else if ("WARN".equals(logLevel)) LOGLEVEL = WARN; - else if ("ERROR".equals(logLevel)) LOGLEVEL = ERROR; - Log.i("CordovaLog", "Changing log level to " + logLevel + "(" + LOGLEVEL + ")"); - } - - /** - * Determine if log level will be logged - * - * @param logLevel - * @return true if the parameter passed in is greater than or equal to the current log level - */ - public static boolean isLoggable(int logLevel) { - return (logLevel >= LOGLEVEL); - } - - /** - * Verbose log message. - * - * @param tag - * @param s - */ - public static void v(String tag, String s) { - if (LOG.VERBOSE >= LOGLEVEL) Log.v(tag, s); - } - - /** - * Debug log message. - * - * @param tag - * @param s - */ - public static void d(String tag, String s) { - if (LOG.DEBUG >= LOGLEVEL) Log.d(tag, s); - } - - /** - * Info log message. - * - * @param tag - * @param s - */ - public static void i(String tag, String s) { - if (LOG.INFO >= LOGLEVEL) Log.i(tag, s); - } - - /** - * Warning log message. - * - * @param tag - * @param s - */ - public static void w(String tag, String s) { - if (LOG.WARN >= LOGLEVEL) Log.w(tag, s); - } - - /** - * Error log message. - * - * @param tag - * @param s - */ - public static void e(String tag, String s) { - if (LOG.ERROR >= LOGLEVEL) Log.e(tag, s); - } - - /** - * Verbose log message. - * - * @param tag - * @param s - * @param e - */ - public static void v(String tag, String s, Throwable e) { - if (LOG.VERBOSE >= LOGLEVEL) Log.v(tag, s, e); - } - - /** - * Debug log message. - * - * @param tag - * @param s - * @param e - */ - public static void d(String tag, String s, Throwable e) { - if (LOG.DEBUG >= LOGLEVEL) Log.d(tag, s, e); - } - - /** - * Info log message. - * - * @param tag - * @param s - * @param e - */ - public static void i(String tag, String s, Throwable e) { - if (LOG.INFO >= LOGLEVEL) Log.i(tag, s, e); - } - - /** - * Warning log message. - * - * @param tag - * @param e - */ - public static void w(String tag, Throwable e) { - if (LOG.WARN >= LOGLEVEL) Log.w(tag, e); - } - - /** - * Warning log message. - * - * @param tag - * @param s - * @param e - */ - public static void w(String tag, String s, Throwable e) { - if (LOG.WARN >= LOGLEVEL) Log.w(tag, s, e); - } - - /** - * Error log message. - * - * @param tag - * @param s - * @param e - */ - public static void e(String tag, String s, Throwable e) { - if (LOG.ERROR >= LOGLEVEL) Log.e(tag, s, e); - } - - /** - * Verbose log message with printf formatting. - * - * @param tag - * @param s - * @param args - */ - public static void v(String tag, String s, Object... args) { - if (LOG.VERBOSE >= LOGLEVEL) Log.v(tag, String.format(s, args)); - } - - /** - * Debug log message with printf formatting. - * - * @param tag - * @param s - * @param args - */ - public static void d(String tag, String s, Object... args) { - if (LOG.DEBUG >= LOGLEVEL) Log.d(tag, String.format(s, args)); - } - - /** - * Info log message with printf formatting. - * - * @param tag - * @param s - * @param args - */ - public static void i(String tag, String s, Object... args) { - if (LOG.INFO >= LOGLEVEL) Log.i(tag, String.format(s, args)); - } - - /** - * Warning log message with printf formatting. - * - * @param tag - * @param s - * @param args - */ - public static void w(String tag, String s, Object... args) { - if (LOG.WARN >= LOGLEVEL) Log.w(tag, String.format(s, args)); - } - - /** - * Error log message with printf formatting. - * - * @param tag - * @param s - * @param args - */ - public static void e(String tag, String s, Object... args) { - if (LOG.ERROR >= LOGLEVEL) Log.e(tag, String.format(s, args)); - } - -} diff --git a/ionic/platforms/android/CordovaLib/src/org/apache/cordova/NativeToJsMessageQueue.java b/ionic/platforms/android/CordovaLib/src/org/apache/cordova/NativeToJsMessageQueue.java deleted file mode 100755 index 311ba4446ba0f5642e6107b061599aefb5f1ac24..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/CordovaLib/src/org/apache/cordova/NativeToJsMessageQueue.java +++ /dev/null @@ -1,552 +0,0 @@ -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*/ -package org.apache.cordova; - -import java.util.ArrayList; -import java.util.LinkedList; - -/** - * Holds the list of messages to be sent to the WebView. - */ -public class NativeToJsMessageQueue { - private static final String LOG_TAG = "JsMessageQueue"; - - // Set this to true to force plugin results to be encoding as - // JS instead of the custom format (useful for benchmarking). - // Doesn't work for multipart messages. - private static final boolean FORCE_ENCODE_USING_EVAL = false; - - // Disable sending back native->JS messages during an exec() when the active - // exec() is asynchronous. Set this to true when running bridge benchmarks. - static final boolean DISABLE_EXEC_CHAINING = false; - - // A hopefully reasonable upper limit of how much combined payload data - // to send to the JavaScript in one shot. - // This currently only chops up on message boundaries. - // It may be useful to split and reassemble response messages someday. - private static int COMBINED_RESPONSE_CUTOFF = 16 * 1024 * 1024; - - /** - * When true, the active listener is not fired upon enqueue. When set to false, - * the active listener will be fired if the queue is non-empty. - */ - private boolean paused; - - /** - * The list of JavaScript statements to be sent to JavaScript. - */ - private final LinkedList<JsMessage> queue = new LinkedList<JsMessage>(); - - /** - * The array of listeners that can be used to send messages to JS. - */ - private ArrayList<BridgeMode> bridgeModes = new ArrayList<BridgeMode>(); - - /** - * When null, the bridge is disabled. This occurs during page transitions. - * When disabled, all callbacks are dropped since they are assumed to be - * relevant to the previous page. - */ - private BridgeMode activeBridgeMode; - - public void addBridgeMode(BridgeMode bridgeMode) { - bridgeModes.add(bridgeMode); - } - - public boolean isBridgeEnabled() { - return activeBridgeMode != null; - } - - public boolean isEmpty() { - return queue.isEmpty(); - } - - /** - * Changes the bridge mode. - */ - public void setBridgeMode(int value) { - if (value < -1 || value >= bridgeModes.size()) { - LOG.d(LOG_TAG, "Invalid NativeToJsBridgeMode: " + value); - } else { - BridgeMode newMode = value < 0 ? null : bridgeModes.get(value); - if (newMode != activeBridgeMode) { - LOG.d(LOG_TAG, "Set native->JS mode to " + (newMode == null ? "null" : newMode.getClass().getSimpleName())); - synchronized (this) { - activeBridgeMode = newMode; - if (newMode != null) { - newMode.reset(); - if (!paused && !queue.isEmpty()) { - newMode.onNativeToJsMessageAvailable(this); - } - } - } - } - } - } - - /** - * Clears all messages and resets to the default bridge mode. - */ - public void reset() { - synchronized (this) { - queue.clear(); - setBridgeMode(-1); - } - } - - private int calculatePackedMessageLength(JsMessage message) { - int messageLen = message.calculateEncodedLength(); - String messageLenStr = String.valueOf(messageLen); - return messageLenStr.length() + messageLen + 1; - } - - private void packMessage(JsMessage message, StringBuilder sb) { - int len = message.calculateEncodedLength(); - sb.append(len) - .append(' '); - message.encodeAsMessage(sb); - } - - /** - * Combines and returns queued messages combined into a single string. - * - * Combines as many messages as possible, without exceeding - * COMBINED_RESPONSE_CUTOFF in case of multiple response messages. - * - * Returns null if the queue is empty. - */ - public String popAndEncode(boolean fromOnlineEvent) { - synchronized (this) { - if (activeBridgeMode == null) { - return null; - } - activeBridgeMode.notifyOfFlush(this, fromOnlineEvent); - if (queue.isEmpty()) { - return null; - } - int totalPayloadLen = 0; - int numMessagesToSend = 0; - for (JsMessage message : queue) { - int messageSize = calculatePackedMessageLength(message); - if (numMessagesToSend > 0 && - COMBINED_RESPONSE_CUTOFF > 0 && - totalPayloadLen + messageSize > COMBINED_RESPONSE_CUTOFF - ) { - break; - } - totalPayloadLen += messageSize; - numMessagesToSend += 1; - } - - StringBuilder sb = new StringBuilder(totalPayloadLen); - for (int i = 0; i < numMessagesToSend; ++i) { - JsMessage message = queue.removeFirst(); - packMessage(message, sb); - } - - if (!queue.isEmpty()) { - // Attach a char to indicate that there are more messages pending. - sb.append('*'); - } - String ret = sb.toString(); - return ret; - } - } - - /** - * Same as popAndEncode(), except encodes in a form that can be executed as JS. - */ - public String popAndEncodeAsJs() { - synchronized (this) { - int length = queue.size(); - if (length == 0) { - return null; - } - int totalPayloadLen = 0; - int numMessagesToSend = 0; - for (JsMessage message : queue) { - int messageSize = message.calculateEncodedLength() + 50; // overestimate. - if (numMessagesToSend > 0 && - COMBINED_RESPONSE_CUTOFF > 0 && - totalPayloadLen + messageSize > COMBINED_RESPONSE_CUTOFF - ) { - break; - } - totalPayloadLen += messageSize; - numMessagesToSend += 1; - } - boolean willSendAllMessages = numMessagesToSend == queue.size(); - StringBuilder sb = new StringBuilder(totalPayloadLen + (willSendAllMessages ? 0 : 100)); - // Wrap each statement in a try/finally so that if one throws it does - // not affect the next. - for (int i = 0; i < numMessagesToSend; ++i) { - JsMessage message = queue.removeFirst(); - if (willSendAllMessages && (i + 1 == numMessagesToSend)) { - message.encodeAsJsMessage(sb); - } else { - sb.append("try{"); - message.encodeAsJsMessage(sb); - sb.append("}finally{"); - } - } - if (!willSendAllMessages) { - sb.append("window.setTimeout(function(){cordova.require('cordova/plugin/android/polling').pollOnce();},0);"); - } - for (int i = willSendAllMessages ? 1 : 0; i < numMessagesToSend; ++i) { - sb.append('}'); - } - String ret = sb.toString(); - return ret; - } - } - - /** - * Add a JavaScript statement to the list. - */ - public void addJavaScript(String statement) { - enqueueMessage(new JsMessage(statement)); - } - - /** - * Add a JavaScript statement to the list. - */ - public void addPluginResult(PluginResult result, String callbackId) { - if (callbackId == null) { - LOG.e(LOG_TAG, "Got plugin result with no callbackId", new Throwable()); - return; - } - // Don't send anything if there is no result and there is no need to - // clear the callbacks. - boolean noResult = result.getStatus() == PluginResult.Status.NO_RESULT.ordinal(); - boolean keepCallback = result.getKeepCallback(); - if (noResult && keepCallback) { - return; - } - JsMessage message = new JsMessage(result, callbackId); - if (FORCE_ENCODE_USING_EVAL) { - StringBuilder sb = new StringBuilder(message.calculateEncodedLength() + 50); - message.encodeAsJsMessage(sb); - message = new JsMessage(sb.toString()); - } - - enqueueMessage(message); - } - - private void enqueueMessage(JsMessage message) { - synchronized (this) { - if (activeBridgeMode == null) { - LOG.d(LOG_TAG, "Dropping Native->JS message due to disabled bridge"); - return; - } - queue.add(message); - if (!paused) { - activeBridgeMode.onNativeToJsMessageAvailable(this); - } - } - } - - public void setPaused(boolean value) { - if (paused && value) { - // This should never happen. If a use-case for it comes up, we should - // change pause to be a counter. - LOG.e(LOG_TAG, "nested call to setPaused detected.", new Throwable()); - } - paused = value; - if (!value) { - synchronized (this) { - if (!queue.isEmpty() && activeBridgeMode != null) { - activeBridgeMode.onNativeToJsMessageAvailable(this); - } - } - } - } - - public static abstract class BridgeMode { - public abstract void onNativeToJsMessageAvailable(NativeToJsMessageQueue queue); - public void notifyOfFlush(NativeToJsMessageQueue queue, boolean fromOnlineEvent) {} - public void reset() {} - } - - /** Uses JS polls for messages on a timer.. */ - public static class NoOpBridgeMode extends BridgeMode { - @Override public void onNativeToJsMessageAvailable(NativeToJsMessageQueue queue) { - } - } - - /** Uses webView.loadUrl("javascript:") to execute messages. */ - public static class LoadUrlBridgeMode extends BridgeMode { - private final CordovaWebViewEngine engine; - private final CordovaInterface cordova; - - public LoadUrlBridgeMode(CordovaWebViewEngine engine, CordovaInterface cordova) { - this.engine = engine; - this.cordova = cordova; - } - - @Override - public void onNativeToJsMessageAvailable(final NativeToJsMessageQueue queue) { - cordova.getActivity().runOnUiThread(new Runnable() { - public void run() { - String js = queue.popAndEncodeAsJs(); - if (js != null) { - engine.loadUrl("javascript:" + js, false); - } - } - }); - } - } - - /** Uses online/offline events to tell the JS when to poll for messages. */ - public static class OnlineEventsBridgeMode extends BridgeMode { - private final OnlineEventsBridgeModeDelegate delegate; - private boolean online; - private boolean ignoreNextFlush; - - public interface OnlineEventsBridgeModeDelegate { - void setNetworkAvailable(boolean value); - void runOnUiThread(Runnable r); - } - - public OnlineEventsBridgeMode(OnlineEventsBridgeModeDelegate delegate) { - this.delegate = delegate; - } - - @Override - public void reset() { - delegate.runOnUiThread(new Runnable() { - public void run() { - online = false; - // If the following call triggers a notifyOfFlush, then ignore it. - ignoreNextFlush = true; - delegate.setNetworkAvailable(true); - } - }); - } - - @Override - public void onNativeToJsMessageAvailable(final NativeToJsMessageQueue queue) { - delegate.runOnUiThread(new Runnable() { - public void run() { - if (!queue.isEmpty()) { - ignoreNextFlush = false; - delegate.setNetworkAvailable(online); - } - } - }); - } - // Track when online/offline events are fired so that we don't fire excess events. - @Override - public void notifyOfFlush(final NativeToJsMessageQueue queue, boolean fromOnlineEvent) { - if (fromOnlineEvent && !ignoreNextFlush) { - online = !online; - } - } - } - - /** Uses webView.evaluateJavascript to execute messages. */ - public static class EvalBridgeMode extends BridgeMode { - private final CordovaWebViewEngine engine; - private final CordovaInterface cordova; - - public EvalBridgeMode(CordovaWebViewEngine engine, CordovaInterface cordova) { - this.engine = engine; - this.cordova = cordova; - } - - @Override - public void onNativeToJsMessageAvailable(final NativeToJsMessageQueue queue) { - cordova.getActivity().runOnUiThread(new Runnable() { - public void run() { - String js = queue.popAndEncodeAsJs(); - if (js != null) { - engine.evaluateJavascript(js, null); - } - } - }); - } - } - - - - private static class JsMessage { - final String jsPayloadOrCallbackId; - final PluginResult pluginResult; - JsMessage(String js) { - if (js == null) { - throw new NullPointerException(); - } - jsPayloadOrCallbackId = js; - pluginResult = null; - } - JsMessage(PluginResult pluginResult, String callbackId) { - if (callbackId == null || pluginResult == null) { - throw new NullPointerException(); - } - jsPayloadOrCallbackId = callbackId; - this.pluginResult = pluginResult; - } - - static int calculateEncodedLengthHelper(PluginResult pluginResult) { - switch (pluginResult.getMessageType()) { - case PluginResult.MESSAGE_TYPE_BOOLEAN: // f or t - case PluginResult.MESSAGE_TYPE_NULL: // N - return 1; - case PluginResult.MESSAGE_TYPE_NUMBER: // n - return 1 + pluginResult.getMessage().length(); - case PluginResult.MESSAGE_TYPE_STRING: // s - return 1 + pluginResult.getStrMessage().length(); - case PluginResult.MESSAGE_TYPE_BINARYSTRING: - return 1 + pluginResult.getMessage().length(); - case PluginResult.MESSAGE_TYPE_ARRAYBUFFER: - return 1 + pluginResult.getMessage().length(); - case PluginResult.MESSAGE_TYPE_MULTIPART: - int ret = 1; - for (int i = 0; i < pluginResult.getMultipartMessagesSize(); i++) { - int length = calculateEncodedLengthHelper(pluginResult.getMultipartMessage(i)); - int argLength = String.valueOf(length).length(); - ret += argLength + 1 + length; - } - return ret; - case PluginResult.MESSAGE_TYPE_JSON: - default: - return pluginResult.getMessage().length(); - } - } - - int calculateEncodedLength() { - if (pluginResult == null) { - return jsPayloadOrCallbackId.length() + 1; - } - int statusLen = String.valueOf(pluginResult.getStatus()).length(); - int ret = 2 + statusLen + 1 + jsPayloadOrCallbackId.length() + 1; - return ret + calculateEncodedLengthHelper(pluginResult); - } - - static void encodeAsMessageHelper(StringBuilder sb, PluginResult pluginResult) { - switch (pluginResult.getMessageType()) { - case PluginResult.MESSAGE_TYPE_BOOLEAN: - sb.append(pluginResult.getMessage().charAt(0)); // t or f. - break; - case PluginResult.MESSAGE_TYPE_NULL: // N - sb.append('N'); - break; - case PluginResult.MESSAGE_TYPE_NUMBER: // n - sb.append('n') - .append(pluginResult.getMessage()); - break; - case PluginResult.MESSAGE_TYPE_STRING: // s - sb.append('s'); - sb.append(pluginResult.getStrMessage()); - break; - case PluginResult.MESSAGE_TYPE_BINARYSTRING: // S - sb.append('S'); - sb.append(pluginResult.getMessage()); - break; - case PluginResult.MESSAGE_TYPE_ARRAYBUFFER: // A - sb.append('A'); - sb.append(pluginResult.getMessage()); - break; - case PluginResult.MESSAGE_TYPE_MULTIPART: - sb.append('M'); - for (int i = 0; i < pluginResult.getMultipartMessagesSize(); i++) { - PluginResult multipartMessage = pluginResult.getMultipartMessage(i); - sb.append(String.valueOf(calculateEncodedLengthHelper(multipartMessage))); - sb.append(' '); - encodeAsMessageHelper(sb, multipartMessage); - } - break; - case PluginResult.MESSAGE_TYPE_JSON: - default: - sb.append(pluginResult.getMessage()); // [ or { - } - } - - void encodeAsMessage(StringBuilder sb) { - if (pluginResult == null) { - sb.append('J') - .append(jsPayloadOrCallbackId); - return; - } - int status = pluginResult.getStatus(); - boolean noResult = status == PluginResult.Status.NO_RESULT.ordinal(); - boolean resultOk = status == PluginResult.Status.OK.ordinal(); - boolean keepCallback = pluginResult.getKeepCallback(); - - sb.append((noResult || resultOk) ? 'S' : 'F') - .append(keepCallback ? '1' : '0') - .append(status) - .append(' ') - .append(jsPayloadOrCallbackId) - .append(' '); - - encodeAsMessageHelper(sb, pluginResult); - } - - void buildJsMessage(StringBuilder sb) { - switch (pluginResult.getMessageType()) { - case PluginResult.MESSAGE_TYPE_MULTIPART: - int size = pluginResult.getMultipartMessagesSize(); - for (int i=0; i<size; i++) { - PluginResult subresult = pluginResult.getMultipartMessage(i); - JsMessage submessage = new JsMessage(subresult, jsPayloadOrCallbackId); - submessage.buildJsMessage(sb); - if (i < (size-1)) { - sb.append(","); - } - } - break; - case PluginResult.MESSAGE_TYPE_BINARYSTRING: - sb.append("atob('") - .append(pluginResult.getMessage()) - .append("')"); - break; - case PluginResult.MESSAGE_TYPE_ARRAYBUFFER: - sb.append("cordova.require('cordova/base64').toArrayBuffer('") - .append(pluginResult.getMessage()) - .append("')"); - break; - case PluginResult.MESSAGE_TYPE_NULL: - sb.append("null"); - break; - default: - sb.append(pluginResult.getMessage()); - } - } - - void encodeAsJsMessage(StringBuilder sb) { - if (pluginResult == null) { - sb.append(jsPayloadOrCallbackId); - } else { - int status = pluginResult.getStatus(); - boolean success = (status == PluginResult.Status.OK.ordinal()) || (status == PluginResult.Status.NO_RESULT.ordinal()); - sb.append("cordova.callbackFromNative('") - .append(jsPayloadOrCallbackId) - .append("',") - .append(success) - .append(",") - .append(status) - .append(",["); - buildJsMessage(sb); - sb.append("],") - .append(pluginResult.getKeepCallback()) - .append(");"); - } - } - } -} diff --git a/ionic/platforms/android/CordovaLib/src/org/apache/cordova/PermissionHelper.java b/ionic/platforms/android/CordovaLib/src/org/apache/cordova/PermissionHelper.java deleted file mode 100644 index 52f6e1403cd587fde75cf6ef16560c30c00b0919..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/CordovaLib/src/org/apache/cordova/PermissionHelper.java +++ /dev/null @@ -1,87 +0,0 @@ -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*/ -package org.apache.cordova; - -import java.util.Arrays; - -import org.json.JSONException; - -import android.content.pm.PackageManager; - -/** - * This class provides reflective methods for permission requesting and checking so that plugins - * written for cordova-android 5.0.0+ can still compile with earlier cordova-android versions. - */ -public class PermissionHelper { - private static final String LOG_TAG = "CordovaPermissionHelper"; - - /** - * Requests a "dangerous" permission for the application at runtime. This is a helper method - * alternative to cordovaInterface.requestPermission() that does not require the project to be - * built with cordova-android 5.0.0+ - * - * @param plugin The plugin the permission is being requested for - * @param requestCode A requestCode to be passed to the plugin's onRequestPermissionResult() - * along with the result of the permission request - * @param permission The permission to be requested - */ - public static void requestPermission(CordovaPlugin plugin, int requestCode, String permission) { - PermissionHelper.requestPermissions(plugin, requestCode, new String[] {permission}); - } - - /** - * Requests "dangerous" permissions for the application at runtime. This is a helper method - * alternative to cordovaInterface.requestPermissions() that does not require the project to be - * built with cordova-android 5.0.0+ - * - * @param plugin The plugin the permissions are being requested for - * @param requestCode A requestCode to be passed to the plugin's onRequestPermissionResult() - * along with the result of the permissions request - * @param permissions The permissions to be requested - */ - public static void requestPermissions(CordovaPlugin plugin, int requestCode, String[] permissions) { - plugin.cordova.requestPermissions(plugin, requestCode, permissions); - } - - /** - * Checks at runtime to see if the application has been granted a permission. This is a helper - * method alternative to cordovaInterface.hasPermission() that does not require the project to - * be built with cordova-android 5.0.0+ - * - * @param plugin The plugin the permission is being checked against - * @param permission The permission to be checked - * - * @return True if the permission has already been granted and false otherwise - */ - public static boolean hasPermission(CordovaPlugin plugin, String permission) { - return plugin.cordova.hasPermission(permission); - } - - private static void deliverPermissionResult(CordovaPlugin plugin, int requestCode, String[] permissions) { - // Generate the request results - int[] requestResults = new int[permissions.length]; - Arrays.fill(requestResults, PackageManager.PERMISSION_GRANTED); - - try { - plugin.onRequestPermissionResult(requestCode, permissions, requestResults); - } catch (JSONException e) { - LOG.e(LOG_TAG, "JSONException when delivering permissions results", e); - } - } -} \ No newline at end of file diff --git a/ionic/platforms/android/CordovaLib/src/org/apache/cordova/PluginEntry.java b/ionic/platforms/android/CordovaLib/src/org/apache/cordova/PluginEntry.java deleted file mode 100755 index c56c453c641df39be5b9ba1a230e20d4f0be0809..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/CordovaLib/src/org/apache/cordova/PluginEntry.java +++ /dev/null @@ -1,70 +0,0 @@ -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. - */ -package org.apache.cordova; - -import org.apache.cordova.CordovaPlugin; - -/** - * This class represents a service entry object. - */ -public final class PluginEntry { - - /** - * The name of the service that this plugin implements - */ - public final String service; - - /** - * The plugin class name that implements the service. - */ - public final String pluginClass; - - /** - * The pre-instantiated plugin to use for this entry. - */ - public final CordovaPlugin plugin; - - /** - * Flag that indicates the plugin object should be created when PluginManager is initialized. - */ - public final boolean onload; - - /** - * Constructs with a CordovaPlugin already instantiated. - */ - public PluginEntry(String service, CordovaPlugin plugin) { - this(service, plugin.getClass().getName(), true, plugin); - } - - /** - * @param service The name of the service - * @param pluginClass The plugin class name - * @param onload Create plugin object when HTML page is loaded - */ - public PluginEntry(String service, String pluginClass, boolean onload) { - this(service, pluginClass, onload, null); - } - - private PluginEntry(String service, String pluginClass, boolean onload, CordovaPlugin plugin) { - this.service = service; - this.pluginClass = pluginClass; - this.onload = onload; - this.plugin = plugin; - } -} diff --git a/ionic/platforms/android/CordovaLib/src/org/apache/cordova/PluginManager.java b/ionic/platforms/android/CordovaLib/src/org/apache/cordova/PluginManager.java deleted file mode 100755 index c9576a6c3c972ee6a641ab0b57485bd69e52a7ed..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/CordovaLib/src/org/apache/cordova/PluginManager.java +++ /dev/null @@ -1,526 +0,0 @@ -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. - */ -package org.apache.cordova; - -import java.util.Collection; -import java.util.LinkedHashMap; - -import org.json.JSONException; - -import android.content.Intent; -import android.content.res.Configuration; -import android.net.Uri; -import android.os.Bundle; -import android.os.Debug; - -/** - * PluginManager is exposed to JavaScript in the Cordova WebView. - * - * Calling native plugin code can be done by calling PluginManager.exec(...) - * from JavaScript. - */ -public class PluginManager { - private static String TAG = "PluginManager"; - private static final int SLOW_EXEC_WARNING_THRESHOLD = Debug.isDebuggerConnected() ? 60 : 16; - - // List of service entries - private final LinkedHashMap<String, CordovaPlugin> pluginMap = new LinkedHashMap<String, CordovaPlugin>(); - private final LinkedHashMap<String, PluginEntry> entryMap = new LinkedHashMap<String, PluginEntry>(); - - private final CordovaInterface ctx; - private final CordovaWebView app; - private boolean isInitialized; - - private CordovaPlugin permissionRequester; - - public PluginManager(CordovaWebView cordovaWebView, CordovaInterface cordova, Collection<PluginEntry> pluginEntries) { - this.ctx = cordova; - this.app = cordovaWebView; - setPluginEntries(pluginEntries); - } - - public Collection<PluginEntry> getPluginEntries() { - return entryMap.values(); - } - - public void setPluginEntries(Collection<PluginEntry> pluginEntries) { - if (isInitialized) { - this.onPause(false); - this.onDestroy(); - pluginMap.clear(); - entryMap.clear(); - } - for (PluginEntry entry : pluginEntries) { - addService(entry); - } - if (isInitialized) { - startupPlugins(); - } - } - - /** - * Init when loading a new HTML page into webview. - */ - public void init() { - LOG.d(TAG, "init()"); - isInitialized = true; - this.onPause(false); - this.onDestroy(); - pluginMap.clear(); - this.startupPlugins(); - } - - /** - * Create plugins objects that have onload set. - */ - private void startupPlugins() { - for (PluginEntry entry : entryMap.values()) { - // Add a null entry to for each non-startup plugin to avoid ConcurrentModificationException - // When iterating plugins. - if (entry.onload) { - getPlugin(entry.service); - } else { - pluginMap.put(entry.service, null); - } - } - } - - /** - * Receives a request for execution and fulfills it by finding the appropriate - * Java class and calling it's execute method. - * - * PluginManager.exec can be used either synchronously or async. In either case, a JSON encoded - * string is returned that will indicate if any errors have occurred when trying to find - * or execute the class denoted by the clazz argument. - * - * @param service String containing the service to run - * @param action String containing the action that the class is supposed to perform. This is - * passed to the plugin execute method and it is up to the plugin developer - * how to deal with it. - * @param callbackId String containing the id of the callback that is execute in JavaScript if - * this is an async plugin call. - * @param rawArgs An Array literal string containing any arguments needed in the - * plugin execute method. - */ - public void exec(final String service, final String action, final String callbackId, final String rawArgs) { - CordovaPlugin plugin = getPlugin(service); - if (plugin == null) { - LOG.d(TAG, "exec() call to unknown plugin: " + service); - PluginResult cr = new PluginResult(PluginResult.Status.CLASS_NOT_FOUND_EXCEPTION); - app.sendPluginResult(cr, callbackId); - return; - } - CallbackContext callbackContext = new CallbackContext(callbackId, app); - try { - long pluginStartTime = System.currentTimeMillis(); - boolean wasValidAction = plugin.execute(action, rawArgs, callbackContext); - long duration = System.currentTimeMillis() - pluginStartTime; - - if (duration > SLOW_EXEC_WARNING_THRESHOLD) { - LOG.w(TAG, "THREAD WARNING: exec() call to " + service + "." + action + " blocked the main thread for " + duration + "ms. Plugin should use CordovaInterface.getThreadPool()."); - } - if (!wasValidAction) { - PluginResult cr = new PluginResult(PluginResult.Status.INVALID_ACTION); - callbackContext.sendPluginResult(cr); - } - } catch (JSONException e) { - PluginResult cr = new PluginResult(PluginResult.Status.JSON_EXCEPTION); - callbackContext.sendPluginResult(cr); - } catch (Exception e) { - LOG.e(TAG, "Uncaught exception from plugin", e); - callbackContext.error(e.getMessage()); - } - } - - /** - * Get the plugin object that implements the service. - * If the plugin object does not already exist, then create it. - * If the service doesn't exist, then return null. - * - * @param service The name of the service. - * @return CordovaPlugin or null - */ - public CordovaPlugin getPlugin(String service) { - CordovaPlugin ret = pluginMap.get(service); - if (ret == null) { - PluginEntry pe = entryMap.get(service); - if (pe == null) { - return null; - } - if (pe.plugin != null) { - ret = pe.plugin; - } else { - ret = instantiatePlugin(pe.pluginClass); - } - ret.privateInitialize(service, ctx, app, app.getPreferences()); - pluginMap.put(service, ret); - } - return ret; - } - - /** - * Add a plugin class that implements a service to the service entry table. - * This does not create the plugin object instance. - * - * @param service The service name - * @param className The plugin class name - */ - public void addService(String service, String className) { - PluginEntry entry = new PluginEntry(service, className, false); - this.addService(entry); - } - - /** - * Add a plugin class that implements a service to the service entry table. - * This does not create the plugin object instance. - * - * @param entry The plugin entry - */ - public void addService(PluginEntry entry) { - this.entryMap.put(entry.service, entry); - if (entry.plugin != null) { - entry.plugin.privateInitialize(entry.service, ctx, app, app.getPreferences()); - pluginMap.put(entry.service, entry.plugin); - } - } - - /** - * Called when the system is about to start resuming a previous activity. - * - * @param multitasking Flag indicating if multitasking is turned on for app - */ - public void onPause(boolean multitasking) { - for (CordovaPlugin plugin : this.pluginMap.values()) { - if (plugin != null) { - plugin.onPause(multitasking); - } - } - } - - /** - * Called when the system received an HTTP authentication request. Plugins can use - * the supplied HttpAuthHandler to process this auth challenge. - * - * @param view The WebView that is initiating the callback - * @param handler The HttpAuthHandler used to set the WebView's response - * @param host The host requiring authentication - * @param realm The realm for which authentication is required - * - * @return Returns True if there is a plugin which will resolve this auth challenge, otherwise False - * - */ - public boolean onReceivedHttpAuthRequest(CordovaWebView view, ICordovaHttpAuthHandler handler, String host, String realm) { - for (CordovaPlugin plugin : this.pluginMap.values()) { - if (plugin != null && plugin.onReceivedHttpAuthRequest(app, handler, host, realm)) { - return true; - } - } - return false; - } - - /** - * Called when he system received an SSL client certificate request. Plugin can use - * the supplied ClientCertRequest to process this certificate challenge. - * - * @param view The WebView that is initiating the callback - * @param request The client certificate request - * - * @return Returns True if plugin will resolve this auth challenge, otherwise False - * - */ - public boolean onReceivedClientCertRequest(CordovaWebView view, ICordovaClientCertRequest request) { - for (CordovaPlugin plugin : this.pluginMap.values()) { - if (plugin != null && plugin.onReceivedClientCertRequest(app, request)) { - return true; - } - } - return false; - } - - /** - * Called when the activity will start interacting with the user. - * - * @param multitasking Flag indicating if multitasking is turned on for app - */ - public void onResume(boolean multitasking) { - for (CordovaPlugin plugin : this.pluginMap.values()) { - if (plugin != null) { - plugin.onResume(multitasking); - } - } - } - - /** - * Called when the activity is becoming visible to the user. - */ - public void onStart() { - for (CordovaPlugin plugin : this.pluginMap.values()) { - if (plugin != null) { - plugin.onStart(); - } - } - } - - /** - * Called when the activity is no longer visible to the user. - */ - public void onStop() { - for (CordovaPlugin plugin : this.pluginMap.values()) { - if (plugin != null) { - plugin.onStop(); - } - } - } - - /** - * The final call you receive before your activity is destroyed. - */ - public void onDestroy() { - for (CordovaPlugin plugin : this.pluginMap.values()) { - if (plugin != null) { - plugin.onDestroy(); - } - } - } - - /** - * Send a message to all plugins. - * - * @param id The message id - * @param data The message data - * @return Object to stop propagation or null - */ - public Object postMessage(String id, Object data) { - for (CordovaPlugin plugin : this.pluginMap.values()) { - if (plugin != null) { - Object obj = plugin.onMessage(id, data); - if (obj != null) { - return obj; - } - } - } - return ctx.onMessage(id, data); - } - - /** - * Called when the activity receives a new intent. - */ - public void onNewIntent(Intent intent) { - for (CordovaPlugin plugin : this.pluginMap.values()) { - if (plugin != null) { - plugin.onNewIntent(intent); - } - } - } - - /** - * Called when the webview is going to request an external resource. - * - * This delegates to the installed plugins, and returns true/false for the - * first plugin to provide a non-null result. If no plugins respond, then - * the default policy is applied. - * - * @param url The URL that is being requested. - * @return Returns true to allow the resource to load, - * false to block the resource. - */ - public boolean shouldAllowRequest(String url) { - for (PluginEntry entry : this.entryMap.values()) { - CordovaPlugin plugin = pluginMap.get(entry.service); - if (plugin != null) { - Boolean result = plugin.shouldAllowRequest(url); - if (result != null) { - return result; - } - } - } - - // Default policy: - if (url.startsWith("blob:") || url.startsWith("data:") || url.startsWith("about:blank")) { - return true; - } - // TalkBack requires this, so allow it by default. - if (url.startsWith("https://ssl.gstatic.com/accessibility/javascript/android/")) { - return true; - } - if (url.startsWith("file://")) { - //This directory on WebKit/Blink based webviews contains SQLite databases! - //DON'T CHANGE THIS UNLESS YOU KNOW WHAT YOU'RE DOING! - return !url.contains("/app_webview/"); - } - return false; - } - - /** - * Called when the webview is going to change the URL of the loaded content. - * - * This delegates to the installed plugins, and returns true/false for the - * first plugin to provide a non-null result. If no plugins respond, then - * the default policy is applied. - * - * @param url The URL that is being requested. - * @return Returns true to allow the navigation, - * false to block the navigation. - */ - public boolean shouldAllowNavigation(String url) { - for (PluginEntry entry : this.entryMap.values()) { - CordovaPlugin plugin = pluginMap.get(entry.service); - if (plugin != null) { - Boolean result = plugin.shouldAllowNavigation(url); - if (result != null) { - return result; - } - } - } - - // Default policy: - return url.startsWith("file://") || url.startsWith("about:blank"); - } - - - /** - * Called when the webview is requesting the exec() bridge be enabled. - */ - public boolean shouldAllowBridgeAccess(String url) { - for (PluginEntry entry : this.entryMap.values()) { - CordovaPlugin plugin = pluginMap.get(entry.service); - if (plugin != null) { - Boolean result = plugin.shouldAllowBridgeAccess(url); - if (result != null) { - return result; - } - } - } - - // Default policy: - return url.startsWith("file://"); - } - - /** - * Called when the webview is going not going to navigate, but may launch - * an Intent for an URL. - * - * This delegates to the installed plugins, and returns true/false for the - * first plugin to provide a non-null result. If no plugins respond, then - * the default policy is applied. - * - * @param url The URL that is being requested. - * @return Returns true to allow the URL to launch an intent, - * false to block the intent. - */ - public Boolean shouldOpenExternalUrl(String url) { - for (PluginEntry entry : this.entryMap.values()) { - CordovaPlugin plugin = pluginMap.get(entry.service); - if (plugin != null) { - Boolean result = plugin.shouldOpenExternalUrl(url); - if (result != null) { - return result; - } - } - } - // Default policy: - // External URLs are not allowed - return false; - } - - /** - * Called when the URL of the webview changes. - * - * @param url The URL that is being changed to. - * @return Return false to allow the URL to load, return true to prevent the URL from loading. - */ - public boolean onOverrideUrlLoading(String url) { - for (PluginEntry entry : this.entryMap.values()) { - CordovaPlugin plugin = pluginMap.get(entry.service); - if (plugin != null && plugin.onOverrideUrlLoading(url)) { - return true; - } - } - return false; - } - - /** - * Called when the app navigates or refreshes. - */ - public void onReset() { - for (CordovaPlugin plugin : this.pluginMap.values()) { - if (plugin != null) { - plugin.onReset(); - } - } - } - - Uri remapUri(Uri uri) { - for (CordovaPlugin plugin : this.pluginMap.values()) { - if (plugin != null) { - Uri ret = plugin.remapUri(uri); - if (ret != null) { - return ret; - } - } - } - return null; - } - - /** - * Create a plugin based on class name. - */ - private CordovaPlugin instantiatePlugin(String className) { - CordovaPlugin ret = null; - try { - Class<?> c = null; - if ((className != null) && !("".equals(className))) { - c = Class.forName(className); - } - if (c != null & CordovaPlugin.class.isAssignableFrom(c)) { - ret = (CordovaPlugin) c.newInstance(); - } - } catch (Exception e) { - e.printStackTrace(); - System.out.println("Error adding plugin " + className + "."); - } - return ret; - } - - /** - * Called by the system when the device configuration changes while your activity is running. - * - * @param newConfig The new device configuration - */ - public void onConfigurationChanged(Configuration newConfig) { - for (CordovaPlugin plugin : this.pluginMap.values()) { - if (plugin != null) { - plugin.onConfigurationChanged(newConfig); - } - } - } - - public Bundle onSaveInstanceState() { - Bundle state = new Bundle(); - for (CordovaPlugin plugin : this.pluginMap.values()) { - if (plugin != null) { - Bundle pluginState = plugin.onSaveInstanceState(); - if(pluginState != null) { - state.putBundle(plugin.getServiceName(), pluginState); - } - } - } - return state; - } -} diff --git a/ionic/platforms/android/CordovaLib/src/org/apache/cordova/PluginResult.java b/ionic/platforms/android/CordovaLib/src/org/apache/cordova/PluginResult.java deleted file mode 100644 index 5db60b3b784ead735299e041f58d7035a75d729e..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/CordovaLib/src/org/apache/cordova/PluginResult.java +++ /dev/null @@ -1,198 +0,0 @@ -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*/ -package org.apache.cordova; - -import java.util.List; - -import org.json.JSONArray; -import org.json.JSONObject; - -import android.util.Base64; - -public class PluginResult { - private final int status; - private final int messageType; - private boolean keepCallback = false; - private String strMessage; - private String encodedMessage; - private List<PluginResult> multipartMessages; - - public PluginResult(Status status) { - this(status, PluginResult.StatusMessages[status.ordinal()]); - } - - public PluginResult(Status status, String message) { - this.status = status.ordinal(); - this.messageType = message == null ? MESSAGE_TYPE_NULL : MESSAGE_TYPE_STRING; - this.strMessage = message; - } - - public PluginResult(Status status, JSONArray message) { - this.status = status.ordinal(); - this.messageType = MESSAGE_TYPE_JSON; - encodedMessage = message.toString(); - } - - public PluginResult(Status status, JSONObject message) { - this.status = status.ordinal(); - this.messageType = MESSAGE_TYPE_JSON; - encodedMessage = message.toString(); - } - - public PluginResult(Status status, int i) { - this.status = status.ordinal(); - this.messageType = MESSAGE_TYPE_NUMBER; - this.encodedMessage = ""+i; - } - - public PluginResult(Status status, float f) { - this.status = status.ordinal(); - this.messageType = MESSAGE_TYPE_NUMBER; - this.encodedMessage = ""+f; - } - - public PluginResult(Status status, boolean b) { - this.status = status.ordinal(); - this.messageType = MESSAGE_TYPE_BOOLEAN; - this.encodedMessage = Boolean.toString(b); - } - - public PluginResult(Status status, byte[] data) { - this(status, data, false); - } - - public PluginResult(Status status, byte[] data, boolean binaryString) { - this.status = status.ordinal(); - this.messageType = binaryString ? MESSAGE_TYPE_BINARYSTRING : MESSAGE_TYPE_ARRAYBUFFER; - this.encodedMessage = Base64.encodeToString(data, Base64.NO_WRAP); - } - - // The keepCallback and status of multipartMessages are ignored. - public PluginResult(Status status, List<PluginResult> multipartMessages) { - this.status = status.ordinal(); - this.messageType = MESSAGE_TYPE_MULTIPART; - this.multipartMessages = multipartMessages; - } - - public void setKeepCallback(boolean b) { - this.keepCallback = b; - } - - public int getStatus() { - return status; - } - - public int getMessageType() { - return messageType; - } - - public String getMessage() { - if (encodedMessage == null) { - encodedMessage = JSONObject.quote(strMessage); - } - return encodedMessage; - } - - public int getMultipartMessagesSize() { - return multipartMessages.size(); - } - - public PluginResult getMultipartMessage(int index) { - return multipartMessages.get(index); - } - - /** - * If messageType == MESSAGE_TYPE_STRING, then returns the message string. - * Otherwise, returns null. - */ - public String getStrMessage() { - return strMessage; - } - - public boolean getKeepCallback() { - return this.keepCallback; - } - - @Deprecated // Use sendPluginResult instead of sendJavascript. - public String getJSONString() { - return "{\"status\":" + this.status + ",\"message\":" + this.getMessage() + ",\"keepCallback\":" + this.keepCallback + "}"; - } - - @Deprecated // Use sendPluginResult instead of sendJavascript. - public String toCallbackString(String callbackId) { - // If no result to be sent and keeping callback, then no need to sent back to JavaScript - if ((status == PluginResult.Status.NO_RESULT.ordinal()) && keepCallback) { - return null; - } - - // Check the success (OK, NO_RESULT & !KEEP_CALLBACK) - if ((status == PluginResult.Status.OK.ordinal()) || (status == PluginResult.Status.NO_RESULT.ordinal())) { - return toSuccessCallbackString(callbackId); - } - - return toErrorCallbackString(callbackId); - } - - @Deprecated // Use sendPluginResult instead of sendJavascript. - public String toSuccessCallbackString(String callbackId) { - return "cordova.callbackSuccess('"+callbackId+"',"+this.getJSONString()+");"; - } - - @Deprecated // Use sendPluginResult instead of sendJavascript. - public String toErrorCallbackString(String callbackId) { - return "cordova.callbackError('"+callbackId+"', " + this.getJSONString()+ ");"; - } - - public static final int MESSAGE_TYPE_STRING = 1; - public static final int MESSAGE_TYPE_JSON = 2; - public static final int MESSAGE_TYPE_NUMBER = 3; - public static final int MESSAGE_TYPE_BOOLEAN = 4; - public static final int MESSAGE_TYPE_NULL = 5; - public static final int MESSAGE_TYPE_ARRAYBUFFER = 6; - // Use BINARYSTRING when your string may contain null characters. - // This is required to work around a bug in the platform :(. - public static final int MESSAGE_TYPE_BINARYSTRING = 7; - public static final int MESSAGE_TYPE_MULTIPART = 8; - - public static String[] StatusMessages = new String[] { - "No result", - "OK", - "Class not found", - "Illegal access", - "Instantiation error", - "Malformed url", - "IO error", - "Invalid action", - "JSON error", - "Error" - }; - - public enum Status { - NO_RESULT, - OK, - CLASS_NOT_FOUND_EXCEPTION, - ILLEGAL_ACCESS_EXCEPTION, - INSTANTIATION_EXCEPTION, - MALFORMED_URL_EXCEPTION, - IO_EXCEPTION, - INVALID_ACTION, - JSON_EXCEPTION, - ERROR - } -} diff --git a/ionic/platforms/android/CordovaLib/src/org/apache/cordova/ResumeCallback.java b/ionic/platforms/android/CordovaLib/src/org/apache/cordova/ResumeCallback.java deleted file mode 100644 index 49a43b5d46d3035d16313c83b875fd42b021dfa0..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/CordovaLib/src/org/apache/cordova/ResumeCallback.java +++ /dev/null @@ -1,76 +0,0 @@ -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*/ -package org.apache.cordova; - - -import org.json.JSONException; -import org.json.JSONObject; - -import java.util.ArrayList; -import java.util.List; - -public class ResumeCallback extends CallbackContext { - private final String TAG = "CordovaResumeCallback"; - private String serviceName; - private PluginManager pluginManager; - - public ResumeCallback(String serviceName, PluginManager pluginManager) { - super("resumecallback", null); - this.serviceName = serviceName; - this.pluginManager = pluginManager; - } - - @Override - public void sendPluginResult(PluginResult pluginResult) { - synchronized (this) { - if (finished) { - LOG.w(TAG, serviceName + " attempted to send a second callback to ResumeCallback\nResult was: " + pluginResult.getMessage()); - return; - } else { - finished = true; - } - } - - JSONObject event = new JSONObject(); - JSONObject pluginResultObject = new JSONObject(); - - try { - pluginResultObject.put("pluginServiceName", this.serviceName); - pluginResultObject.put("pluginStatus", PluginResult.StatusMessages[pluginResult.getStatus()]); - - event.put("action", "resume"); - event.put("pendingResult", pluginResultObject); - } catch (JSONException e) { - LOG.e(TAG, "Unable to create resume object for Activity Result"); - } - - PluginResult eventResult = new PluginResult(PluginResult.Status.OK, event); - - // We send a list of results to the js so that we don't have to decode - // the PluginResult passed to this CallbackContext into JSON twice. - // The results are combined into an event payload before the event is - // fired on the js side of things (see platform.js) - List<PluginResult> result = new ArrayList<PluginResult>(); - result.add(eventResult); - result.add(pluginResult); - - CoreAndroid appPlugin = (CoreAndroid) pluginManager.getPlugin(CoreAndroid.PLUGIN_NAME); - appPlugin.sendResumeEvent(new PluginResult(PluginResult.Status.OK, result)); - } -} diff --git a/ionic/platforms/android/CordovaLib/src/org/apache/cordova/Whitelist.java b/ionic/platforms/android/CordovaLib/src/org/apache/cordova/Whitelist.java deleted file mode 100644 index d0f823c3ca3dff3cea771771ecd18bfe37182380..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/CordovaLib/src/org/apache/cordova/Whitelist.java +++ /dev/null @@ -1,170 +0,0 @@ -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*/ -package org.apache.cordova; - -import java.net.MalformedURLException; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -import org.apache.cordova.LOG; - -import android.net.Uri; - -public class Whitelist { - private static class URLPattern { - public Pattern scheme; - public Pattern host; - public Integer port; - public Pattern path; - - private String regexFromPattern(String pattern, boolean allowWildcards) { - final String toReplace = "\\.[]{}()^$?+|"; - StringBuilder regex = new StringBuilder(); - for (int i=0; i < pattern.length(); i++) { - char c = pattern.charAt(i); - if (c == '*' && allowWildcards) { - regex.append("."); - } else if (toReplace.indexOf(c) > -1) { - regex.append('\\'); - } - regex.append(c); - } - return regex.toString(); - } - - public URLPattern(String scheme, String host, String port, String path) throws MalformedURLException { - try { - if (scheme == null || "*".equals(scheme)) { - this.scheme = null; - } else { - this.scheme = Pattern.compile(regexFromPattern(scheme, false), Pattern.CASE_INSENSITIVE); - } - if ("*".equals(host)) { - this.host = null; - } else if (host.startsWith("*.")) { - this.host = Pattern.compile("([a-z0-9.-]*\\.)?" + regexFromPattern(host.substring(2), false), Pattern.CASE_INSENSITIVE); - } else { - this.host = Pattern.compile(regexFromPattern(host, false), Pattern.CASE_INSENSITIVE); - } - if (port == null || "*".equals(port)) { - this.port = null; - } else { - this.port = Integer.parseInt(port,10); - } - if (path == null || "/*".equals(path)) { - this.path = null; - } else { - this.path = Pattern.compile(regexFromPattern(path, true)); - } - } catch (NumberFormatException e) { - throw new MalformedURLException("Port must be a number"); - } - } - - public boolean matches(Uri uri) { - try { - return ((scheme == null || scheme.matcher(uri.getScheme()).matches()) && - (host == null || host.matcher(uri.getHost()).matches()) && - (port == null || port.equals(uri.getPort())) && - (path == null || path.matcher(uri.getPath()).matches())); - } catch (Exception e) { - LOG.d(TAG, e.toString()); - return false; - } - } - } - - private ArrayList<URLPattern> whiteList; - - public static final String TAG = "Whitelist"; - - public Whitelist() { - this.whiteList = new ArrayList<URLPattern>(); - } - - /* Match patterns (from http://developer.chrome.com/extensions/match_patterns.html) - * - * <url-pattern> := <scheme>://<host><path> - * <scheme> := '*' | 'http' | 'https' | 'file' | 'ftp' | 'chrome-extension' - * <host> := '*' | '*.' <any char except '/' and '*'>+ - * <path> := '/' <any chars> - * - * We extend this to explicitly allow a port attached to the host, and we allow - * the scheme to be omitted for backwards compatibility. (Also host is not required - * to begin with a "*" or "*.".) - */ - public void addWhiteListEntry(String origin, boolean subdomains) { - if (whiteList != null) { - try { - // Unlimited access to network resources - if (origin.compareTo("*") == 0) { - LOG.d(TAG, "Unlimited access to network resources"); - whiteList = null; - } - else { // specific access - Pattern parts = Pattern.compile("^((\\*|[A-Za-z-]+):(//)?)?(\\*|((\\*\\.)?[^*/:]+))?(:(\\d+))?(/.*)?"); - Matcher m = parts.matcher(origin); - if (m.matches()) { - String scheme = m.group(2); - String host = m.group(4); - // Special case for two urls which are allowed to have empty hosts - if (("file".equals(scheme) || "content".equals(scheme)) && host == null) host = "*"; - String port = m.group(8); - String path = m.group(9); - if (scheme == null) { - // XXX making it stupid friendly for people who forget to include protocol/SSL - whiteList.add(new URLPattern("http", host, port, path)); - whiteList.add(new URLPattern("https", host, port, path)); - } else { - whiteList.add(new URLPattern(scheme, host, port, path)); - } - } - } - } catch (Exception e) { - LOG.d(TAG, "Failed to add origin %s", origin); - } - } - } - - - /** - * Determine if URL is in approved list of URLs to load. - * - * @param uri - * @return true if wide open or whitelisted - */ - public boolean isUrlWhiteListed(String uri) { - // If there is no whitelist, then it's wide open - if (whiteList == null) return true; - - Uri parsedUri = Uri.parse(uri); - // Look for match in white list - Iterator<URLPattern> pit = whiteList.iterator(); - while (pit.hasNext()) { - URLPattern p = pit.next(); - if (p.matches(parsedUri)) { - return true; - } - } - return false; - } - -} diff --git a/ionic/platforms/android/CordovaLib/src/org/apache/cordova/engine/SystemCookieManager.java b/ionic/platforms/android/CordovaLib/src/org/apache/cordova/engine/SystemCookieManager.java deleted file mode 100644 index f8128bc206b849f4a64848468c21248d4a825e76..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/CordovaLib/src/org/apache/cordova/engine/SystemCookieManager.java +++ /dev/null @@ -1,62 +0,0 @@ -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*/ - -package org.apache.cordova.engine; - -import android.annotation.TargetApi; -import android.os.Build; -import android.webkit.CookieManager; -import android.webkit.WebView; - -import org.apache.cordova.ICordovaCookieManager; - -class SystemCookieManager implements ICordovaCookieManager { - - protected final WebView webView; - private final CookieManager cookieManager; - - public SystemCookieManager(WebView webview) { - webView = webview; - cookieManager = CookieManager.getInstance(); - - cookieManager.setAcceptFileSchemeCookies(true); - cookieManager.setAcceptThirdPartyCookies(webView, true); - } - - public void setCookiesEnabled(boolean accept) { - cookieManager.setAcceptCookie(accept); - } - - public void setCookie(final String url, final String value) { - cookieManager.setCookie(url, value); - } - - public String getCookie(final String url) { - return cookieManager.getCookie(url); - } - - @SuppressWarnings("deprecation") - public void clearCookies() { - cookieManager.removeAllCookies(null); - } - - public void flush() { - cookieManager.flush(); - } -}; diff --git a/ionic/platforms/android/CordovaLib/src/org/apache/cordova/engine/SystemExposedJsApi.java b/ionic/platforms/android/CordovaLib/src/org/apache/cordova/engine/SystemExposedJsApi.java deleted file mode 100755 index 94c3d93406bec82e9f38b8330d292c282b4a66c0..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/CordovaLib/src/org/apache/cordova/engine/SystemExposedJsApi.java +++ /dev/null @@ -1,53 +0,0 @@ -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*/ -package org.apache.cordova.engine; - -import android.webkit.JavascriptInterface; - -import org.apache.cordova.CordovaBridge; -import org.apache.cordova.ExposedJsApi; -import org.json.JSONException; - -/** - * Contains APIs that the JS can call. All functions in here should also have - * an equivalent entry in CordovaChromeClient.java, and be added to - * cordova-js/lib/android/plugin/android/promptbasednativeapi.js - */ -class SystemExposedJsApi implements ExposedJsApi { - private final CordovaBridge bridge; - - SystemExposedJsApi(CordovaBridge bridge) { - this.bridge = bridge; - } - - @JavascriptInterface - public String exec(int bridgeSecret, String service, String action, String callbackId, String arguments) throws JSONException, IllegalAccessException { - return bridge.jsExec(bridgeSecret, service, action, callbackId, arguments); - } - - @JavascriptInterface - public void setNativeToJsBridgeMode(int bridgeSecret, int value) throws IllegalAccessException { - bridge.jsSetNativeToJsBridgeMode(bridgeSecret, value); - } - - @JavascriptInterface - public String retrieveJsMessages(int bridgeSecret, boolean fromOnlineEvent) throws IllegalAccessException { - return bridge.jsRetrieveJsMessages(bridgeSecret, fromOnlineEvent); - } -} diff --git a/ionic/platforms/android/CordovaLib/src/org/apache/cordova/engine/SystemWebChromeClient.java b/ionic/platforms/android/CordovaLib/src/org/apache/cordova/engine/SystemWebChromeClient.java deleted file mode 100755 index cad098e45463a7e7bb5cae935db69e2b1a282a43..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/CordovaLib/src/org/apache/cordova/engine/SystemWebChromeClient.java +++ /dev/null @@ -1,270 +0,0 @@ -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*/ -package org.apache.cordova.engine; - -import java.util.Arrays; -import android.annotation.TargetApi; -import android.app.Activity; -import android.content.Context; -import android.content.ActivityNotFoundException; -import android.content.Intent; -import android.net.Uri; -import android.os.Build; -import android.view.Gravity; -import android.view.View; -import android.view.ViewGroup.LayoutParams; -import android.webkit.ConsoleMessage; -import android.webkit.GeolocationPermissions.Callback; -import android.webkit.JsPromptResult; -import android.webkit.JsResult; -import android.webkit.ValueCallback; -import android.webkit.WebChromeClient; -import android.webkit.WebStorage; -import android.webkit.WebView; -import android.webkit.PermissionRequest; -import android.widget.LinearLayout; -import android.widget.ProgressBar; -import android.widget.RelativeLayout; - -import org.apache.cordova.CordovaDialogsHelper; -import org.apache.cordova.CordovaPlugin; -import org.apache.cordova.LOG; - -/** - * This class is the WebChromeClient that implements callbacks for our web view. - * The kind of callbacks that happen here are on the chrome outside the document, - * such as onCreateWindow(), onConsoleMessage(), onProgressChanged(), etc. Related - * to but different than CordovaWebViewClient. - */ -public class SystemWebChromeClient extends WebChromeClient { - - private static final int FILECHOOSER_RESULTCODE = 5173; - private static final String LOG_TAG = "SystemWebChromeClient"; - private long MAX_QUOTA = 100 * 1024 * 1024; - protected final SystemWebViewEngine parentEngine; - - // the video progress view - private View mVideoProgressView; - - private CordovaDialogsHelper dialogsHelper; - private Context appContext; - - private WebChromeClient.CustomViewCallback mCustomViewCallback; - private View mCustomView; - - public SystemWebChromeClient(SystemWebViewEngine parentEngine) { - this.parentEngine = parentEngine; - appContext = parentEngine.webView.getContext(); - dialogsHelper = new CordovaDialogsHelper(appContext); - } - - /** - * Tell the client to display a javascript alert dialog. - */ - @Override - public boolean onJsAlert(WebView view, String url, String message, final JsResult result) { - dialogsHelper.showAlert(message, new CordovaDialogsHelper.Result() { - @Override public void gotResult(boolean success, String value) { - if (success) { - result.confirm(); - } else { - result.cancel(); - } - } - }); - return true; - } - - /** - * Tell the client to display a confirm dialog to the user. - */ - @Override - public boolean onJsConfirm(WebView view, String url, String message, final JsResult result) { - dialogsHelper.showConfirm(message, new CordovaDialogsHelper.Result() { - @Override - public void gotResult(boolean success, String value) { - if (success) { - result.confirm(); - } else { - result.cancel(); - } - } - }); - return true; - } - - /** - * Tell the client to display a prompt dialog to the user. - * If the client returns true, WebView will assume that the client will - * handle the prompt dialog and call the appropriate JsPromptResult method. - * - * Since we are hacking prompts for our own purposes, we should not be using them for - * this purpose, perhaps we should hack console.log to do this instead! - */ - @Override - public boolean onJsPrompt(WebView view, String origin, String message, String defaultValue, final JsPromptResult result) { - // Unlike the @JavascriptInterface bridge, this method is always called on the UI thread. - String handledRet = parentEngine.bridge.promptOnJsPrompt(origin, message, defaultValue); - if (handledRet != null) { - result.confirm(handledRet); - } else { - dialogsHelper.showPrompt(message, defaultValue, new CordovaDialogsHelper.Result() { - @Override - public void gotResult(boolean success, String value) { - if (success) { - result.confirm(value); - } else { - result.cancel(); - } - } - }); - } - return true; - } - - /** - * Handle database quota exceeded notification. - */ - @Override - @SuppressWarnings("deprecation") - public void onExceededDatabaseQuota(String url, String databaseIdentifier, long currentQuota, long estimatedSize, - long totalUsedQuota, WebStorage.QuotaUpdater quotaUpdater) - { - LOG.d(LOG_TAG, "onExceededDatabaseQuota estimatedSize: %d currentQuota: %d totalUsedQuota: %d", estimatedSize, currentQuota, totalUsedQuota); - quotaUpdater.updateQuota(MAX_QUOTA); - } - - @Override - /** - * Instructs the client to show a prompt to ask the user to set the Geolocation permission state for the specified origin. - * - * This also checks for the Geolocation Plugin and requests permission from the application to use Geolocation. - * - * @param origin - * @param callback - */ - public void onGeolocationPermissionsShowPrompt(String origin, Callback callback) { - super.onGeolocationPermissionsShowPrompt(origin, callback); - callback.invoke(origin, true, false); - //Get the plugin, it should be loaded - CordovaPlugin geolocation = parentEngine.pluginManager.getPlugin("Geolocation"); - if(geolocation != null && !geolocation.hasPermisssion()) - { - geolocation.requestPermissions(0); - } - } - - // API level 7 is required for this, see if we could lower this using something else - @Override - @SuppressWarnings("deprecation") - public void onShowCustomView(View view, WebChromeClient.CustomViewCallback callback) { - parentEngine.getCordovaWebView().showCustomView(view, callback); - } - - @Override - @SuppressWarnings("deprecation") - public void onHideCustomView() { - parentEngine.getCordovaWebView().hideCustomView(); - } - - @Override - /** - * Ask the host application for a custom progress view to show while - * a <video> is loading. - * @return View The progress view. - */ - public View getVideoLoadingProgressView() { - if (mVideoProgressView == null) { - // Create a new Loading view programmatically. - - // create the linear layout - LinearLayout layout = new LinearLayout(parentEngine.getView().getContext()); - layout.setOrientation(LinearLayout.VERTICAL); - RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); - layoutParams.addRule(RelativeLayout.CENTER_IN_PARENT); - layout.setLayoutParams(layoutParams); - // the proress bar - ProgressBar bar = new ProgressBar(parentEngine.getView().getContext()); - LinearLayout.LayoutParams barLayoutParams = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); - barLayoutParams.gravity = Gravity.CENTER; - bar.setLayoutParams(barLayoutParams); - layout.addView(bar); - - mVideoProgressView = layout; - } - return mVideoProgressView; - } - - @Override - public boolean onShowFileChooser(WebView webView, final ValueCallback<Uri[]> filePathsCallback, final WebChromeClient.FileChooserParams fileChooserParams) { - // Check if multiple-select is specified - Boolean selectMultiple = false; - if (fileChooserParams.getMode() == WebChromeClient.FileChooserParams.MODE_OPEN_MULTIPLE) { - selectMultiple = true; - } - Intent intent = fileChooserParams.createIntent(); - intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, selectMultiple); - - // Uses Intent.EXTRA_MIME_TYPES to pass multiple mime types. - String[] acceptTypes = fileChooserParams.getAcceptTypes(); - if (acceptTypes.length > 1) { - intent.setType("*/*"); // Accept all, filter mime types by Intent.EXTRA_MIME_TYPES. - intent.putExtra(Intent.EXTRA_MIME_TYPES, acceptTypes); - } - try { - parentEngine.cordova.startActivityForResult(new CordovaPlugin() { - @Override - public void onActivityResult(int requestCode, int resultCode, Intent intent) { - Uri[] result = null; - if (resultCode == Activity.RESULT_OK && intent != null) { - if (intent.getClipData() != null) { - // handle multiple-selected files - final int numSelectedFiles = intent.getClipData().getItemCount(); - result = new Uri[numSelectedFiles]; - for (int i = 0; i < numSelectedFiles; i++) { - result[i] = intent.getClipData().getItemAt(i).getUri(); - LOG.d(LOG_TAG, "Receive file chooser URL: " + result[i]); - } - } - else if (intent.getData() != null) { - // handle single-selected file - result = WebChromeClient.FileChooserParams.parseResult(resultCode, intent); - LOG.d(LOG_TAG, "Receive file chooser URL: " + result); - } - } - filePathsCallback.onReceiveValue(result); - } - }, intent, FILECHOOSER_RESULTCODE); - } catch (ActivityNotFoundException e) { - LOG.w("No activity found to handle file chooser intent.", e); - filePathsCallback.onReceiveValue(null); - } - return true; - } - - @Override - public void onPermissionRequest(final PermissionRequest request) { - LOG.d(LOG_TAG, "onPermissionRequest: " + Arrays.toString(request.getResources())); - request.grant(request.getResources()); - } - - public void destroyLastDialog(){ - dialogsHelper.destroyLastDialog(); - } -} diff --git a/ionic/platforms/android/CordovaLib/src/org/apache/cordova/engine/SystemWebView.java b/ionic/platforms/android/CordovaLib/src/org/apache/cordova/engine/SystemWebView.java deleted file mode 100644 index 01c2f00058e9646fd364d3f97ee58a6d1aabd9d4..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/CordovaLib/src/org/apache/cordova/engine/SystemWebView.java +++ /dev/null @@ -1,88 +0,0 @@ -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*/ - -package org.apache.cordova.engine; - -import android.content.Context; -import android.util.AttributeSet; -import android.view.KeyEvent; -import android.webkit.WebChromeClient; -import android.webkit.WebView; -import android.webkit.WebViewClient; - -import org.apache.cordova.CordovaInterface; -import org.apache.cordova.CordovaWebView; -import org.apache.cordova.CordovaWebViewEngine; - -/** - * Custom WebView subclass that enables us to capture events needed for Cordova. - */ -public class SystemWebView extends WebView implements CordovaWebViewEngine.EngineView { - private SystemWebViewClient viewClient; - SystemWebChromeClient chromeClient; - private SystemWebViewEngine parentEngine; - private CordovaInterface cordova; - - public SystemWebView(Context context) { - this(context, null); - } - - public SystemWebView(Context context, AttributeSet attrs) { - super(context, attrs); - } - - // Package visibility to enforce that only SystemWebViewEngine should call this method. - void init(SystemWebViewEngine parentEngine, CordovaInterface cordova) { - this.cordova = cordova; - this.parentEngine = parentEngine; - if (this.viewClient == null) { - setWebViewClient(new SystemWebViewClient(parentEngine)); - } - - if (this.chromeClient == null) { - setWebChromeClient(new SystemWebChromeClient(parentEngine)); - } - } - - @Override - public CordovaWebView getCordovaWebView() { - return parentEngine != null ? parentEngine.getCordovaWebView() : null; - } - - @Override - public void setWebViewClient(WebViewClient client) { - viewClient = (SystemWebViewClient)client; - super.setWebViewClient(client); - } - - @Override - public void setWebChromeClient(WebChromeClient client) { - chromeClient = (SystemWebChromeClient)client; - super.setWebChromeClient(client); - } - - @Override - public boolean dispatchKeyEvent(KeyEvent event) { - Boolean ret = parentEngine.client.onDispatchKeyEvent(event); - if (ret != null) { - return ret.booleanValue(); - } - return super.dispatchKeyEvent(event); - } -} diff --git a/ionic/platforms/android/CordovaLib/src/org/apache/cordova/engine/SystemWebViewClient.java b/ionic/platforms/android/CordovaLib/src/org/apache/cordova/engine/SystemWebViewClient.java deleted file mode 100755 index af9e51f118819ac74a697193af559e195f1424ae..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/CordovaLib/src/org/apache/cordova/engine/SystemWebViewClient.java +++ /dev/null @@ -1,369 +0,0 @@ -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*/ -package org.apache.cordova.engine; - -import android.annotation.TargetApi; -import android.content.pm.ApplicationInfo; -import android.content.pm.PackageManager; -import android.content.pm.PackageManager.NameNotFoundException; -import android.graphics.Bitmap; -import android.net.Uri; -import android.net.http.SslError; -import android.os.Build; -import android.webkit.ClientCertRequest; -import android.webkit.HttpAuthHandler; -import android.webkit.SslErrorHandler; -import android.webkit.WebResourceResponse; -import android.webkit.WebView; -import android.webkit.WebViewClient; - -import org.apache.cordova.AuthenticationToken; -import org.apache.cordova.CordovaClientCertRequest; -import org.apache.cordova.CordovaHttpAuthHandler; -import org.apache.cordova.CordovaResourceApi; -import org.apache.cordova.LOG; -import org.apache.cordova.PluginManager; - -import java.io.FileNotFoundException; -import java.io.IOException; -import java.util.Hashtable; - - -/** - * This class is the WebViewClient that implements callbacks for our web view. - * The kind of callbacks that happen here are regarding the rendering of the - * document instead of the chrome surrounding it, such as onPageStarted(), - * shouldOverrideUrlLoading(), etc. Related to but different than - * CordovaChromeClient. - */ -public class SystemWebViewClient extends WebViewClient { - - private static final String TAG = "SystemWebViewClient"; - protected final SystemWebViewEngine parentEngine; - private boolean doClearHistory = false; - boolean isCurrentlyLoading; - - /** The authorization tokens. */ - private Hashtable<String, AuthenticationToken> authenticationTokens = new Hashtable<String, AuthenticationToken>(); - - public SystemWebViewClient(SystemWebViewEngine parentEngine) { - this.parentEngine = parentEngine; - } - - /** - * Give the host application a chance to take over the control when a new url - * is about to be loaded in the current WebView. - * - * @param view The WebView that is initiating the callback. - * @param url The url to be loaded. - * @return true to override, false for default behavior - */ - @Override - @SuppressWarnings("deprecation") - public boolean shouldOverrideUrlLoading(WebView view, String url) { - return parentEngine.client.onNavigationAttempt(url); - } - - /** - * On received http auth request. - * The method reacts on all registered authentication tokens. There is one and only one authentication token for any host + realm combination - */ - @Override - public void onReceivedHttpAuthRequest(WebView view, HttpAuthHandler handler, String host, String realm) { - - // Get the authentication token (if specified) - AuthenticationToken token = this.getAuthenticationToken(host, realm); - if (token != null) { - handler.proceed(token.getUserName(), token.getPassword()); - return; - } - - // Check if there is some plugin which can resolve this auth challenge - PluginManager pluginManager = this.parentEngine.pluginManager; - if (pluginManager != null && pluginManager.onReceivedHttpAuthRequest(null, new CordovaHttpAuthHandler(handler), host, realm)) { - parentEngine.client.clearLoadTimeoutTimer(); - return; - } - - // By default handle 401 like we'd normally do! - super.onReceivedHttpAuthRequest(view, handler, host, realm); - } - - /** - * On received client cert request. - * The method forwards the request to any running plugins before using the default implementation. - * - * @param view - * @param request - */ - @Override - public void onReceivedClientCertRequest (WebView view, ClientCertRequest request) - { - - // Check if there is some plugin which can resolve this certificate request - PluginManager pluginManager = this.parentEngine.pluginManager; - if (pluginManager != null && pluginManager.onReceivedClientCertRequest(null, new CordovaClientCertRequest(request))) { - parentEngine.client.clearLoadTimeoutTimer(); - return; - } - - // By default pass to WebViewClient - super.onReceivedClientCertRequest(view, request); - } - - /** - * Notify the host application that a page has started loading. - * This method is called once for each main frame load so a page with iframes or framesets will call onPageStarted - * one time for the main frame. This also means that onPageStarted will not be called when the contents of an - * embedded frame changes, i.e. clicking a link whose target is an iframe. - * - * @param view The webview initiating the callback. - * @param url The url of the page. - */ - @Override - public void onPageStarted(WebView view, String url, Bitmap favicon) { - super.onPageStarted(view, url, favicon); - isCurrentlyLoading = true; - // Flush stale messages & reset plugins. - parentEngine.bridge.reset(); - parentEngine.client.onPageStarted(url); - } - - /** - * Notify the host application that a page has finished loading. - * This method is called only for main frame. When onPageFinished() is called, the rendering picture may not be updated yet. - * - * - * @param view The webview initiating the callback. - * @param url The url of the page. - */ - @Override - public void onPageFinished(WebView view, String url) { - super.onPageFinished(view, url); - // Ignore excessive calls, if url is not about:blank (CB-8317). - if (!isCurrentlyLoading && !url.startsWith("about:")) { - return; - } - isCurrentlyLoading = false; - - /** - * Because of a timing issue we need to clear this history in onPageFinished as well as - * onPageStarted. However we only want to do this if the doClearHistory boolean is set to - * true. You see when you load a url with a # in it which is common in jQuery applications - * onPageStared is not called. Clearing the history at that point would break jQuery apps. - */ - if (this.doClearHistory) { - view.clearHistory(); - this.doClearHistory = false; - } - parentEngine.client.onPageFinishedLoading(url); - - } - - /** - * Report an error to the host application. These errors are unrecoverable (i.e. the main resource is unavailable). - * The errorCode parameter corresponds to one of the ERROR_* constants. - * - * @param view The WebView that is initiating the callback. - * @param errorCode The error code corresponding to an ERROR_* value. - * @param description A String describing the error. - * @param failingUrl The url that failed to load. - */ - @Override - @SuppressWarnings("deprecation") - public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { - // Ignore error due to stopLoading(). - if (!isCurrentlyLoading) { - return; - } - LOG.d(TAG, "CordovaWebViewClient.onReceivedError: Error code=%s Description=%s URL=%s", errorCode, description, failingUrl); - - // If this is a "Protocol Not Supported" error, then revert to the previous - // page. If there was no previous page, then punt. The application's config - // is likely incorrect (start page set to sms: or something like that) - if (errorCode == WebViewClient.ERROR_UNSUPPORTED_SCHEME) { - parentEngine.client.clearLoadTimeoutTimer(); - - if (view.canGoBack()) { - view.goBack(); - return; - } else { - super.onReceivedError(view, errorCode, description, failingUrl); - } - } - parentEngine.client.onReceivedError(errorCode, description, failingUrl); - } - - /** - * Notify the host application that an SSL error occurred while loading a resource. - * The host application must call either handler.cancel() or handler.proceed(). - * Note that the decision may be retained for use in response to future SSL errors. - * The default behavior is to cancel the load. - * - * @param view The WebView that is initiating the callback. - * @param handler An SslErrorHandler object that will handle the user's response. - * @param error The SSL error object. - */ - @Override - public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) { - - final String packageName = parentEngine.cordova.getActivity().getPackageName(); - final PackageManager pm = parentEngine.cordova.getActivity().getPackageManager(); - - ApplicationInfo appInfo; - try { - appInfo = pm.getApplicationInfo(packageName, PackageManager.GET_META_DATA); - if ((appInfo.flags & ApplicationInfo.FLAG_DEBUGGABLE) != 0) { - // debug = true - handler.proceed(); - return; - } else { - // debug = false - super.onReceivedSslError(view, handler, error); - } - } catch (NameNotFoundException e) { - // When it doubt, lock it out! - super.onReceivedSslError(view, handler, error); - } - } - - - /** - * Sets the authentication token. - * - * @param authenticationToken - * @param host - * @param realm - */ - public void setAuthenticationToken(AuthenticationToken authenticationToken, String host, String realm) { - if (host == null) { - host = ""; - } - if (realm == null) { - realm = ""; - } - this.authenticationTokens.put(host.concat(realm), authenticationToken); - } - - /** - * Removes the authentication token. - * - * @param host - * @param realm - * - * @return the authentication token or null if did not exist - */ - public AuthenticationToken removeAuthenticationToken(String host, String realm) { - return this.authenticationTokens.remove(host.concat(realm)); - } - - /** - * Gets the authentication token. - * - * In order it tries: - * 1- host + realm - * 2- host - * 3- realm - * 4- no host, no realm - * - * @param host - * @param realm - * - * @return the authentication token - */ - public AuthenticationToken getAuthenticationToken(String host, String realm) { - AuthenticationToken token = null; - token = this.authenticationTokens.get(host.concat(realm)); - - if (token == null) { - // try with just the host - token = this.authenticationTokens.get(host); - - // Try the realm - if (token == null) { - token = this.authenticationTokens.get(realm); - } - - // if no host found, just query for default - if (token == null) { - token = this.authenticationTokens.get(""); - } - } - - return token; - } - - /** - * Clear all authentication tokens. - */ - public void clearAuthenticationTokens() { - this.authenticationTokens.clear(); - } - - @Override - @SuppressWarnings("deprecation") - public WebResourceResponse shouldInterceptRequest(WebView view, String url) { - try { - // Check the against the whitelist and lock out access to the WebView directory - // Changing this will cause problems for your application - if (!parentEngine.pluginManager.shouldAllowRequest(url)) { - LOG.w(TAG, "URL blocked by whitelist: " + url); - // Results in a 404. - return new WebResourceResponse("text/plain", "UTF-8", null); - } - - CordovaResourceApi resourceApi = parentEngine.resourceApi; - Uri origUri = Uri.parse(url); - // Allow plugins to intercept WebView requests. - Uri remappedUri = resourceApi.remapUri(origUri); - - if (!origUri.equals(remappedUri) || needsSpecialsInAssetUrlFix(origUri) || needsContentUrlFix(origUri)) { - CordovaResourceApi.OpenForReadResult result = resourceApi.openForRead(remappedUri, true); - return new WebResourceResponse(result.mimeType, "UTF-8", result.inputStream); - } - // If we don't need to special-case the request, let the browser load it. - return null; - } catch (IOException e) { - if (!(e instanceof FileNotFoundException)) { - LOG.e(TAG, "Error occurred while loading a file (returning a 404).", e); - } - // Results in a 404. - return new WebResourceResponse("text/plain", "UTF-8", null); - } - } - - private static boolean needsContentUrlFix(Uri uri) { - return "content".equals(uri.getScheme()); - } - - private static boolean needsSpecialsInAssetUrlFix(Uri uri) { - if (CordovaResourceApi.getUriType(uri) != CordovaResourceApi.URI_TYPE_ASSET) { - return false; - } - if (uri.getQuery() != null || uri.getFragment() != null) { - return true; - } - - if (!uri.toString().contains("%")) { - return false; - } - - return false; - } -} diff --git a/ionic/platforms/android/CordovaLib/src/org/apache/cordova/engine/SystemWebViewEngine.java b/ionic/platforms/android/CordovaLib/src/org/apache/cordova/engine/SystemWebViewEngine.java deleted file mode 100755 index 3201c7440a7485732afb0d25aad1f7cd306c8255..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/CordovaLib/src/org/apache/cordova/engine/SystemWebViewEngine.java +++ /dev/null @@ -1,319 +0,0 @@ -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*/ - -package org.apache.cordova.engine; - -import android.annotation.SuppressLint; -import android.annotation.TargetApi; -import android.content.BroadcastReceiver; -import android.content.Context; -import android.content.Intent; -import android.content.IntentFilter; -import android.content.pm.ApplicationInfo; -import android.os.Build; -import android.view.View; -import android.webkit.ValueCallback; -import android.webkit.WebSettings; -import android.webkit.WebSettings.LayoutAlgorithm; -import android.webkit.WebView; - -import org.apache.cordova.CordovaBridge; -import org.apache.cordova.CordovaInterface; -import org.apache.cordova.CordovaPreferences; -import org.apache.cordova.CordovaResourceApi; -import org.apache.cordova.CordovaWebView; -import org.apache.cordova.CordovaWebViewEngine; -import org.apache.cordova.ICordovaCookieManager; -import org.apache.cordova.LOG; -import org.apache.cordova.NativeToJsMessageQueue; -import org.apache.cordova.PluginManager; - -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; - - -/** - * Glue class between CordovaWebView (main Cordova logic) and SystemWebView (the actual View). - * We make the Engine separate from the actual View so that: - * A) We don't need to worry about WebView methods clashing with CordovaWebViewEngine methods - * (e.g.: goBack() is void for WebView, and boolean for CordovaWebViewEngine) - * B) Separating the actual View from the Engine makes API surfaces smaller. - * Class uses two-phase initialization. However, CordovaWebView is responsible for calling .init(). - */ -public class SystemWebViewEngine implements CordovaWebViewEngine { - public static final String TAG = "SystemWebViewEngine"; - - protected final SystemWebView webView; - protected final SystemCookieManager cookieManager; - protected CordovaPreferences preferences; - protected CordovaBridge bridge; - protected CordovaWebViewEngine.Client client; - protected CordovaWebView parentWebView; - protected CordovaInterface cordova; - protected PluginManager pluginManager; - protected CordovaResourceApi resourceApi; - protected NativeToJsMessageQueue nativeToJsMessageQueue; - private BroadcastReceiver receiver; - - /** Used when created via reflection. */ - public SystemWebViewEngine(Context context, CordovaPreferences preferences) { - this(new SystemWebView(context), preferences); - } - - public SystemWebViewEngine(SystemWebView webView) { - this(webView, null); - } - - public SystemWebViewEngine(SystemWebView webView, CordovaPreferences preferences) { - this.preferences = preferences; - this.webView = webView; - cookieManager = new SystemCookieManager(webView); - } - - @Override - public void init(CordovaWebView parentWebView, CordovaInterface cordova, CordovaWebViewEngine.Client client, - CordovaResourceApi resourceApi, PluginManager pluginManager, - NativeToJsMessageQueue nativeToJsMessageQueue) { - if (this.cordova != null) { - throw new IllegalStateException(); - } - // Needed when prefs are not passed by the constructor - if (preferences == null) { - preferences = parentWebView.getPreferences(); - } - this.parentWebView = parentWebView; - this.cordova = cordova; - this.client = client; - this.resourceApi = resourceApi; - this.pluginManager = pluginManager; - this.nativeToJsMessageQueue = nativeToJsMessageQueue; - webView.init(this, cordova); - - initWebViewSettings(); - - nativeToJsMessageQueue.addBridgeMode(new NativeToJsMessageQueue.OnlineEventsBridgeMode(new NativeToJsMessageQueue.OnlineEventsBridgeMode.OnlineEventsBridgeModeDelegate() { - @Override - public void setNetworkAvailable(boolean value) { - //sometimes this can be called after calling webview.destroy() on destroy() - //thus resulting in a NullPointerException - if(webView!=null) { - webView.setNetworkAvailable(value); - } - } - @Override - public void runOnUiThread(Runnable r) { - SystemWebViewEngine.this.cordova.getActivity().runOnUiThread(r); - } - })); - nativeToJsMessageQueue.addBridgeMode(new NativeToJsMessageQueue.EvalBridgeMode(this, cordova)); - bridge = new CordovaBridge(pluginManager, nativeToJsMessageQueue); - exposeJsInterface(webView, bridge); - } - - @Override - public CordovaWebView getCordovaWebView() { - return parentWebView; - } - - @Override - public ICordovaCookieManager getCookieManager() { - return cookieManager; - } - - @Override - public View getView() { - return webView; - } - - @SuppressLint({"NewApi", "SetJavaScriptEnabled"}) - @SuppressWarnings("deprecation") - private void initWebViewSettings() { - webView.setInitialScale(0); - webView.setVerticalScrollBarEnabled(false); - // Enable JavaScript - final WebSettings settings = webView.getSettings(); - settings.setJavaScriptEnabled(true); - settings.setJavaScriptCanOpenWindowsAutomatically(true); - settings.setLayoutAlgorithm(LayoutAlgorithm.NORMAL); - - String manufacturer = android.os.Build.MANUFACTURER; - LOG.d(TAG, "CordovaWebView is running on device made by: " + manufacturer); - - //We don't save any form data in the application - settings.setSaveFormData(false); - settings.setSavePassword(false); - - // Jellybean rightfully tried to lock this down. Too bad they didn't give us a whitelist - // while we do this - settings.setAllowUniversalAccessFromFileURLs(true); - settings.setMediaPlaybackRequiresUserGesture(false); - - // Enable database - // We keep this disabled because we use or shim to get around DOM_EXCEPTION_ERROR_16 - String databasePath = webView.getContext().getApplicationContext().getDir("database", Context.MODE_PRIVATE).getPath(); - settings.setDatabaseEnabled(true); - settings.setDatabasePath(databasePath); - - - //Determine whether we're in debug or release mode, and turn on Debugging! - ApplicationInfo appInfo = webView.getContext().getApplicationContext().getApplicationInfo(); - if ((appInfo.flags & ApplicationInfo.FLAG_DEBUGGABLE) != 0) { - enableRemoteDebugging(); - } - - settings.setGeolocationDatabasePath(databasePath); - - // Enable DOM storage - settings.setDomStorageEnabled(true); - - // Enable built-in geolocation - settings.setGeolocationEnabled(true); - - // Enable AppCache - // Fix for CB-2282 - settings.setAppCacheMaxSize(5 * 1048576); - settings.setAppCachePath(databasePath); - settings.setAppCacheEnabled(true); - - // Fix for CB-1405 - // Google issue 4641 - String defaultUserAgent = settings.getUserAgentString(); - - // Fix for CB-3360 - String overrideUserAgent = preferences.getString("OverrideUserAgent", null); - if (overrideUserAgent != null) { - settings.setUserAgentString(overrideUserAgent); - } else { - String appendUserAgent = preferences.getString("AppendUserAgent", null); - if (appendUserAgent != null) { - settings.setUserAgentString(defaultUserAgent + " " + appendUserAgent); - } - } - // End CB-3360 - - IntentFilter intentFilter = new IntentFilter(); - intentFilter.addAction(Intent.ACTION_CONFIGURATION_CHANGED); - if (this.receiver == null) { - this.receiver = new BroadcastReceiver() { - @Override - public void onReceive(Context context, Intent intent) { - settings.getUserAgentString(); - } - }; - webView.getContext().registerReceiver(this.receiver, intentFilter); - } - // end CB-1405 - } - - private void enableRemoteDebugging() { - try { - WebView.setWebContentsDebuggingEnabled(true); - } catch (IllegalArgumentException e) { - LOG.d(TAG, "You have one job! To turn on Remote Web Debugging! YOU HAVE FAILED! "); - e.printStackTrace(); - } - } - - // Yeah, we know. It'd be great if lint was just a little smarter. - @SuppressLint("AddJavascriptInterface") - private static void exposeJsInterface(WebView webView, CordovaBridge bridge) { - SystemExposedJsApi exposedJsApi = new SystemExposedJsApi(bridge); - webView.addJavascriptInterface(exposedJsApi, "_cordovaNative"); - } - - - /** - * Load the url into the webview. - */ - @Override - public void loadUrl(final String url, boolean clearNavigationStack) { - webView.loadUrl(url); - } - - @Override - public String getUrl() { - return webView.getUrl(); - } - - @Override - public void stopLoading() { - webView.stopLoading(); - } - - @Override - public void clearCache() { - webView.clearCache(true); - } - - @Override - public void clearHistory() { - webView.clearHistory(); - } - - @Override - public boolean canGoBack() { - return webView.canGoBack(); - } - - /** - * Go to previous page in history. (We manage our own history) - * - * @return true if we went back, false if we are already at top - */ - @Override - public boolean goBack() { - // Check webview first to see if there is a history - // This is needed to support curPage#diffLink, since they are added to parentEngine's history, but not our history url array (JQMobile behavior) - if (webView.canGoBack()) { - webView.goBack(); - return true; - } - return false; - } - - @Override - public void setPaused(boolean value) { - if (value) { - webView.onPause(); - webView.pauseTimers(); - } else { - webView.onResume(); - webView.resumeTimers(); - } - } - - @Override - public void destroy() { - webView.chromeClient.destroyLastDialog(); - webView.destroy(); - // unregister the receiver - if (receiver != null) { - try { - webView.getContext().unregisterReceiver(receiver); - } catch (Exception e) { - LOG.e(TAG, "Error unregistering configuration receiver: " + e.getMessage(), e); - } - } - } - - @Override - public void evaluateJavascript(String js, ValueCallback<String> callback) { - webView.evaluateJavascript(js, callback); - } -} diff --git a/ionic/platforms/android/android.json b/ionic/platforms/android/android.json deleted file mode 100644 index 9cb37ea0a3658b967b10239717f9be357ab54456..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/android.json +++ /dev/null @@ -1,153 +0,0 @@ -{ - "prepare_queue": { - "installed": [], - "uninstalled": [] - }, - "config_munge": { - "files": { - "app/src/main/AndroidManifest.xml": { - "parents": { - "/manifest/application": [ - { - "xml": "<application android:networkSecurityConfig=\"@xml/network_security_config\" />", - "count": 1, - "mode": "merge", - "id": "config.xml", - "oldAttrib": { - "android:hardwareAccelerated": "true", - "android:icon": "@mipmap/ic_launcher", - "android:label": "@string/app_name", - "android:networkSecurityConfig": "@xml/network_security_config", - "android:supportsRtl": "true" - } - } - ] - } - }, - "res/xml/config.xml": { - "parents": { - "/*": [ - { - "xml": "<feature name=\"Whitelist\"><param name=\"android-package\" value=\"org.apache.cordova.whitelist.WhitelistPlugin\" /><param name=\"onload\" value=\"true\" /></feature>", - "count": 1 - }, - { - "xml": "<feature name=\"StatusBar\"><param name=\"android-package\" value=\"org.apache.cordova.statusbar.StatusBar\" /><param name=\"onload\" value=\"true\" /></feature>", - "count": 1 - }, - { - "xml": "<feature name=\"Device\"><param name=\"android-package\" value=\"org.apache.cordova.device.Device\" /></feature>", - "count": 1 - }, - { - "xml": "<feature name=\"SplashScreen\"><param name=\"android-package\" value=\"org.apache.cordova.splashscreen.SplashScreen\" /><param name=\"onload\" value=\"true\" /></feature>", - "count": 1 - } - ] - } - }, - "config.xml": { - "parents": { - "/*": [ - { - "xml": "<allow-navigation href=\"http://localhost/*\" />", - "count": 1 - }, - { - "xml": "<allow-navigation href=\"https://localhost/*\" />", - "count": 1 - }, - { - "xml": "<allow-navigation href=\"ionic://*\" />", - "count": 1 - }, - { - "xml": "<preference name=\"webView\" value=\"com.ionicframework.cordova.webview.IonicWebViewEngine\" />", - "count": 1 - }, - { - "xml": "<feature name=\"IonicWebView\"><param name=\"android-package\" value=\"com.ionicframework.cordova.webview.IonicWebView\" /></feature>", - "count": 1 - }, - { - "xml": "<feature name=\"CDVIonicKeyboard\"><param name=\"android-package\" onload=\"true\" value=\"io.ionic.keyboard.CDVIonicKeyboard\" /></feature>", - "count": 1 - } - ] - } - } - } - }, - "installed_plugins": { - "cordova-plugin-whitelist": { - "PACKAGE_NAME": "io.ionic.starter" - }, - "cordova-plugin-statusbar": { - "PACKAGE_NAME": "io.ionic.starter" - }, - "cordova-plugin-device": { - "PACKAGE_NAME": "io.ionic.starter" - }, - "cordova-plugin-splashscreen": { - "PACKAGE_NAME": "io.ionic.starter" - }, - "cordova-plugin-ionic-webview": { - "ANDROID_SUPPORT_ANNOTATIONS_VERSION": "27.+", - "PACKAGE_NAME": "io.ionic.starter" - }, - "cordova-plugin-ionic-keyboard": { - "PACKAGE_NAME": "io.ionic.starter" - } - }, - "dependent_plugins": {}, - "modules": [ - { - "id": "cordova-plugin-statusbar.statusbar", - "file": "plugins/cordova-plugin-statusbar/www/statusbar.js", - "pluginId": "cordova-plugin-statusbar", - "clobbers": [ - "window.StatusBar" - ] - }, - { - "id": "cordova-plugin-device.device", - "file": "plugins/cordova-plugin-device/www/device.js", - "pluginId": "cordova-plugin-device", - "clobbers": [ - "device" - ] - }, - { - "id": "cordova-plugin-splashscreen.SplashScreen", - "file": "plugins/cordova-plugin-splashscreen/www/splashscreen.js", - "pluginId": "cordova-plugin-splashscreen", - "clobbers": [ - "navigator.splashscreen" - ] - }, - { - "id": "cordova-plugin-ionic-webview.IonicWebView", - "file": "plugins/cordova-plugin-ionic-webview/src/www/util.js", - "pluginId": "cordova-plugin-ionic-webview", - "clobbers": [ - "Ionic.WebView" - ] - }, - { - "id": "cordova-plugin-ionic-keyboard.keyboard", - "file": "plugins/cordova-plugin-ionic-keyboard/www/android/keyboard.js", - "pluginId": "cordova-plugin-ionic-keyboard", - "clobbers": [ - "window.Keyboard" - ] - } - ], - "plugin_metadata": { - "cordova-plugin-whitelist": "1.3.3", - "cordova-plugin-statusbar": "2.4.2", - "cordova-plugin-device": "2.0.2", - "cordova-plugin-splashscreen": "5.0.2", - "cordova-plugin-ionic-webview": "4.2.1", - "cordova-plugin-ionic-keyboard": "2.2.0" - } -} diff --git a/ionic/platforms/android/app/build.gradle b/ionic/platforms/android/app/build.gradle deleted file mode 100644 index c89965d7700da696fb58ba79048e031a6f3dafce..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/build.gradle +++ /dev/null @@ -1,420 +0,0 @@ -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*/ - -apply plugin: 'com.android.application' - -if (cdvHelpers.getConfigPreference('GradlePluginKotlinEnabled', 'false').toBoolean()) { - apply plugin: 'kotlin-android' - apply plugin: 'kotlin-android-extensions' -} - -buildscript { - apply from: '../CordovaLib/cordova.gradle' - - if(cdvHelpers.getConfigPreference('GradlePluginKotlinEnabled', 'false').toBoolean()) { - String defaultGradlePluginKotlinVersion = kotlin_version - - /** - * Fetches the user's defined Kotlin Version from config.xml. - * If the version is not set or invalid, it will default to the ${defaultGradlePluginKotlinVersion} - */ - String gradlePluginKotlinVersion = cdvHelpers.getConfigPreference('GradlePluginKotlinVersion', defaultGradlePluginKotlinVersion) - if(!cdvHelpers.isVersionValid(gradlePluginKotlinVersion)) { - println("The defined Kotlin version (${gradlePluginKotlinVersion}) does not appear to be a valid version. Falling back to version: ${defaultGradlePluginKotlinVersion}.") - gradlePluginKotlinVersion = defaultGradlePluginKotlinVersion - } - - // Change the version to be used. - ext.kotlin_version = gradlePluginKotlinVersion - } - - repositories { - mavenCentral() - google() - jcenter() - } - - dependencies { - apply from: '../CordovaLib/cordova.gradle' - - classpath 'com.android.tools.build:gradle:4.0.0' - - if (cdvHelpers.getConfigPreference('GradlePluginKotlinEnabled', 'false').toBoolean()) { - classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" - } - - if(cdvHelpers.getConfigPreference('GradlePluginGoogleServicesEnabled', 'false').toBoolean()) { - String defaultGradlePluginGoogleServicesVersion = '4.2.0' - - /** - * Fetches the user's defined Google Services Plugin Version from config.xml. - * If the version is not set or invalid, it will default to the ${defaultGradlePluginGoogleServicesVersion} - */ - String gradlePluginGoogleServicesVersion = cdvHelpers.getConfigPreference('GradlePluginGoogleServicesVersion', defaultGradlePluginGoogleServicesVersion) - if(!cdvHelpers.isVersionValid(gradlePluginGoogleServicesVersion)) { - println("The defined Google Services plugin version (${gradlePluginGoogleServicesVersion}) does not appear to be a valid version. Falling back to version: ${defaultGradlePluginGoogleServicesVersion}.") - gradlePluginGoogleServicesVersion = defaultGradlePluginGoogleServicesVersion - } - - // Create the Google Services classpath and set it. - String gradlePluginGoogleServicesClassPath = "com.google.gms:google-services:${gradlePluginGoogleServicesVersion}" - println "Adding classpath: ${gradlePluginGoogleServicesClassPath}" - classpath gradlePluginGoogleServicesClassPath - } - } -} - -// Allow plugins to declare Maven dependencies via build-extras.gradle. -allprojects { - repositories { - mavenCentral() - jcenter() - } -} - -task wrapper(type: Wrapper) { - gradleVersion = '6.5' -} - -// Configuration properties. Set these via environment variables, build-extras.gradle, or gradle.properties. -// Refer to: http://www.gradle.org/docs/current/userguide/tutorial_this_and_that.html -ext { - apply from: '../CordovaLib/cordova.gradle' - - // The value for android.compileSdkVersion. - if (!project.hasProperty('cdvCompileSdkVersion')) { - cdvCompileSdkVersion = null; - } - // The value for android.buildToolsVersion. - if (!project.hasProperty('cdvBuildToolsVersion')) { - cdvBuildToolsVersion = null; - } - // Sets the versionCode to the given value. - if (!project.hasProperty('cdvVersionCode')) { - cdvVersionCode = null - } - // Sets the minSdkVersion to the given value. - if (!project.hasProperty('cdvMinSdkVersion')) { - cdvMinSdkVersion = null - } - // Sets the maxSdkVersion to the given value. - if (!project.hasProperty('cdvMaxSdkVersion')) { - cdvMaxSdkVersion = null - } - // The value for android.targetSdkVersion. - if (!project.hasProperty('cdvTargetSdkVersion')) { - cdvTargetSdkVersion = null; - } - // Whether to build architecture-specific APKs. - if (!project.hasProperty('cdvBuildMultipleApks')) { - cdvBuildMultipleApks = null - } - // Whether to append a 0 "abi digit" to versionCode when only a single APK is build - if (!project.hasProperty('cdvVersionCodeForceAbiDigit')) { - cdvVersionCodeForceAbiDigit = null - } - // .properties files to use for release signing. - if (!project.hasProperty('cdvReleaseSigningPropertiesFile')) { - cdvReleaseSigningPropertiesFile = null - } - // .properties files to use for debug signing. - if (!project.hasProperty('cdvDebugSigningPropertiesFile')) { - cdvDebugSigningPropertiesFile = null - } - // Set by build.js script. - if (!project.hasProperty('cdvBuildArch')) { - cdvBuildArch = null - } - - // Plugin gradle extensions can append to this to have code run at the end. - cdvPluginPostBuildExtras = [] -} - -// PLUGIN GRADLE EXTENSIONS START -// PLUGIN GRADLE EXTENSIONS END - -def hasBuildExtras1 = file('build-extras.gradle').exists() -if (hasBuildExtras1) { - apply from: 'build-extras.gradle' -} - -def hasBuildExtras2 = file('../build-extras.gradle').exists() -if (hasBuildExtras2) { - apply from: '../build-extras.gradle' -} - -// Set property defaults after extension .gradle files. -ext.cdvCompileSdkVersion = cdvCompileSdkVersion == null ? ( - defaultCompileSdkVersion == null - ? privateHelpers.getProjectTarget() - : defaultCompileSdkVersion -) : Integer.parseInt('' + cdvCompileSdkVersion); - -if (ext.cdvBuildToolsVersion == null) { - ext.cdvBuildToolsVersion = privateHelpers.findLatestInstalledBuildTools() - //ext.cdvBuildToolsVersion = project.ext.defaultBuildToolsVersion -} -if (ext.cdvDebugSigningPropertiesFile == null && file('../debug-signing.properties').exists()) { - ext.cdvDebugSigningPropertiesFile = '../debug-signing.properties' -} -if (ext.cdvReleaseSigningPropertiesFile == null && file('../release-signing.properties').exists()) { - ext.cdvReleaseSigningPropertiesFile = '../release-signing.properties' -} - -// Cast to appropriate types. -ext.cdvBuildMultipleApks = cdvBuildMultipleApks == null ? false : cdvBuildMultipleApks.toBoolean(); -ext.cdvVersionCodeForceAbiDigit = cdvVersionCodeForceAbiDigit == null ? false : cdvVersionCodeForceAbiDigit.toBoolean(); - -// minSdkVersion, maxSdkVersion and targetSdkVersion -ext.cdvMinSdkVersion = cdvMinSdkVersion == null ? defaultMinSdkVersion : Integer.parseInt('' + cdvMinSdkVersion) -if (cdvMaxSdkVersion != null) { - ext.cdvMaxSdkVersion = Integer.parseInt('' + cdvMaxSdkVersion) -} -ext.cdvTargetSdkVersion = cdvTargetSdkVersion == null ? defaultTargetSdkVersion : Integer.parseInt('' + cdvTargetSdkVersion) - -ext.cdvVersionCode = cdvVersionCode == null ? null : Integer.parseInt('' + cdvVersionCode) - -def computeBuildTargetName(debugBuild) { - def ret = 'assemble' - if (cdvBuildMultipleApks && cdvBuildArch) { - def arch = cdvBuildArch == 'arm' ? 'armv7' : cdvBuildArch - ret += '' + arch.toUpperCase().charAt(0) + arch.substring(1); - } - return ret + (debugBuild ? 'Debug' : 'Release') -} - -// Make cdvBuild a task that depends on the debug/arch-sepecific task. -task cdvBuildDebug -cdvBuildDebug.dependsOn { - return computeBuildTargetName(true) -} - -task cdvBuildRelease -cdvBuildRelease.dependsOn { - return computeBuildTargetName(false) -} - -task cdvPrintProps { - doLast { - println('cdvCompileSdkVersion=' + cdvCompileSdkVersion) - println('cdvBuildToolsVersion=' + cdvBuildToolsVersion) - println('cdvVersionCode=' + cdvVersionCode) - println('cdvVersionCodeForceAbiDigit=' + cdvVersionCodeForceAbiDigit) - println('cdvMinSdkVersion=' + cdvMinSdkVersion) - println('cdvMaxSdkVersion=' + cdvMaxSdkVersion) - println('cdvTargetSdkVersion=' + cdvTargetSdkVersion) - println('cdvBuildMultipleApks=' + cdvBuildMultipleApks) - println('cdvReleaseSigningPropertiesFile=' + cdvReleaseSigningPropertiesFile) - println('cdvDebugSigningPropertiesFile=' + cdvDebugSigningPropertiesFile) - println('cdvBuildArch=' + cdvBuildArch) - println('computedVersionCode=' + android.defaultConfig.versionCode) - android.productFlavors.each { flavor -> - println('computed' + flavor.name.capitalize() + 'VersionCode=' + flavor.versionCode) - } - } -} - -android { - defaultConfig { - versionCode cdvVersionCode ?: new BigInteger("" + privateHelpers.extractIntFromManifest("versionCode")) - applicationId privateHelpers.extractStringFromManifest("package") - - if (cdvMinSdkVersion != null) { - minSdkVersion cdvMinSdkVersion - } - - if (cdvMaxSdkVersion != null) { - maxSdkVersion cdvMaxSdkVersion - } - - if(cdvTargetSdkVersion != null) { - targetSdkVersion cdvTargetSdkVersion - } - } - - lintOptions { - abortOnError false; - } - - compileSdkVersion cdvCompileSdkVersion - buildToolsVersion cdvBuildToolsVersion - - // This code exists for Crosswalk and other Native APIs. - // By default, we multiply the existing version code in the - // Android Manifest by 10 and add a number for each architecture. - // If you are not using Crosswalk or SQLite, you can - // ignore this chunk of code, and your version codes will be respected. - - if (Boolean.valueOf(cdvBuildMultipleApks)) { - flavorDimensions "default" - - productFlavors { - armeabi { - versionCode defaultConfig.versionCode*10 + 1 - ndk { - abiFilters = ["armeabi"] - } - } - armv7 { - versionCode defaultConfig.versionCode*10 + 2 - ndk { - abiFilters = ["armeabi-v7a"] - } - } - arm64 { - versionCode defaultConfig.versionCode*10 + 3 - ndk { - abiFilters = ["arm64-v8a"] - } - } - x86 { - versionCode defaultConfig.versionCode*10 + 4 - ndk { - abiFilters = ["x86"] - } - } - x86_64 { - versionCode defaultConfig.versionCode*10 + 5 - ndk { - abiFilters = ["x86_64"] - } - } - } - } else if (Boolean.valueOf(cdvVersionCodeForceAbiDigit)) { - // This provides compatibility to the default logic for versionCode before cordova-android 5.2.0 - defaultConfig { - versionCode defaultConfig.versionCode*10 - } - } - - compileOptions { - sourceCompatibility JavaVersion.VERSION_1_8 - targetCompatibility JavaVersion.VERSION_1_8 - } - - if (cdvReleaseSigningPropertiesFile) { - signingConfigs { - release { - // These must be set or Gradle will complain (even if they are overridden). - keyAlias = "" - keyPassword = "__unset" // And these must be set to non-empty in order to have the signing step added to the task graph. - storeFile = null - storePassword = "__unset" - } - } - buildTypes { - release { - signingConfig signingConfigs.release - } - } - addSigningProps(cdvReleaseSigningPropertiesFile, signingConfigs.release) - } - - if (cdvDebugSigningPropertiesFile) { - addSigningProps(cdvDebugSigningPropertiesFile, signingConfigs.debug) - } - - sourceSets { - main.java.srcDirs += 'src/main/kotlin' - } -} - -/* - * WARNING: Cordova Lib and platform scripts do management inside of this code here, - * if you are adding the dependencies manually, do so outside the comments, otherwise - * the Cordova tools will overwrite them - */ - - -dependencies { - implementation fileTree(dir: 'libs', include: '*.jar') - - if (cdvHelpers.getConfigPreference('GradlePluginKotlinEnabled', 'false').toBoolean()) { - implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" - } - - // SUB-PROJECT DEPENDENCIES START - implementation(project(path: ":CordovaLib")) - implementation "com.android.support:support-annotations:27.+" - // SUB-PROJECT DEPENDENCIES END -} - -def promptForReleaseKeyPassword() { - if (!cdvReleaseSigningPropertiesFile) { - return; - } - if ('__unset'.equals(android.signingConfigs.release.storePassword)) { - android.signingConfigs.release.storePassword = privateHelpers.promptForPassword('Enter key store password: ') - } - if ('__unset'.equals(android.signingConfigs.release.keyPassword)) { - android.signingConfigs.release.keyPassword = privateHelpers.promptForPassword('Enter key password: '); - } -} - -gradle.taskGraph.whenReady { taskGraph -> - taskGraph.getAllTasks().each() { task -> - if(['validateReleaseSigning', 'validateSigningRelease', 'validateSigningArmv7Release', 'validateSigningX76Release'].contains(task.name)) { - promptForReleaseKeyPassword() - } - } -} - -def addSigningProps(propsFilePath, signingConfig) { - def propsFile = file(propsFilePath) - def props = new Properties() - propsFile.withReader { reader -> - props.load(reader) - } - - def storeFile = new File(props.get('key.store') ?: privateHelpers.ensureValueExists(propsFilePath, props, 'storeFile')) - if (!storeFile.isAbsolute()) { - storeFile = RelativePath.parse(true, storeFile.toString()).getFile(propsFile.getParentFile()) - } - if (!storeFile.exists()) { - throw new FileNotFoundException('Keystore file does not exist: ' + storeFile.getAbsolutePath()) - } - signingConfig.keyAlias = props.get('key.alias') ?: privateHelpers.ensureValueExists(propsFilePath, props, 'keyAlias') - signingConfig.keyPassword = props.get('keyPassword', props.get('key.alias.password', signingConfig.keyPassword)) - signingConfig.storeFile = storeFile - signingConfig.storePassword = props.get('storePassword', props.get('key.store.password', signingConfig.storePassword)) - def storeType = props.get('storeType', props.get('key.store.type', '')) - if (!storeType) { - def filename = storeFile.getName().toLowerCase(); - if (filename.endsWith('.p12') || filename.endsWith('.pfx')) { - storeType = 'pkcs12' - } else { - storeType = signingConfig.storeType // "jks" - } - } - signingConfig.storeType = storeType -} - -for (def func : cdvPluginPostBuildExtras) { - func() -} - -// This can be defined within build-extras.gradle as: -// ext.postBuildExtras = { ... code here ... } -if (hasProperty('postBuildExtras')) { - postBuildExtras() -} - -if (cdvHelpers.getConfigPreference('GradlePluginGoogleServicesEnabled', 'false').toBoolean()) { - apply plugin: 'com.google.gms.google-services' -} diff --git a/ionic/platforms/android/app/src/main/AndroidManifest.xml b/ionic/platforms/android/app/src/main/AndroidManifest.xml deleted file mode 100644 index 474d3cae68181c65521ac423267757db4f4b887e..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/AndroidManifest.xml +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version='1.0' encoding='utf-8'?> -<manifest android:hardwareAccelerated="true" android:versionCode="1" android:versionName="0.0.1" package="io.ionic.starter" xmlns:android="http://schemas.android.com/apk/res/android"> - <supports-screens android:anyDensity="true" android:largeScreens="true" android:normalScreens="true" android:resizeable="true" android:smallScreens="true" android:xlargeScreens="true" /> - <uses-permission android:name="android.permission.INTERNET" /> - <application android:hardwareAccelerated="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:networkSecurityConfig="@xml/network_security_config" android:supportsRtl="true"> - <activity android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|smallestScreenSize|screenLayout|uiMode" android:label="@string/activity_name" android:launchMode="singleTop" android:name="MainActivity" android:theme="@android:style/Theme.DeviceDefault.NoActionBar" android:windowSoftInputMode="adjustResize"> - <intent-filter android:label="@string/launcher_name"> - <action android:name="android.intent.action.MAIN" /> - <category android:name="android.intent.category.LAUNCHER" /> - </intent-filter> - </activity> - </application> -</manifest> diff --git a/ionic/platforms/android/app/src/main/assets/www/assets/icon/favicon.png b/ionic/platforms/android/app/src/main/assets/www/assets/icon/favicon.png deleted file mode 100644 index 51888a7bbdb59f04c29c548523eb2638c1c954f5..0000000000000000000000000000000000000000 Binary files a/ionic/platforms/android/app/src/main/assets/www/assets/icon/favicon.png and /dev/null differ diff --git a/ionic/platforms/android/app/src/main/assets/www/assets/shapes.svg b/ionic/platforms/android/app/src/main/assets/www/assets/shapes.svg deleted file mode 100644 index d370b4dcc82d239903c3a3669cd98e2ed8374070..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/assets/shapes.svg +++ /dev/null @@ -1 +0,0 @@ -<svg width="350" height="140" xmlns="http://www.w3.org/2000/svg" style="background:#f6f7f9"><g fill="none" fill-rule="evenodd"><path fill="#F04141" style="mix-blend-mode:multiply" d="M61.905-34.23l96.194 54.51-66.982 54.512L22 34.887z"/><circle fill="#10DC60" style="mix-blend-mode:multiply" cx="155.5" cy="135.5" r="57.5"/><path fill="#3880FF" style="mix-blend-mode:multiply" d="M208.538 9.513l84.417 15.392L223.93 93.93z"/><path fill="#FFCE00" style="mix-blend-mode:multiply" d="M268.625 106.557l46.332-26.75 46.332 26.75v53.5l-46.332 26.75-46.332-26.75z"/><circle fill="#7044FF" style="mix-blend-mode:multiply" cx="299.5" cy="9.5" r="38.5"/><rect fill="#11D3EA" style="mix-blend-mode:multiply" transform="rotate(-60 148.47 37.886)" x="143.372" y="-7.056" width="10.196" height="89.884" rx="5.098"/><path d="M-25.389 74.253l84.86 8.107c5.498.525 9.53 5.407 9.004 10.905a10 10 0 0 1-.057.477l-12.36 85.671a10.002 10.002 0 0 1-11.634 8.42l-86.351-15.226c-5.44-.959-9.07-6.145-8.112-11.584l13.851-78.551a10 10 0 0 1 10.799-8.219z" fill="#7044FF" style="mix-blend-mode:multiply"/><circle fill="#0CD1E8" style="mix-blend-mode:multiply" cx="273.5" cy="106.5" r="20.5"/></g></svg> diff --git a/ionic/platforms/android/app/src/main/assets/www/cordova-js-src/android/nativeapiprovider.js b/ionic/platforms/android/app/src/main/assets/www/cordova-js-src/android/nativeapiprovider.js deleted file mode 100644 index 44f4aacf3ab1829a45f7bac375e3f64d399a2178..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/cordova-js-src/android/nativeapiprovider.js +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. -*/ - -/** - * Exports the ExposedJsApi.java object if available, otherwise exports the PromptBasedNativeApi. - */ - -var nativeApi = this._cordovaNative || require('cordova/android/promptbasednativeapi'); -var currentApi = nativeApi; - -module.exports = { - get: function () { return currentApi; }, - setPreferPrompt: function (value) { - currentApi = value ? require('cordova/android/promptbasednativeapi') : nativeApi; - }, - // Used only by tests. - set: function (value) { - currentApi = value; - } -}; diff --git a/ionic/platforms/android/app/src/main/assets/www/cordova-js-src/android/promptbasednativeapi.js b/ionic/platforms/android/app/src/main/assets/www/cordova-js-src/android/promptbasednativeapi.js deleted file mode 100644 index 86fc1d9fe17b16ba8de1e6fbebd6015443631cce..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/cordova-js-src/android/promptbasednativeapi.js +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. -*/ - -/** - * Implements the API of ExposedJsApi.java, but uses prompt() to communicate. - * This is used pre-JellyBean, where addJavascriptInterface() is disabled. - */ - -module.exports = { - exec: function (bridgeSecret, service, action, callbackId, argsJson) { - return prompt(argsJson, 'gap:' + JSON.stringify([bridgeSecret, service, action, callbackId])); - }, - setNativeToJsBridgeMode: function (bridgeSecret, value) { - prompt(value, 'gap_bridge_mode:' + bridgeSecret); - }, - retrieveJsMessages: function (bridgeSecret, fromOnlineEvent) { - return prompt(+fromOnlineEvent, 'gap_poll:' + bridgeSecret); - } -}; diff --git a/ionic/platforms/android/app/src/main/assets/www/cordova-js-src/exec.js b/ionic/platforms/android/app/src/main/assets/www/cordova-js-src/exec.js deleted file mode 100644 index c98212ee2074a2e1147790f1ccc5bebd348a89d7..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/cordova-js-src/exec.js +++ /dev/null @@ -1,287 +0,0 @@ -/* - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - * -*/ - -/** - * Execute a cordova command. It is up to the native side whether this action - * is synchronous or asynchronous. The native side can return: - * Synchronous: PluginResult object as a JSON string - * Asynchronous: Empty string "" - * If async, the native side will cordova.callbackSuccess or cordova.callbackError, - * depending upon the result of the action. - * - * @param {Function} success The success callback - * @param {Function} fail The fail callback - * @param {String} service The name of the service to use - * @param {String} action Action to be run in cordova - * @param {String[]} [args] Zero or more arguments to pass to the method - */ -var cordova = require('cordova'); -var nativeApiProvider = require('cordova/android/nativeapiprovider'); -var utils = require('cordova/utils'); -var base64 = require('cordova/base64'); -var channel = require('cordova/channel'); -var jsToNativeModes = { - PROMPT: 0, - JS_OBJECT: 1 -}; -var nativeToJsModes = { - // Polls for messages using the JS->Native bridge. - POLLING: 0, - // For LOAD_URL to be viable, it would need to have a work-around for - // the bug where the soft-keyboard gets dismissed when a message is sent. - LOAD_URL: 1, - // For the ONLINE_EVENT to be viable, it would need to intercept all event - // listeners (both through addEventListener and window.ononline) as well - // as set the navigator property itself. - ONLINE_EVENT: 2, - EVAL_BRIDGE: 3 -}; -var jsToNativeBridgeMode; // Set lazily. -var nativeToJsBridgeMode = nativeToJsModes.EVAL_BRIDGE; -var pollEnabled = false; -var bridgeSecret = -1; - -var messagesFromNative = []; -var isProcessing = false; -var resolvedPromise = typeof Promise === 'undefined' ? null : Promise.resolve(); -var nextTick = resolvedPromise ? function (fn) { resolvedPromise.then(fn); } : function (fn) { setTimeout(fn); }; - -function androidExec (success, fail, service, action, args) { - if (bridgeSecret < 0) { - // If we ever catch this firing, we'll need to queue up exec()s - // and fire them once we get a secret. For now, I don't think - // it's possible for exec() to be called since plugins are parsed but - // not run until until after onNativeReady. - throw new Error('exec() called without bridgeSecret'); - } - // Set default bridge modes if they have not already been set. - // By default, we use the failsafe, since addJavascriptInterface breaks too often - if (jsToNativeBridgeMode === undefined) { - androidExec.setJsToNativeBridgeMode(jsToNativeModes.JS_OBJECT); - } - - // If args is not provided, default to an empty array - args = args || []; - - // Process any ArrayBuffers in the args into a string. - for (var i = 0; i < args.length; i++) { - if (utils.typeName(args[i]) === 'ArrayBuffer') { - args[i] = base64.fromArrayBuffer(args[i]); - } - } - - var callbackId = service + cordova.callbackId++; - var argsJson = JSON.stringify(args); - if (success || fail) { - cordova.callbacks[callbackId] = { success: success, fail: fail }; - } - - var msgs = nativeApiProvider.get().exec(bridgeSecret, service, action, callbackId, argsJson); - // If argsJson was received by Java as null, try again with the PROMPT bridge mode. - // This happens in rare circumstances, such as when certain Unicode characters are passed over the bridge on a Galaxy S2. See CB-2666. - if (jsToNativeBridgeMode === jsToNativeModes.JS_OBJECT && msgs === '@Null arguments.') { - androidExec.setJsToNativeBridgeMode(jsToNativeModes.PROMPT); - androidExec(success, fail, service, action, args); - androidExec.setJsToNativeBridgeMode(jsToNativeModes.JS_OBJECT); - } else if (msgs) { - messagesFromNative.push(msgs); - // Always process async to avoid exceptions messing up stack. - nextTick(processMessages); - } -} - -androidExec.init = function () { - bridgeSecret = +prompt('', 'gap_init:' + nativeToJsBridgeMode); - channel.onNativeReady.fire(); -}; - -function pollOnceFromOnlineEvent () { - pollOnce(true); -} - -function pollOnce (opt_fromOnlineEvent) { - if (bridgeSecret < 0) { - // This can happen when the NativeToJsMessageQueue resets the online state on page transitions. - // We know there's nothing to retrieve, so no need to poll. - return; - } - var msgs = nativeApiProvider.get().retrieveJsMessages(bridgeSecret, !!opt_fromOnlineEvent); - if (msgs) { - messagesFromNative.push(msgs); - // Process sync since we know we're already top-of-stack. - processMessages(); - } -} - -function pollingTimerFunc () { - if (pollEnabled) { - pollOnce(); - setTimeout(pollingTimerFunc, 50); - } -} - -function hookOnlineApis () { - function proxyEvent (e) { - cordova.fireWindowEvent(e.type); - } - // The network module takes care of firing online and offline events. - // It currently fires them only on document though, so we bridge them - // to window here (while first listening for exec()-releated online/offline - // events). - window.addEventListener('online', pollOnceFromOnlineEvent, false); - window.addEventListener('offline', pollOnceFromOnlineEvent, false); - cordova.addWindowEventHandler('online'); - cordova.addWindowEventHandler('offline'); - document.addEventListener('online', proxyEvent, false); - document.addEventListener('offline', proxyEvent, false); -} - -hookOnlineApis(); - -androidExec.jsToNativeModes = jsToNativeModes; -androidExec.nativeToJsModes = nativeToJsModes; - -androidExec.setJsToNativeBridgeMode = function (mode) { - if (mode === jsToNativeModes.JS_OBJECT && !window._cordovaNative) { - mode = jsToNativeModes.PROMPT; - } - nativeApiProvider.setPreferPrompt(mode === jsToNativeModes.PROMPT); - jsToNativeBridgeMode = mode; -}; - -androidExec.setNativeToJsBridgeMode = function (mode) { - if (mode === nativeToJsBridgeMode) { - return; - } - if (nativeToJsBridgeMode === nativeToJsModes.POLLING) { - pollEnabled = false; - } - - nativeToJsBridgeMode = mode; - // Tell the native side to switch modes. - // Otherwise, it will be set by androidExec.init() - if (bridgeSecret >= 0) { - nativeApiProvider.get().setNativeToJsBridgeMode(bridgeSecret, mode); - } - - if (mode === nativeToJsModes.POLLING) { - pollEnabled = true; - setTimeout(pollingTimerFunc, 1); - } -}; - -function buildPayload (payload, message) { - var payloadKind = message.charAt(0); - if (payloadKind === 's') { - payload.push(message.slice(1)); - } else if (payloadKind === 't') { - payload.push(true); - } else if (payloadKind === 'f') { - payload.push(false); - } else if (payloadKind === 'N') { - payload.push(null); - } else if (payloadKind === 'n') { - payload.push(+message.slice(1)); - } else if (payloadKind === 'A') { - var data = message.slice(1); - payload.push(base64.toArrayBuffer(data)); - } else if (payloadKind === 'S') { - payload.push(window.atob(message.slice(1))); - } else if (payloadKind === 'M') { - var multipartMessages = message.slice(1); - while (multipartMessages !== '') { - var spaceIdx = multipartMessages.indexOf(' '); - var msgLen = +multipartMessages.slice(0, spaceIdx); - var multipartMessage = multipartMessages.substr(spaceIdx + 1, msgLen); - multipartMessages = multipartMessages.slice(spaceIdx + msgLen + 1); - buildPayload(payload, multipartMessage); - } - } else { - payload.push(JSON.parse(message)); - } -} - -// Processes a single message, as encoded by NativeToJsMessageQueue.java. -function processMessage (message) { - var firstChar = message.charAt(0); - if (firstChar === 'J') { - // This is deprecated on the .java side. It doesn't work with CSP enabled. - // eslint-disable-next-line no-eval - eval(message.slice(1)); - } else if (firstChar === 'S' || firstChar === 'F') { - var success = firstChar === 'S'; - var keepCallback = message.charAt(1) === '1'; - var spaceIdx = message.indexOf(' ', 2); - var status = +message.slice(2, spaceIdx); - var nextSpaceIdx = message.indexOf(' ', spaceIdx + 1); - var callbackId = message.slice(spaceIdx + 1, nextSpaceIdx); - var payloadMessage = message.slice(nextSpaceIdx + 1); - var payload = []; - buildPayload(payload, payloadMessage); - cordova.callbackFromNative(callbackId, success, status, payload, keepCallback); - } else { - console.log('processMessage failed: invalid message: ' + JSON.stringify(message)); - } -} - -function processMessages () { - // Check for the reentrant case. - if (isProcessing) { - return; - } - if (messagesFromNative.length === 0) { - return; - } - isProcessing = true; - try { - var msg = popMessageFromQueue(); - // The Java side can send a * message to indicate that it - // still has messages waiting to be retrieved. - if (msg === '*' && messagesFromNative.length === 0) { - nextTick(pollOnce); - return; - } - processMessage(msg); - } finally { - isProcessing = false; - if (messagesFromNative.length > 0) { - nextTick(processMessages); - } - } -} - -function popMessageFromQueue () { - var messageBatch = messagesFromNative.shift(); - if (messageBatch === '*') { - return '*'; - } - - var spaceIdx = messageBatch.indexOf(' '); - var msgLen = +messageBatch.slice(0, spaceIdx); - var message = messageBatch.substr(spaceIdx + 1, msgLen); - messageBatch = messageBatch.slice(spaceIdx + msgLen + 1); - if (messageBatch) { - messagesFromNative.unshift(messageBatch); - } - return message; -} - -module.exports = androidExec; diff --git a/ionic/platforms/android/app/src/main/assets/www/cordova-js-src/platform.js b/ionic/platforms/android/app/src/main/assets/www/cordova-js-src/platform.js deleted file mode 100644 index 14eddd7f705d40f35c17aea37a56652545f11cbc..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/cordova-js-src/platform.js +++ /dev/null @@ -1,122 +0,0 @@ -/* - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - * -*/ - -// The last resume event that was received that had the result of a plugin call. -var lastResumeEvent = null; - -module.exports = { - id: 'android', - bootstrap: function () { - var channel = require('cordova/channel'); - var cordova = require('cordova'); - var exec = require('cordova/exec'); - var modulemapper = require('cordova/modulemapper'); - - // Get the shared secret needed to use the bridge. - exec.init(); - - // TODO: Extract this as a proper plugin. - modulemapper.clobbers('cordova/plugin/android/app', 'navigator.app'); - - var APP_PLUGIN_NAME = Number(cordova.platformVersion.split('.')[0]) >= 4 ? 'CoreAndroid' : 'App'; - - // Inject a listener for the backbutton on the document. - var backButtonChannel = cordova.addDocumentEventHandler('backbutton'); - backButtonChannel.onHasSubscribersChange = function () { - // If we just attached the first handler or detached the last handler, - // let native know we need to override the back button. - exec(null, null, APP_PLUGIN_NAME, 'overrideBackbutton', [this.numHandlers === 1]); - }; - - // Add hardware MENU and SEARCH button handlers - cordova.addDocumentEventHandler('menubutton'); - cordova.addDocumentEventHandler('searchbutton'); - - function bindButtonChannel (buttonName) { - // generic button bind used for volumeup/volumedown buttons - var volumeButtonChannel = cordova.addDocumentEventHandler(buttonName + 'button'); - volumeButtonChannel.onHasSubscribersChange = function () { - exec(null, null, APP_PLUGIN_NAME, 'overrideButton', [buttonName, this.numHandlers === 1]); - }; - } - // Inject a listener for the volume buttons on the document. - bindButtonChannel('volumeup'); - bindButtonChannel('volumedown'); - - // The resume event is not "sticky", but it is possible that the event - // will contain the result of a plugin call. We need to ensure that the - // plugin result is delivered even after the event is fired (CB-10498) - var cordovaAddEventListener = document.addEventListener; - - document.addEventListener = function (evt, handler, capture) { - cordovaAddEventListener(evt, handler, capture); - - if (evt === 'resume' && lastResumeEvent) { - handler(lastResumeEvent); - } - }; - - // Let native code know we are all done on the JS side. - // Native code will then un-hide the WebView. - channel.onCordovaReady.subscribe(function () { - exec(onMessageFromNative, null, APP_PLUGIN_NAME, 'messageChannel', []); - exec(null, null, APP_PLUGIN_NAME, 'show', []); - }); - } -}; - -function onMessageFromNative (msg) { - var cordova = require('cordova'); - var action = msg.action; - - switch (action) { - // pause and resume are Android app life cycle events - case 'backbutton': - case 'menubutton': - case 'searchbutton': - case 'pause': - case 'volumedownbutton': - case 'volumeupbutton': - cordova.fireDocumentEvent(action); - break; - case 'resume': - if (arguments.length > 1 && msg.pendingResult) { - if (arguments.length === 2) { - msg.pendingResult.result = arguments[1]; - } else { - // The plugin returned a multipart message - var res = []; - for (var i = 1; i < arguments.length; i++) { - res.push(arguments[i]); - } - msg.pendingResult.result = res; - } - - // Save the plugin result so that it can be delivered to the js - // even if they miss the initial firing of the event - lastResumeEvent = msg; - } - cordova.fireDocumentEvent(action, msg); - break; - default: - throw new Error('Unknown event action ' + action); - } -} diff --git a/ionic/platforms/android/app/src/main/assets/www/cordova-js-src/plugin/android/app.js b/ionic/platforms/android/app/src/main/assets/www/cordova-js-src/plugin/android/app.js deleted file mode 100644 index 027ce31b11fe411c28fd20574c1812cbe138dc21..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/cordova-js-src/plugin/android/app.js +++ /dev/null @@ -1,108 +0,0 @@ -/* - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - * -*/ - -var exec = require('cordova/exec'); -var APP_PLUGIN_NAME = Number(require('cordova').platformVersion.split('.')[0]) >= 4 ? 'CoreAndroid' : 'App'; - -module.exports = { - /** - * Clear the resource cache. - */ - clearCache: function () { - exec(null, null, APP_PLUGIN_NAME, 'clearCache', []); - }, - - /** - * Load the url into the webview or into new browser instance. - * - * @param url The URL to load - * @param props Properties that can be passed in to the activity: - * wait: int => wait msec before loading URL - * loadingDialog: "Title,Message" => display a native loading dialog - * loadUrlTimeoutValue: int => time in msec to wait before triggering a timeout error - * clearHistory: boolean => clear webview history (default=false) - * openExternal: boolean => open in a new browser (default=false) - * - * Example: - * navigator.app.loadUrl("http://server/myapp/index.html", {wait:2000, loadingDialog:"Wait,Loading App", loadUrlTimeoutValue: 60000}); - */ - loadUrl: function (url, props) { - exec(null, null, APP_PLUGIN_NAME, 'loadUrl', [url, props]); - }, - - /** - * Cancel loadUrl that is waiting to be loaded. - */ - cancelLoadUrl: function () { - exec(null, null, APP_PLUGIN_NAME, 'cancelLoadUrl', []); - }, - - /** - * Clear web history in this web view. - * Instead of BACK button loading the previous web page, it will exit the app. - */ - clearHistory: function () { - exec(null, null, APP_PLUGIN_NAME, 'clearHistory', []); - }, - - /** - * Go to previous page displayed. - * This is the same as pressing the backbutton on Android device. - */ - backHistory: function () { - exec(null, null, APP_PLUGIN_NAME, 'backHistory', []); - }, - - /** - * Override the default behavior of the Android back button. - * If overridden, when the back button is pressed, the "backKeyDown" JavaScript event will be fired. - * - * Note: The user should not have to call this method. Instead, when the user - * registers for the "backbutton" event, this is automatically done. - * - * @param override T=override, F=cancel override - */ - overrideBackbutton: function (override) { - exec(null, null, APP_PLUGIN_NAME, 'overrideBackbutton', [override]); - }, - - /** - * Override the default behavior of the Android volume button. - * If overridden, when the volume button is pressed, the "volume[up|down]button" - * JavaScript event will be fired. - * - * Note: The user should not have to call this method. Instead, when the user - * registers for the "volume[up|down]button" event, this is automatically done. - * - * @param button volumeup, volumedown - * @param override T=override, F=cancel override - */ - overrideButton: function (button, override) { - exec(null, null, APP_PLUGIN_NAME, 'overrideButton', [button, override]); - }, - - /** - * Exit and terminate the application. - */ - exitApp: function () { - return exec(null, null, APP_PLUGIN_NAME, 'exitApp', []); - } -}; diff --git a/ionic/platforms/android/app/src/main/assets/www/cordova.js b/ionic/platforms/android/app/src/main/assets/www/cordova.js deleted file mode 100644 index 3d71792ddbdbfa1eda6b681d412729c7cc5ffef1..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/cordova.js +++ /dev/null @@ -1,1904 +0,0 @@ -// Platform: android -// 538a985db128858c0a0eb4dd40fb9c8e5433fc94 -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*/ -;(function() { -var PLATFORM_VERSION_BUILD_LABEL = '9.0.0'; -// file: src/scripts/require.js -var require; -var define; - -(function () { - var modules = {}; - // Stack of moduleIds currently being built. - var requireStack = []; - // Map of module ID -> index into requireStack of modules currently being built. - var inProgressModules = {}; - var SEPARATOR = '.'; - - function build (module) { - var factory = module.factory; - var localRequire = function (id) { - var resultantId = id; - // Its a relative path, so lop off the last portion and add the id (minus "./") - if (id.charAt(0) === '.') { - resultantId = module.id.slice(0, module.id.lastIndexOf(SEPARATOR)) + SEPARATOR + id.slice(2); - } - return require(resultantId); - }; - module.exports = {}; - delete module.factory; - factory(localRequire, module.exports, module); - return module.exports; - } - - require = function (id) { - if (!modules[id]) { - throw new Error('module ' + id + ' not found'); - } else if (id in inProgressModules) { - var cycle = requireStack.slice(inProgressModules[id]).join('->') + '->' + id; - throw new Error('Cycle in require graph: ' + cycle); - } - if (modules[id].factory) { - try { - inProgressModules[id] = requireStack.length; - requireStack.push(id); - return build(modules[id]); - } finally { - delete inProgressModules[id]; - requireStack.pop(); - } - } - return modules[id].exports; - }; - - define = function (id, factory) { - if (Object.prototype.hasOwnProperty.call(modules, id)) { - throw new Error('module ' + id + ' already defined'); - } - - modules[id] = { - id: id, - factory: factory - }; - }; - - define.remove = function (id) { - delete modules[id]; - }; - - define.moduleMap = modules; -})(); - -// Export for use in node -if (typeof module === 'object' && typeof require === 'function') { - module.exports.require = require; - module.exports.define = define; -} - -// file: src/cordova.js -define("cordova", function(require, exports, module) { - -// Workaround for Windows 10 in hosted environment case -// http://www.w3.org/html/wg/drafts/html/master/browsers.html#named-access-on-the-window-object -if (window.cordova && !(window.cordova instanceof HTMLElement)) { - throw new Error('cordova already defined'); -} - -var channel = require('cordova/channel'); -var platform = require('cordova/platform'); - -/** - * Intercept calls to addEventListener + removeEventListener and handle deviceready, - * resume, and pause events. - */ -var m_document_addEventListener = document.addEventListener; -var m_document_removeEventListener = document.removeEventListener; -var m_window_addEventListener = window.addEventListener; -var m_window_removeEventListener = window.removeEventListener; - -/** - * Houses custom event handlers to intercept on document + window event listeners. - */ -var documentEventHandlers = {}; -var windowEventHandlers = {}; - -document.addEventListener = function (evt, handler, capture) { - var e = evt.toLowerCase(); - if (typeof documentEventHandlers[e] !== 'undefined') { - documentEventHandlers[e].subscribe(handler); - } else { - m_document_addEventListener.call(document, evt, handler, capture); - } -}; - -window.addEventListener = function (evt, handler, capture) { - var e = evt.toLowerCase(); - if (typeof windowEventHandlers[e] !== 'undefined') { - windowEventHandlers[e].subscribe(handler); - } else { - m_window_addEventListener.call(window, evt, handler, capture); - } -}; - -document.removeEventListener = function (evt, handler, capture) { - var e = evt.toLowerCase(); - // If unsubscribing from an event that is handled by a plugin - if (typeof documentEventHandlers[e] !== 'undefined') { - documentEventHandlers[e].unsubscribe(handler); - } else { - m_document_removeEventListener.call(document, evt, handler, capture); - } -}; - -window.removeEventListener = function (evt, handler, capture) { - var e = evt.toLowerCase(); - // If unsubscribing from an event that is handled by a plugin - if (typeof windowEventHandlers[e] !== 'undefined') { - windowEventHandlers[e].unsubscribe(handler); - } else { - m_window_removeEventListener.call(window, evt, handler, capture); - } -}; - -function createEvent (type, data) { - var event = document.createEvent('Events'); - event.initEvent(type, false, false); - if (data) { - for (var i in data) { - if (Object.prototype.hasOwnProperty.call(data, i)) { - event[i] = data[i]; - } - } - } - return event; -} - -var cordova = { - define: define, - require: require, - version: PLATFORM_VERSION_BUILD_LABEL, - platformVersion: PLATFORM_VERSION_BUILD_LABEL, - platformId: platform.id, - - /** - * Methods to add/remove your own addEventListener hijacking on document + window. - */ - addWindowEventHandler: function (event) { - return (windowEventHandlers[event] = channel.create(event)); - }, - addStickyDocumentEventHandler: function (event) { - return (documentEventHandlers[event] = channel.createSticky(event)); - }, - addDocumentEventHandler: function (event) { - return (documentEventHandlers[event] = channel.create(event)); - }, - removeWindowEventHandler: function (event) { - delete windowEventHandlers[event]; - }, - removeDocumentEventHandler: function (event) { - delete documentEventHandlers[event]; - }, - - /** - * Retrieve original event handlers that were replaced by Cordova - * - * @return object - */ - getOriginalHandlers: function () { - return { - document: { - addEventListener: m_document_addEventListener, - removeEventListener: m_document_removeEventListener - }, - window: { - addEventListener: m_window_addEventListener, - removeEventListener: m_window_removeEventListener - } - }; - }, - - /** - * Method to fire event from native code - * bNoDetach is required for events which cause an exception which needs to be caught in native code - */ - fireDocumentEvent: function (type, data, bNoDetach) { - var evt = createEvent(type, data); - if (typeof documentEventHandlers[type] !== 'undefined') { - if (bNoDetach) { - documentEventHandlers[type].fire(evt); - } else { - setTimeout(function () { - // Fire deviceready on listeners that were registered before cordova.js was loaded. - if (type === 'deviceready') { - document.dispatchEvent(evt); - } - documentEventHandlers[type].fire(evt); - }, 0); - } - } else { - document.dispatchEvent(evt); - } - }, - - fireWindowEvent: function (type, data) { - var evt = createEvent(type, data); - if (typeof windowEventHandlers[type] !== 'undefined') { - setTimeout(function () { - windowEventHandlers[type].fire(evt); - }, 0); - } else { - window.dispatchEvent(evt); - } - }, - - /** - * Plugin callback mechanism. - */ - // Randomize the starting callbackId to avoid collisions after refreshing or navigating. - // This way, it's very unlikely that any new callback would get the same callbackId as an old callback. - callbackId: Math.floor(Math.random() * 2000000000), - callbacks: {}, - callbackStatus: { - NO_RESULT: 0, - OK: 1, - CLASS_NOT_FOUND_EXCEPTION: 2, - ILLEGAL_ACCESS_EXCEPTION: 3, - INSTANTIATION_EXCEPTION: 4, - MALFORMED_URL_EXCEPTION: 5, - IO_EXCEPTION: 6, - INVALID_ACTION: 7, - JSON_EXCEPTION: 8, - ERROR: 9 - }, - - /** - * Called by native code when returning successful result from an action. - */ - callbackSuccess: function (callbackId, args) { - cordova.callbackFromNative(callbackId, true, args.status, [args.message], args.keepCallback); - }, - - /** - * Called by native code when returning error result from an action. - */ - callbackError: function (callbackId, args) { - // TODO: Deprecate callbackSuccess and callbackError in favour of callbackFromNative. - // Derive success from status. - cordova.callbackFromNative(callbackId, false, args.status, [args.message], args.keepCallback); - }, - - /** - * Called by native code when returning the result from an action. - */ - callbackFromNative: function (callbackId, isSuccess, status, args, keepCallback) { - try { - var callback = cordova.callbacks[callbackId]; - if (callback) { - if (isSuccess && status === cordova.callbackStatus.OK) { - callback.success && callback.success.apply(null, args); - } else if (!isSuccess) { - callback.fail && callback.fail.apply(null, args); - } - /* - else - Note, this case is intentionally not caught. - this can happen if isSuccess is true, but callbackStatus is NO_RESULT - which is used to remove a callback from the list without calling the callbacks - typically keepCallback is false in this case - */ - // Clear callback if not expecting any more results - if (!keepCallback) { - delete cordova.callbacks[callbackId]; - } - } - } catch (err) { - var msg = 'Error in ' + (isSuccess ? 'Success' : 'Error') + ' callbackId: ' + callbackId + ' : ' + err; - cordova.fireWindowEvent('cordovacallbackerror', { message: msg, error: err }); - throw err; - } - }, - - addConstructor: function (func) { - channel.onCordovaReady.subscribe(function () { - try { - func(); - } catch (e) { - console.log('Failed to run constructor: ' + e); - } - }); - } -}; - -module.exports = cordova; - -}); - -// file: ../cordova-android/cordova-js-src/android/nativeapiprovider.js -define("cordova/android/nativeapiprovider", function(require, exports, module) { - -/** - * Exports the ExposedJsApi.java object if available, otherwise exports the PromptBasedNativeApi. - */ - -var nativeApi = this._cordovaNative || require('cordova/android/promptbasednativeapi'); -var currentApi = nativeApi; - -module.exports = { - get: function () { return currentApi; }, - setPreferPrompt: function (value) { - currentApi = value ? require('cordova/android/promptbasednativeapi') : nativeApi; - }, - // Used only by tests. - set: function (value) { - currentApi = value; - } -}; - -}); - -// file: ../cordova-android/cordova-js-src/android/promptbasednativeapi.js -define("cordova/android/promptbasednativeapi", function(require, exports, module) { - -/** - * Implements the API of ExposedJsApi.java, but uses prompt() to communicate. - * This is used pre-JellyBean, where addJavascriptInterface() is disabled. - */ - -module.exports = { - exec: function (bridgeSecret, service, action, callbackId, argsJson) { - return prompt(argsJson, 'gap:' + JSON.stringify([bridgeSecret, service, action, callbackId])); - }, - setNativeToJsBridgeMode: function (bridgeSecret, value) { - prompt(value, 'gap_bridge_mode:' + bridgeSecret); - }, - retrieveJsMessages: function (bridgeSecret, fromOnlineEvent) { - return prompt(+fromOnlineEvent, 'gap_poll:' + bridgeSecret); - } -}; - -}); - -// file: src/common/argscheck.js -define("cordova/argscheck", function(require, exports, module) { - -var utils = require('cordova/utils'); - -var moduleExports = module.exports; - -var typeMap = { - A: 'Array', - D: 'Date', - N: 'Number', - S: 'String', - F: 'Function', - O: 'Object' -}; - -function extractParamName (callee, argIndex) { - return (/\(\s*([^)]*?)\s*\)/).exec(callee)[1].split(/\s*,\s*/)[argIndex]; -} - -/** - * Checks the given arguments' types and throws if they are not as expected. - * - * `spec` is a string where each character stands for the required type of the - * argument at the same position. In other words: the character at `spec[i]` - * specifies the required type for `args[i]`. The characters in `spec` are the - * first letter of the required type's name. The supported types are: - * - * Array, Date, Number, String, Function, Object - * - * Lowercase characters specify arguments that must not be `null` or `undefined` - * while uppercase characters allow those values to be passed. - * - * Finally, `*` can be used to allow any type at the corresponding position. - * - * @example - * function foo (arr, opts) { - * // require `arr` to be an Array and `opts` an Object, null or undefined - * checkArgs('aO', 'my.package.foo', arguments); - * // ... - * } - * @param {String} spec - the type specification for `args` as described above - * @param {String} functionName - full name of the callee. - * Used in the error message - * @param {Array|arguments} args - the arguments to be checked against `spec` - * @param {Function} [opt_callee=args.callee] - the recipient of `args`. - * Used to extract parameter names for the error message - * @throws {TypeError} if args do not satisfy spec - */ -function checkArgs (spec, functionName, args, opt_callee) { - if (!moduleExports.enableChecks) { - return; - } - var errMsg = null; - var typeName; - for (var i = 0; i < spec.length; ++i) { - var c = spec.charAt(i); - var cUpper = c.toUpperCase(); - var arg = args[i]; - // Asterix means allow anything. - if (c === '*') { - continue; - } - typeName = utils.typeName(arg); - if ((arg === null || arg === undefined) && c === cUpper) { - continue; - } - if (typeName !== typeMap[cUpper]) { - errMsg = 'Expected ' + typeMap[cUpper]; - break; - } - } - if (errMsg) { - errMsg += ', but got ' + typeName + '.'; - errMsg = 'Wrong type for parameter "' + extractParamName(opt_callee || args.callee, i) + '" of ' + functionName + ': ' + errMsg; - // Don't log when running unit tests. - if (typeof jasmine === 'undefined') { - console.error(errMsg); - } - throw TypeError(errMsg); - } -} - -function getValue (value, defaultValue) { - return value === undefined ? defaultValue : value; -} - -moduleExports.checkArgs = checkArgs; -moduleExports.getValue = getValue; -moduleExports.enableChecks = true; - -}); - -// file: src/common/base64.js -define("cordova/base64", function(require, exports, module) { - -var base64 = exports; - -base64.fromArrayBuffer = function (arrayBuffer) { - var array = new Uint8Array(arrayBuffer); - return uint8ToBase64(array); -}; - -base64.toArrayBuffer = function (str) { - var decodedStr = atob(str); - var arrayBuffer = new ArrayBuffer(decodedStr.length); - var array = new Uint8Array(arrayBuffer); - for (var i = 0, len = decodedStr.length; i < len; i++) { - array[i] = decodedStr.charCodeAt(i); - } - return arrayBuffer; -}; - -// ------------------------------------------------------------------------------ - -/* This code is based on the performance tests at http://jsperf.com/b64tests - * This 12-bit-at-a-time algorithm was the best performing version on all - * platforms tested. - */ - -var b64_6bit = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; -var b64_12bit; - -var b64_12bitTable = function () { - b64_12bit = []; - for (var i = 0; i < 64; i++) { - for (var j = 0; j < 64; j++) { - b64_12bit[i * 64 + j] = b64_6bit[i] + b64_6bit[j]; - } - } - b64_12bitTable = function () { return b64_12bit; }; - return b64_12bit; -}; - -function uint8ToBase64 (rawData) { - var numBytes = rawData.byteLength; - var output = ''; - var segment; - var table = b64_12bitTable(); - for (var i = 0; i < numBytes - 2; i += 3) { - segment = (rawData[i] << 16) + (rawData[i + 1] << 8) + rawData[i + 2]; - output += table[segment >> 12]; - output += table[segment & 0xfff]; - } - if (numBytes - i === 2) { - segment = (rawData[i] << 16) + (rawData[i + 1] << 8); - output += table[segment >> 12]; - output += b64_6bit[(segment & 0xfff) >> 6]; - output += '='; - } else if (numBytes - i === 1) { - segment = (rawData[i] << 16); - output += table[segment >> 12]; - output += '=='; - } - return output; -} - -}); - -// file: src/common/builder.js -define("cordova/builder", function(require, exports, module) { - -var utils = require('cordova/utils'); - -function each (objects, func, context) { - for (var prop in objects) { - if (Object.prototype.hasOwnProperty.call(objects, prop)) { - func.apply(context, [objects[prop], prop]); - } - } -} - -function clobber (obj, key, value) { - var needsProperty = false; - try { - obj[key] = value; - } catch (e) { - needsProperty = true; - } - // Getters can only be overridden by getters. - if (needsProperty || obj[key] !== value) { - utils.defineGetter(obj, key, function () { - return value; - }); - } -} - -function assignOrWrapInDeprecateGetter (obj, key, value, message) { - if (message) { - utils.defineGetter(obj, key, function () { - console.log(message); - delete obj[key]; - clobber(obj, key, value); - return value; - }); - } else { - clobber(obj, key, value); - } -} - -function include (parent, objects, clobber, merge) { - each(objects, function (obj, key) { - try { - var result = obj.path ? require(obj.path) : {}; - - if (clobber) { - // Clobber if it doesn't exist. - if (typeof parent[key] === 'undefined') { - assignOrWrapInDeprecateGetter(parent, key, result, obj.deprecated); - } else if (typeof obj.path !== 'undefined') { - // If merging, merge properties onto parent, otherwise, clobber. - if (merge) { - recursiveMerge(parent[key], result); - } else { - assignOrWrapInDeprecateGetter(parent, key, result, obj.deprecated); - } - } - result = parent[key]; - } else { - // Overwrite if not currently defined. - if (typeof parent[key] === 'undefined') { - assignOrWrapInDeprecateGetter(parent, key, result, obj.deprecated); - } else { - // Set result to what already exists, so we can build children into it if they exist. - result = parent[key]; - } - } - - if (obj.children) { - include(result, obj.children, clobber, merge); - } - } catch (e) { - utils.alert('Exception building Cordova JS globals: ' + e + ' for key "' + key + '"'); - } - }); -} - -/** - * Merge properties from one object onto another recursively. Properties from - * the src object will overwrite existing target property. - * - * @param target Object to merge properties into. - * @param src Object to merge properties from. - */ -function recursiveMerge (target, src) { - for (var prop in src) { - if (Object.prototype.hasOwnProperty.call(src, prop)) { - if (target.prototype && target.prototype.constructor === target) { - // If the target object is a constructor override off prototype. - clobber(target.prototype, prop, src[prop]); - } else { - if (typeof src[prop] === 'object' && typeof target[prop] === 'object') { - recursiveMerge(target[prop], src[prop]); - } else { - clobber(target, prop, src[prop]); - } - } - } - } -} - -exports.buildIntoButDoNotClobber = function (objects, target) { - include(target, objects, false, false); -}; -exports.buildIntoAndClobber = function (objects, target) { - include(target, objects, true, false); -}; -exports.buildIntoAndMerge = function (objects, target) { - include(target, objects, true, true); -}; -exports.recursiveMerge = recursiveMerge; -exports.assignOrWrapInDeprecateGetter = assignOrWrapInDeprecateGetter; - -}); - -// file: src/common/channel.js -define("cordova/channel", function(require, exports, module) { - -var utils = require('cordova/utils'); -var nextGuid = 1; - -/** - * Custom pub-sub "channel" that can have functions subscribed to it - * This object is used to define and control firing of events for - * cordova initialization, as well as for custom events thereafter. - * - * The order of events during page load and Cordova startup is as follows: - * - * onDOMContentLoaded* Internal event that is received when the web page is loaded and parsed. - * onNativeReady* Internal event that indicates the Cordova native side is ready. - * onCordovaReady* Internal event fired when all Cordova JavaScript objects have been created. - * onDeviceReady* User event fired to indicate that Cordova is ready - * onResume User event fired to indicate a start/resume lifecycle event - * onPause User event fired to indicate a pause lifecycle event - * - * The events marked with an * are sticky. Once they have fired, they will stay in the fired state. - * All listeners that subscribe after the event is fired will be executed right away. - * - * The only Cordova events that user code should register for are: - * deviceready Cordova native code is initialized and Cordova APIs can be called from JavaScript - * pause App has moved to background - * resume App has returned to foreground - * - * Listeners can be registered as: - * document.addEventListener("deviceready", myDeviceReadyListener, false); - * document.addEventListener("resume", myResumeListener, false); - * document.addEventListener("pause", myPauseListener, false); - * - * The DOM lifecycle events should be used for saving and restoring state - * window.onload - * window.onunload - * - */ - -/** - * Channel - * @constructor - * @param type String the channel name - */ -var Channel = function (type, sticky) { - this.type = type; - // Map of guid -> function. - this.handlers = {}; - // 0 = Non-sticky, 1 = Sticky non-fired, 2 = Sticky fired. - this.state = sticky ? 1 : 0; - // Used in sticky mode to remember args passed to fire(). - this.fireArgs = null; - // Used by onHasSubscribersChange to know if there are any listeners. - this.numHandlers = 0; - // Function that is called when the first listener is subscribed, or when - // the last listener is unsubscribed. - this.onHasSubscribersChange = null; -}; -var channel = { - /** - * Calls the provided function only after all of the channels specified - * have been fired. All channels must be sticky channels. - */ - join: function (h, c) { - var len = c.length; - var i = len; - var f = function () { - if (!(--i)) h(); - }; - for (var j = 0; j < len; j++) { - if (c[j].state === 0) { - throw Error('Can only use join with sticky channels.'); - } - c[j].subscribe(f); - } - if (!len) h(); - }, - - create: function (type) { - return (channel[type] = new Channel(type, false)); - }, - createSticky: function (type) { - return (channel[type] = new Channel(type, true)); - }, - - /** - * cordova Channels that must fire before "deviceready" is fired. - */ - deviceReadyChannelsArray: [], - deviceReadyChannelsMap: {}, - - /** - * Indicate that a feature needs to be initialized before it is ready to be used. - * This holds up Cordova's "deviceready" event until the feature has been initialized - * and Cordova.initComplete(feature) is called. - * - * @param feature {String} The unique feature name - */ - waitForInitialization: function (feature) { - if (feature) { - var c = channel[feature] || this.createSticky(feature); - this.deviceReadyChannelsMap[feature] = c; - this.deviceReadyChannelsArray.push(c); - } - }, - - /** - * Indicate that initialization code has completed and the feature is ready to be used. - * - * @param feature {String} The unique feature name - */ - initializationComplete: function (feature) { - var c = this.deviceReadyChannelsMap[feature]; - if (c) { - c.fire(); - } - } -}; - -function checkSubscriptionArgument (argument) { - if (typeof argument !== 'function' && typeof argument.handleEvent !== 'function') { - throw new Error( - 'Must provide a function or an EventListener object ' + - 'implementing the handleEvent interface.' - ); - } -} - -/** - * Subscribes the given function to the channel. Any time that - * Channel.fire is called so too will the function. - * Optionally specify an execution context for the function - * and a guid that can be used to stop subscribing to the channel. - * Returns the guid. - */ -Channel.prototype.subscribe = function (eventListenerOrFunction, eventListener) { - checkSubscriptionArgument(eventListenerOrFunction); - var handleEvent, guid; - - if (eventListenerOrFunction && typeof eventListenerOrFunction === 'object') { - // Received an EventListener object implementing the handleEvent interface - handleEvent = eventListenerOrFunction.handleEvent; - eventListener = eventListenerOrFunction; - } else { - // Received a function to handle event - handleEvent = eventListenerOrFunction; - } - - if (this.state === 2) { - handleEvent.apply(eventListener || this, this.fireArgs); - return; - } - - guid = eventListenerOrFunction.observer_guid; - if (typeof eventListener === 'object') { - handleEvent = utils.close(eventListener, handleEvent); - } - - if (!guid) { - // First time any channel has seen this subscriber - guid = '' + nextGuid++; - } - handleEvent.observer_guid = guid; - eventListenerOrFunction.observer_guid = guid; - - // Don't add the same handler more than once. - if (!this.handlers[guid]) { - this.handlers[guid] = handleEvent; - this.numHandlers++; - if (this.numHandlers === 1) { - this.onHasSubscribersChange && this.onHasSubscribersChange(); - } - } -}; - -/** - * Unsubscribes the function with the given guid from the channel. - */ -Channel.prototype.unsubscribe = function (eventListenerOrFunction) { - checkSubscriptionArgument(eventListenerOrFunction); - var handleEvent, guid, handler; - - if (eventListenerOrFunction && typeof eventListenerOrFunction === 'object') { - // Received an EventListener object implementing the handleEvent interface - handleEvent = eventListenerOrFunction.handleEvent; - } else { - // Received a function to handle event - handleEvent = eventListenerOrFunction; - } - - guid = handleEvent.observer_guid; - handler = this.handlers[guid]; - if (handler) { - delete this.handlers[guid]; - this.numHandlers--; - if (this.numHandlers === 0) { - this.onHasSubscribersChange && this.onHasSubscribersChange(); - } - } -}; - -/** - * Calls all functions subscribed to this channel. - */ -Channel.prototype.fire = function (e) { - var fireArgs = Array.prototype.slice.call(arguments); - // Apply stickiness. - if (this.state === 1) { - this.state = 2; - this.fireArgs = fireArgs; - } - if (this.numHandlers) { - // Copy the values first so that it is safe to modify it from within - // callbacks. - var toCall = []; - for (var item in this.handlers) { - toCall.push(this.handlers[item]); - } - for (var i = 0; i < toCall.length; ++i) { - toCall[i].apply(this, fireArgs); - } - if (this.state === 2 && this.numHandlers) { - this.numHandlers = 0; - this.handlers = {}; - this.onHasSubscribersChange && this.onHasSubscribersChange(); - } - } -}; - -// defining them here so they are ready super fast! -// DOM event that is received when the web page is loaded and parsed. -channel.createSticky('onDOMContentLoaded'); - -// Event to indicate the Cordova native side is ready. -channel.createSticky('onNativeReady'); - -// Event to indicate that all Cordova JavaScript objects have been created -// and it's time to run plugin constructors. -channel.createSticky('onCordovaReady'); - -// Event to indicate that all automatically loaded JS plugins are loaded and ready. -// FIXME remove this -channel.createSticky('onPluginsReady'); - -// Event to indicate that Cordova is ready -channel.createSticky('onDeviceReady'); - -// Event to indicate a resume lifecycle event -channel.create('onResume'); - -// Event to indicate a pause lifecycle event -channel.create('onPause'); - -// Channels that must fire before "deviceready" is fired. -channel.waitForInitialization('onCordovaReady'); -channel.waitForInitialization('onDOMContentLoaded'); - -module.exports = channel; - -}); - -// file: ../cordova-android/cordova-js-src/exec.js -define("cordova/exec", function(require, exports, module) { - -/** - * Execute a cordova command. It is up to the native side whether this action - * is synchronous or asynchronous. The native side can return: - * Synchronous: PluginResult object as a JSON string - * Asynchronous: Empty string "" - * If async, the native side will cordova.callbackSuccess or cordova.callbackError, - * depending upon the result of the action. - * - * @param {Function} success The success callback - * @param {Function} fail The fail callback - * @param {String} service The name of the service to use - * @param {String} action Action to be run in cordova - * @param {String[]} [args] Zero or more arguments to pass to the method - */ -var cordova = require('cordova'); -var nativeApiProvider = require('cordova/android/nativeapiprovider'); -var utils = require('cordova/utils'); -var base64 = require('cordova/base64'); -var channel = require('cordova/channel'); -var jsToNativeModes = { - PROMPT: 0, - JS_OBJECT: 1 -}; -var nativeToJsModes = { - // Polls for messages using the JS->Native bridge. - POLLING: 0, - // For LOAD_URL to be viable, it would need to have a work-around for - // the bug where the soft-keyboard gets dismissed when a message is sent. - LOAD_URL: 1, - // For the ONLINE_EVENT to be viable, it would need to intercept all event - // listeners (both through addEventListener and window.ononline) as well - // as set the navigator property itself. - ONLINE_EVENT: 2, - EVAL_BRIDGE: 3 -}; -var jsToNativeBridgeMode; // Set lazily. -var nativeToJsBridgeMode = nativeToJsModes.EVAL_BRIDGE; -var pollEnabled = false; -var bridgeSecret = -1; - -var messagesFromNative = []; -var isProcessing = false; -var resolvedPromise = typeof Promise === 'undefined' ? null : Promise.resolve(); -var nextTick = resolvedPromise ? function (fn) { resolvedPromise.then(fn); } : function (fn) { setTimeout(fn); }; - -function androidExec (success, fail, service, action, args) { - if (bridgeSecret < 0) { - // If we ever catch this firing, we'll need to queue up exec()s - // and fire them once we get a secret. For now, I don't think - // it's possible for exec() to be called since plugins are parsed but - // not run until until after onNativeReady. - throw new Error('exec() called without bridgeSecret'); - } - // Set default bridge modes if they have not already been set. - // By default, we use the failsafe, since addJavascriptInterface breaks too often - if (jsToNativeBridgeMode === undefined) { - androidExec.setJsToNativeBridgeMode(jsToNativeModes.JS_OBJECT); - } - - // If args is not provided, default to an empty array - args = args || []; - - // Process any ArrayBuffers in the args into a string. - for (var i = 0; i < args.length; i++) { - if (utils.typeName(args[i]) === 'ArrayBuffer') { - args[i] = base64.fromArrayBuffer(args[i]); - } - } - - var callbackId = service + cordova.callbackId++; - var argsJson = JSON.stringify(args); - if (success || fail) { - cordova.callbacks[callbackId] = { success: success, fail: fail }; - } - - var msgs = nativeApiProvider.get().exec(bridgeSecret, service, action, callbackId, argsJson); - // If argsJson was received by Java as null, try again with the PROMPT bridge mode. - // This happens in rare circumstances, such as when certain Unicode characters are passed over the bridge on a Galaxy S2. See CB-2666. - if (jsToNativeBridgeMode === jsToNativeModes.JS_OBJECT && msgs === '@Null arguments.') { - androidExec.setJsToNativeBridgeMode(jsToNativeModes.PROMPT); - androidExec(success, fail, service, action, args); - androidExec.setJsToNativeBridgeMode(jsToNativeModes.JS_OBJECT); - } else if (msgs) { - messagesFromNative.push(msgs); - // Always process async to avoid exceptions messing up stack. - nextTick(processMessages); - } -} - -androidExec.init = function () { - bridgeSecret = +prompt('', 'gap_init:' + nativeToJsBridgeMode); - channel.onNativeReady.fire(); -}; - -function pollOnceFromOnlineEvent () { - pollOnce(true); -} - -function pollOnce (opt_fromOnlineEvent) { - if (bridgeSecret < 0) { - // This can happen when the NativeToJsMessageQueue resets the online state on page transitions. - // We know there's nothing to retrieve, so no need to poll. - return; - } - var msgs = nativeApiProvider.get().retrieveJsMessages(bridgeSecret, !!opt_fromOnlineEvent); - if (msgs) { - messagesFromNative.push(msgs); - // Process sync since we know we're already top-of-stack. - processMessages(); - } -} - -function pollingTimerFunc () { - if (pollEnabled) { - pollOnce(); - setTimeout(pollingTimerFunc, 50); - } -} - -function hookOnlineApis () { - function proxyEvent (e) { - cordova.fireWindowEvent(e.type); - } - // The network module takes care of firing online and offline events. - // It currently fires them only on document though, so we bridge them - // to window here (while first listening for exec()-releated online/offline - // events). - window.addEventListener('online', pollOnceFromOnlineEvent, false); - window.addEventListener('offline', pollOnceFromOnlineEvent, false); - cordova.addWindowEventHandler('online'); - cordova.addWindowEventHandler('offline'); - document.addEventListener('online', proxyEvent, false); - document.addEventListener('offline', proxyEvent, false); -} - -hookOnlineApis(); - -androidExec.jsToNativeModes = jsToNativeModes; -androidExec.nativeToJsModes = nativeToJsModes; - -androidExec.setJsToNativeBridgeMode = function (mode) { - if (mode === jsToNativeModes.JS_OBJECT && !window._cordovaNative) { - mode = jsToNativeModes.PROMPT; - } - nativeApiProvider.setPreferPrompt(mode === jsToNativeModes.PROMPT); - jsToNativeBridgeMode = mode; -}; - -androidExec.setNativeToJsBridgeMode = function (mode) { - if (mode === nativeToJsBridgeMode) { - return; - } - if (nativeToJsBridgeMode === nativeToJsModes.POLLING) { - pollEnabled = false; - } - - nativeToJsBridgeMode = mode; - // Tell the native side to switch modes. - // Otherwise, it will be set by androidExec.init() - if (bridgeSecret >= 0) { - nativeApiProvider.get().setNativeToJsBridgeMode(bridgeSecret, mode); - } - - if (mode === nativeToJsModes.POLLING) { - pollEnabled = true; - setTimeout(pollingTimerFunc, 1); - } -}; - -function buildPayload (payload, message) { - var payloadKind = message.charAt(0); - if (payloadKind === 's') { - payload.push(message.slice(1)); - } else if (payloadKind === 't') { - payload.push(true); - } else if (payloadKind === 'f') { - payload.push(false); - } else if (payloadKind === 'N') { - payload.push(null); - } else if (payloadKind === 'n') { - payload.push(+message.slice(1)); - } else if (payloadKind === 'A') { - var data = message.slice(1); - payload.push(base64.toArrayBuffer(data)); - } else if (payloadKind === 'S') { - payload.push(window.atob(message.slice(1))); - } else if (payloadKind === 'M') { - var multipartMessages = message.slice(1); - while (multipartMessages !== '') { - var spaceIdx = multipartMessages.indexOf(' '); - var msgLen = +multipartMessages.slice(0, spaceIdx); - var multipartMessage = multipartMessages.substr(spaceIdx + 1, msgLen); - multipartMessages = multipartMessages.slice(spaceIdx + msgLen + 1); - buildPayload(payload, multipartMessage); - } - } else { - payload.push(JSON.parse(message)); - } -} - -// Processes a single message, as encoded by NativeToJsMessageQueue.java. -function processMessage (message) { - var firstChar = message.charAt(0); - if (firstChar === 'J') { - // This is deprecated on the .java side. It doesn't work with CSP enabled. - // eslint-disable-next-line no-eval - eval(message.slice(1)); - } else if (firstChar === 'S' || firstChar === 'F') { - var success = firstChar === 'S'; - var keepCallback = message.charAt(1) === '1'; - var spaceIdx = message.indexOf(' ', 2); - var status = +message.slice(2, spaceIdx); - var nextSpaceIdx = message.indexOf(' ', spaceIdx + 1); - var callbackId = message.slice(spaceIdx + 1, nextSpaceIdx); - var payloadMessage = message.slice(nextSpaceIdx + 1); - var payload = []; - buildPayload(payload, payloadMessage); - cordova.callbackFromNative(callbackId, success, status, payload, keepCallback); - } else { - console.log('processMessage failed: invalid message: ' + JSON.stringify(message)); - } -} - -function processMessages () { - // Check for the reentrant case. - if (isProcessing) { - return; - } - if (messagesFromNative.length === 0) { - return; - } - isProcessing = true; - try { - var msg = popMessageFromQueue(); - // The Java side can send a * message to indicate that it - // still has messages waiting to be retrieved. - if (msg === '*' && messagesFromNative.length === 0) { - nextTick(pollOnce); - return; - } - processMessage(msg); - } finally { - isProcessing = false; - if (messagesFromNative.length > 0) { - nextTick(processMessages); - } - } -} - -function popMessageFromQueue () { - var messageBatch = messagesFromNative.shift(); - if (messageBatch === '*') { - return '*'; - } - - var spaceIdx = messageBatch.indexOf(' '); - var msgLen = +messageBatch.slice(0, spaceIdx); - var message = messageBatch.substr(spaceIdx + 1, msgLen); - messageBatch = messageBatch.slice(spaceIdx + msgLen + 1); - if (messageBatch) { - messagesFromNative.unshift(messageBatch); - } - return message; -} - -module.exports = androidExec; - -}); - -// file: src/common/exec/proxy.js -define("cordova/exec/proxy", function(require, exports, module) { - -// internal map of proxy function -var CommandProxyMap = {}; - -module.exports = { - - // example: cordova.commandProxy.add("Accelerometer",{getCurrentAcceleration: function(successCallback, errorCallback, options) {...},...); - add: function (id, proxyObj) { - console.log('adding proxy for ' + id); - CommandProxyMap[id] = proxyObj; - return proxyObj; - }, - - // cordova.commandProxy.remove("Accelerometer"); - remove: function (id) { - var proxy = CommandProxyMap[id]; - delete CommandProxyMap[id]; - CommandProxyMap[id] = null; - return proxy; - }, - - get: function (service, action) { - return (CommandProxyMap[service] ? CommandProxyMap[service][action] : null); - } -}; - -}); - -// file: src/common/init.js -define("cordova/init", function(require, exports, module) { - -var channel = require('cordova/channel'); -var cordova = require('cordova'); -var modulemapper = require('cordova/modulemapper'); -var platform = require('cordova/platform'); -var pluginloader = require('cordova/pluginloader'); - -var platformInitChannelsArray = [channel.onNativeReady, channel.onPluginsReady]; - -function logUnfiredChannels (arr) { - for (var i = 0; i < arr.length; ++i) { - if (arr[i].state !== 2) { - console.log('Channel not fired: ' + arr[i].type); - } - } -} - -window.setTimeout(function () { - if (channel.onDeviceReady.state !== 2) { - console.log('deviceready has not fired after 5 seconds.'); - logUnfiredChannels(platformInitChannelsArray); - logUnfiredChannels(channel.deviceReadyChannelsArray); - } -}, 5000); - -if (!window.console) { - window.console = { - log: function () {} - }; -} -if (!window.console.warn) { - window.console.warn = function (msg) { - this.log('warn: ' + msg); - }; -} - -// Register pause, resume and deviceready channels as events on document. -channel.onPause = cordova.addDocumentEventHandler('pause'); -channel.onResume = cordova.addDocumentEventHandler('resume'); -channel.onActivated = cordova.addDocumentEventHandler('activated'); -channel.onDeviceReady = cordova.addStickyDocumentEventHandler('deviceready'); - -// Listen for DOMContentLoaded and notify our channel subscribers. -if (document.readyState === 'complete' || document.readyState === 'interactive') { - channel.onDOMContentLoaded.fire(); -} else { - document.addEventListener('DOMContentLoaded', function () { - channel.onDOMContentLoaded.fire(); - }, false); -} - -// _nativeReady is global variable that the native side can set -// to signify that the native code is ready. It is a global since -// it may be called before any cordova JS is ready. -if (window._nativeReady) { - channel.onNativeReady.fire(); -} - -modulemapper.clobbers('cordova', 'cordova'); -modulemapper.clobbers('cordova/exec', 'cordova.exec'); -modulemapper.clobbers('cordova/exec', 'Cordova.exec'); - -// Call the platform-specific initialization. -platform.bootstrap && platform.bootstrap(); - -// Wrap in a setTimeout to support the use-case of having plugin JS appended to cordova.js. -// The delay allows the attached modules to be defined before the plugin loader looks for them. -setTimeout(function () { - pluginloader.load(function () { - channel.onPluginsReady.fire(); - }); -}, 0); - -/** - * Create all cordova objects once native side is ready. - */ -channel.join(function () { - modulemapper.mapModules(window); - - platform.initialize && platform.initialize(); - - // Fire event to notify that all objects are created - channel.onCordovaReady.fire(); - - // Fire onDeviceReady event once page has fully loaded, all - // constructors have run and cordova info has been received from native - // side. - channel.join(function () { - require('cordova').fireDocumentEvent('deviceready'); - }, channel.deviceReadyChannelsArray); -}, platformInitChannelsArray); - -}); - -// file: src/common/modulemapper.js -define("cordova/modulemapper", function(require, exports, module) { - -var builder = require('cordova/builder'); -var moduleMap = define.moduleMap; -var symbolList; -var deprecationMap; - -exports.reset = function () { - symbolList = []; - deprecationMap = {}; -}; - -function addEntry (strategy, moduleName, symbolPath, opt_deprecationMessage) { - if (!(moduleName in moduleMap)) { - throw new Error('Module ' + moduleName + ' does not exist.'); - } - symbolList.push(strategy, moduleName, symbolPath); - if (opt_deprecationMessage) { - deprecationMap[symbolPath] = opt_deprecationMessage; - } -} - -// Note: Android 2.3 does have Function.bind(). -exports.clobbers = function (moduleName, symbolPath, opt_deprecationMessage) { - addEntry('c', moduleName, symbolPath, opt_deprecationMessage); -}; - -exports.merges = function (moduleName, symbolPath, opt_deprecationMessage) { - addEntry('m', moduleName, symbolPath, opt_deprecationMessage); -}; - -exports.defaults = function (moduleName, symbolPath, opt_deprecationMessage) { - addEntry('d', moduleName, symbolPath, opt_deprecationMessage); -}; - -exports.runs = function (moduleName) { - addEntry('r', moduleName, null); -}; - -function prepareNamespace (symbolPath, context) { - if (!symbolPath) { - return context; - } - return symbolPath.split('.').reduce(function (cur, part) { - return (cur[part] = cur[part] || {}); - }, context); -} - -exports.mapModules = function (context) { - var origSymbols = {}; - context.CDV_origSymbols = origSymbols; - for (var i = 0, len = symbolList.length; i < len; i += 3) { - var strategy = symbolList[i]; - var moduleName = symbolList[i + 1]; - var module = require(moduleName); - // <runs/> - if (strategy === 'r') { - continue; - } - var symbolPath = symbolList[i + 2]; - var lastDot = symbolPath.lastIndexOf('.'); - var namespace = symbolPath.substr(0, lastDot); - var lastName = symbolPath.substr(lastDot + 1); - - var deprecationMsg = symbolPath in deprecationMap ? 'Access made to deprecated symbol: ' + symbolPath + '. ' + deprecationMsg : null; - var parentObj = prepareNamespace(namespace, context); - var target = parentObj[lastName]; - - if (strategy === 'm' && target) { - builder.recursiveMerge(target, module); - } else if ((strategy === 'd' && !target) || (strategy !== 'd')) { - if (!(symbolPath in origSymbols)) { - origSymbols[symbolPath] = target; - } - builder.assignOrWrapInDeprecateGetter(parentObj, lastName, module, deprecationMsg); - } - } -}; - -exports.getOriginalSymbol = function (context, symbolPath) { - var origSymbols = context.CDV_origSymbols; - if (origSymbols && (symbolPath in origSymbols)) { - return origSymbols[symbolPath]; - } - var parts = symbolPath.split('.'); - var obj = context; - for (var i = 0; i < parts.length; ++i) { - obj = obj && obj[parts[i]]; - } - return obj; -}; - -exports.reset(); - -}); - -// file: ../cordova-android/cordova-js-src/platform.js -define("cordova/platform", function(require, exports, module) { - -// The last resume event that was received that had the result of a plugin call. -var lastResumeEvent = null; - -module.exports = { - id: 'android', - bootstrap: function () { - var channel = require('cordova/channel'); - var cordova = require('cordova'); - var exec = require('cordova/exec'); - var modulemapper = require('cordova/modulemapper'); - - // Get the shared secret needed to use the bridge. - exec.init(); - - // TODO: Extract this as a proper plugin. - modulemapper.clobbers('cordova/plugin/android/app', 'navigator.app'); - - var APP_PLUGIN_NAME = Number(cordova.platformVersion.split('.')[0]) >= 4 ? 'CoreAndroid' : 'App'; - - // Inject a listener for the backbutton on the document. - var backButtonChannel = cordova.addDocumentEventHandler('backbutton'); - backButtonChannel.onHasSubscribersChange = function () { - // If we just attached the first handler or detached the last handler, - // let native know we need to override the back button. - exec(null, null, APP_PLUGIN_NAME, 'overrideBackbutton', [this.numHandlers === 1]); - }; - - // Add hardware MENU and SEARCH button handlers - cordova.addDocumentEventHandler('menubutton'); - cordova.addDocumentEventHandler('searchbutton'); - - function bindButtonChannel (buttonName) { - // generic button bind used for volumeup/volumedown buttons - var volumeButtonChannel = cordova.addDocumentEventHandler(buttonName + 'button'); - volumeButtonChannel.onHasSubscribersChange = function () { - exec(null, null, APP_PLUGIN_NAME, 'overrideButton', [buttonName, this.numHandlers === 1]); - }; - } - // Inject a listener for the volume buttons on the document. - bindButtonChannel('volumeup'); - bindButtonChannel('volumedown'); - - // The resume event is not "sticky", but it is possible that the event - // will contain the result of a plugin call. We need to ensure that the - // plugin result is delivered even after the event is fired (CB-10498) - var cordovaAddEventListener = document.addEventListener; - - document.addEventListener = function (evt, handler, capture) { - cordovaAddEventListener(evt, handler, capture); - - if (evt === 'resume' && lastResumeEvent) { - handler(lastResumeEvent); - } - }; - - // Let native code know we are all done on the JS side. - // Native code will then un-hide the WebView. - channel.onCordovaReady.subscribe(function () { - exec(onMessageFromNative, null, APP_PLUGIN_NAME, 'messageChannel', []); - exec(null, null, APP_PLUGIN_NAME, 'show', []); - }); - } -}; - -function onMessageFromNative (msg) { - var cordova = require('cordova'); - var action = msg.action; - - switch (action) { - // pause and resume are Android app life cycle events - case 'backbutton': - case 'menubutton': - case 'searchbutton': - case 'pause': - case 'volumedownbutton': - case 'volumeupbutton': - cordova.fireDocumentEvent(action); - break; - case 'resume': - if (arguments.length > 1 && msg.pendingResult) { - if (arguments.length === 2) { - msg.pendingResult.result = arguments[1]; - } else { - // The plugin returned a multipart message - var res = []; - for (var i = 1; i < arguments.length; i++) { - res.push(arguments[i]); - } - msg.pendingResult.result = res; - } - - // Save the plugin result so that it can be delivered to the js - // even if they miss the initial firing of the event - lastResumeEvent = msg; - } - cordova.fireDocumentEvent(action, msg); - break; - default: - throw new Error('Unknown event action ' + action); - } -} - -}); - -// file: ../cordova-android/cordova-js-src/plugin/android/app.js -define("cordova/plugin/android/app", function(require, exports, module) { - -var exec = require('cordova/exec'); -var APP_PLUGIN_NAME = Number(require('cordova').platformVersion.split('.')[0]) >= 4 ? 'CoreAndroid' : 'App'; - -module.exports = { - /** - * Clear the resource cache. - */ - clearCache: function () { - exec(null, null, APP_PLUGIN_NAME, 'clearCache', []); - }, - - /** - * Load the url into the webview or into new browser instance. - * - * @param url The URL to load - * @param props Properties that can be passed in to the activity: - * wait: int => wait msec before loading URL - * loadingDialog: "Title,Message" => display a native loading dialog - * loadUrlTimeoutValue: int => time in msec to wait before triggering a timeout error - * clearHistory: boolean => clear webview history (default=false) - * openExternal: boolean => open in a new browser (default=false) - * - * Example: - * navigator.app.loadUrl("http://server/myapp/index.html", {wait:2000, loadingDialog:"Wait,Loading App", loadUrlTimeoutValue: 60000}); - */ - loadUrl: function (url, props) { - exec(null, null, APP_PLUGIN_NAME, 'loadUrl', [url, props]); - }, - - /** - * Cancel loadUrl that is waiting to be loaded. - */ - cancelLoadUrl: function () { - exec(null, null, APP_PLUGIN_NAME, 'cancelLoadUrl', []); - }, - - /** - * Clear web history in this web view. - * Instead of BACK button loading the previous web page, it will exit the app. - */ - clearHistory: function () { - exec(null, null, APP_PLUGIN_NAME, 'clearHistory', []); - }, - - /** - * Go to previous page displayed. - * This is the same as pressing the backbutton on Android device. - */ - backHistory: function () { - exec(null, null, APP_PLUGIN_NAME, 'backHistory', []); - }, - - /** - * Override the default behavior of the Android back button. - * If overridden, when the back button is pressed, the "backKeyDown" JavaScript event will be fired. - * - * Note: The user should not have to call this method. Instead, when the user - * registers for the "backbutton" event, this is automatically done. - * - * @param override T=override, F=cancel override - */ - overrideBackbutton: function (override) { - exec(null, null, APP_PLUGIN_NAME, 'overrideBackbutton', [override]); - }, - - /** - * Override the default behavior of the Android volume button. - * If overridden, when the volume button is pressed, the "volume[up|down]button" - * JavaScript event will be fired. - * - * Note: The user should not have to call this method. Instead, when the user - * registers for the "volume[up|down]button" event, this is automatically done. - * - * @param button volumeup, volumedown - * @param override T=override, F=cancel override - */ - overrideButton: function (button, override) { - exec(null, null, APP_PLUGIN_NAME, 'overrideButton', [button, override]); - }, - - /** - * Exit and terminate the application. - */ - exitApp: function () { - return exec(null, null, APP_PLUGIN_NAME, 'exitApp', []); - } -}; - -}); - -// file: src/common/pluginloader.js -define("cordova/pluginloader", function(require, exports, module) { - -var modulemapper = require('cordova/modulemapper'); - -// Helper function to inject a <script> tag. -// Exported for testing. -exports.injectScript = function (url, onload, onerror) { - var script = document.createElement('script'); - // onload fires even when script fails loads with an error. - script.onload = onload; - // onerror fires for malformed URLs. - script.onerror = onerror; - script.src = url; - document.head.appendChild(script); -}; - -function injectIfNecessary (id, url, onload, onerror) { - onerror = onerror || onload; - if (id in define.moduleMap) { - onload(); - } else { - exports.injectScript(url, function () { - if (id in define.moduleMap) { - onload(); - } else { - onerror(); - } - }, onerror); - } -} - -function onScriptLoadingComplete (moduleList, finishPluginLoading) { - // Loop through all the plugins and then through their clobbers and merges. - for (var i = 0, module; (module = moduleList[i]); i++) { - if (module.clobbers && module.clobbers.length) { - for (var j = 0; j < module.clobbers.length; j++) { - modulemapper.clobbers(module.id, module.clobbers[j]); - } - } - - if (module.merges && module.merges.length) { - for (var k = 0; k < module.merges.length; k++) { - modulemapper.merges(module.id, module.merges[k]); - } - } - - // Finally, if runs is truthy we want to simply require() the module. - if (module.runs) { - modulemapper.runs(module.id); - } - } - - finishPluginLoading(); -} - -// Handler for the cordova_plugins.js content. -// See plugman's plugin_loader.js for the details of this object. -// This function is only called if the really is a plugins array that isn't empty. -// Otherwise the onerror response handler will just call finishPluginLoading(). -function handlePluginsObject (path, moduleList, finishPluginLoading) { - // Now inject the scripts. - var scriptCounter = moduleList.length; - - if (!scriptCounter) { - finishPluginLoading(); - return; - } - function scriptLoadedCallback () { - if (!--scriptCounter) { - onScriptLoadingComplete(moduleList, finishPluginLoading); - } - } - - for (var i = 0; i < moduleList.length; i++) { - injectIfNecessary(moduleList[i].id, path + moduleList[i].file, scriptLoadedCallback); - } -} - -function findCordovaPath () { - var path = null; - var scripts = document.getElementsByTagName('script'); - var term = '/cordova.js'; - for (var n = scripts.length - 1; n > -1; n--) { - var src = scripts[n].src.replace(/\?.*$/, ''); // Strip any query param (CB-6007). - if (src.indexOf(term) === (src.length - term.length)) { - path = src.substring(0, src.length - term.length) + '/'; - break; - } - } - return path; -} - -// Tries to load all plugins' js-modules. -// This is an async process, but onDeviceReady is blocked on onPluginsReady. -// onPluginsReady is fired when there are no plugins to load, or they are all done. -exports.load = function (callback) { - var pathPrefix = findCordovaPath(); - if (pathPrefix === null) { - console.log('Could not find cordova.js script tag. Plugin loading may fail.'); - pathPrefix = ''; - } - injectIfNecessary('cordova/plugin_list', pathPrefix + 'cordova_plugins.js', function () { - var moduleList = require('cordova/plugin_list'); - handlePluginsObject(pathPrefix, moduleList, callback); - }, callback); -}; - -}); - -// file: src/common/urlutil.js -define("cordova/urlutil", function(require, exports, module) { - -/** - * For already absolute URLs, returns what is passed in. - * For relative URLs, converts them to absolute ones. - */ -exports.makeAbsolute = function makeAbsolute (url) { - var anchorEl = document.createElement('a'); - anchorEl.href = url; - return anchorEl.href; -}; - -}); - -// file: src/common/utils.js -define("cordova/utils", function(require, exports, module) { - -var utils = exports; - -/** - * Defines a property getter / setter for obj[key]. - */ -utils.defineGetterSetter = function (obj, key, getFunc, opt_setFunc) { - if (Object.defineProperty) { - var desc = { - get: getFunc, - configurable: true - }; - if (opt_setFunc) { - desc.set = opt_setFunc; - } - Object.defineProperty(obj, key, desc); - } else { - obj.__defineGetter__(key, getFunc); - if (opt_setFunc) { - obj.__defineSetter__(key, opt_setFunc); - } - } -}; - -/** - * Defines a property getter for obj[key]. - */ -utils.defineGetter = utils.defineGetterSetter; - -utils.arrayIndexOf = function (a, item) { - if (a.indexOf) { - return a.indexOf(item); - } - var len = a.length; - for (var i = 0; i < len; ++i) { - if (a[i] === item) { - return i; - } - } - return -1; -}; - -/** - * Returns whether the item was found in the array. - */ -utils.arrayRemove = function (a, item) { - var index = utils.arrayIndexOf(a, item); - if (index !== -1) { - a.splice(index, 1); - } - return index !== -1; -}; - -utils.typeName = function (val) { - return Object.prototype.toString.call(val).slice(8, -1); -}; - -/** - * Returns an indication of whether the argument is an array or not - */ -utils.isArray = Array.isArray || - function (a) { return utils.typeName(a) === 'Array'; }; - -/** - * Returns an indication of whether the argument is a Date or not - */ -utils.isDate = function (d) { - return (d instanceof Date); -}; - -/** - * Does a deep clone of the object. - */ -utils.clone = function (obj) { - if (!obj || typeof obj === 'function' || utils.isDate(obj) || typeof obj !== 'object') { - return obj; - } - - var retVal, i; - - if (utils.isArray(obj)) { - retVal = []; - for (i = 0; i < obj.length; ++i) { - retVal.push(utils.clone(obj[i])); - } - return retVal; - } - - retVal = {}; - for (i in obj) { - // 'unknown' type may be returned in custom protocol activation case on - // Windows Phone 8.1 causing "No such interface supported" exception on - // cloning (https://issues.apache.org/jira/browse/CB-11522) - // eslint-disable-next-line valid-typeof - if ((!(i in retVal) || retVal[i] !== obj[i]) && typeof obj[i] !== 'undefined' && typeof obj[i] !== 'unknown') { - retVal[i] = utils.clone(obj[i]); - } - } - return retVal; -}; - -/** - * Returns a wrapped version of the function - */ -utils.close = function (context, func, params) { - return function () { - var args = params || arguments; - return func.apply(context, args); - }; -}; - -// ------------------------------------------------------------------------------ -function UUIDcreatePart (length) { - var uuidpart = ''; - for (var i = 0; i < length; i++) { - var uuidchar = parseInt((Math.random() * 256), 10).toString(16); - if (uuidchar.length === 1) { - uuidchar = '0' + uuidchar; - } - uuidpart += uuidchar; - } - return uuidpart; -} - -/** - * Create a UUID - */ -utils.createUUID = function () { - return UUIDcreatePart(4) + '-' + - UUIDcreatePart(2) + '-' + - UUIDcreatePart(2) + '-' + - UUIDcreatePart(2) + '-' + - UUIDcreatePart(6); -}; - -/** - * Extends a child object from a parent object using classical inheritance - * pattern. - */ -utils.extend = (function () { - // proxy used to establish prototype chain - var F = function () {}; - // extend Child from Parent - return function (Child, Parent) { - F.prototype = Parent.prototype; - Child.prototype = new F(); - Child.__super__ = Parent.prototype; - Child.prototype.constructor = Child; - }; -}()); - -/** - * Alerts a message in any available way: alert or console.log. - */ -utils.alert = function (msg) { - if (window.alert) { - window.alert(msg); - } else if (console && console.log) { - console.log(msg); - } -}; - -}); - -window.cordova = require('cordova'); -// file: src/scripts/bootstrap.js -require('cordova/init'); - -})(); diff --git a/ionic/platforms/android/app/src/main/assets/www/cordova_plugins.js b/ionic/platforms/android/app/src/main/assets/www/cordova_plugins.js deleted file mode 100644 index ac1888f6fb97e9a2603e2e909eec8fe5bc8e6266..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/cordova_plugins.js +++ /dev/null @@ -1,52 +0,0 @@ -cordova.define('cordova/plugin_list', function(require, exports, module) { - module.exports = [ - { - "id": "cordova-plugin-statusbar.statusbar", - "file": "plugins/cordova-plugin-statusbar/www/statusbar.js", - "pluginId": "cordova-plugin-statusbar", - "clobbers": [ - "window.StatusBar" - ] - }, - { - "id": "cordova-plugin-device.device", - "file": "plugins/cordova-plugin-device/www/device.js", - "pluginId": "cordova-plugin-device", - "clobbers": [ - "device" - ] - }, - { - "id": "cordova-plugin-splashscreen.SplashScreen", - "file": "plugins/cordova-plugin-splashscreen/www/splashscreen.js", - "pluginId": "cordova-plugin-splashscreen", - "clobbers": [ - "navigator.splashscreen" - ] - }, - { - "id": "cordova-plugin-ionic-webview.IonicWebView", - "file": "plugins/cordova-plugin-ionic-webview/src/www/util.js", - "pluginId": "cordova-plugin-ionic-webview", - "clobbers": [ - "Ionic.WebView" - ] - }, - { - "id": "cordova-plugin-ionic-keyboard.keyboard", - "file": "plugins/cordova-plugin-ionic-keyboard/www/android/keyboard.js", - "pluginId": "cordova-plugin-ionic-keyboard", - "clobbers": [ - "window.Keyboard" - ] - } - ]; - module.exports.metadata = { - "cordova-plugin-whitelist": "1.3.3", - "cordova-plugin-statusbar": "2.4.2", - "cordova-plugin-device": "2.0.2", - "cordova-plugin-splashscreen": "5.0.2", - "cordova-plugin-ionic-webview": "4.2.1", - "cordova-plugin-ionic-keyboard": "2.2.0" - }; -}); \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/index.html b/ionic/platforms/android/app/src/main/assets/www/index.html deleted file mode 100644 index 7fe514e047ead328fb62e99a27eb8d35e76ed850..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/index.html +++ /dev/null @@ -1,26 +0,0 @@ -<!DOCTYPE html> -<html lang="en"> - -<head> - <meta charset="utf-8" /> - <title>Ionic App</title> - - <base href="/" /> - - <meta name="color-scheme" content="light dark" /> - <meta name="viewport" content="viewport-fit=cover, width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no" /> - <meta name="format-detection" content="telephone=no" /> - <meta name="msapplication-tap-highlight" content="no" /> - - <link rel="icon" type="image/png" href="assets/icon/favicon.png" /> - - <!-- add to homescreen for ios --> - <meta name="apple-mobile-web-app-capable" content="yes" /> - <meta name="apple-mobile-web-app-status-bar-style" content="black" /> -</head> - -<body> - <app-root></app-root> -<script src="runtime-es2015.js" type="module"></script><script src="runtime-es5.js" nomodule defer></script><script src="polyfills-es5.js" nomodule defer></script><script src="polyfills-es2015.js" type="module"></script><script src="styles-es2015.js" type="module"></script><script src="styles-es5.js" nomodule defer></script><script src="cordova.js" defer></script><script src="vendor-es2015.js" type="module"></script><script src="vendor-es5.js" nomodule defer></script><script src="main-es2015.js" type="module"></script><script src="main-es5.js" nomodule defer></script></body> - -</html> diff --git a/ionic/platforms/android/app/src/main/assets/www/plugins/cordova-plugin-device/www/device.js b/ionic/platforms/android/app/src/main/assets/www/plugins/cordova-plugin-device/www/device.js deleted file mode 100644 index ae48e354655088c859a95f06d1ed46de0c42bb46..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/plugins/cordova-plugin-device/www/device.js +++ /dev/null @@ -1,86 +0,0 @@ -cordova.define("cordova-plugin-device.device", function(require, exports, module) { -/* - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - * -*/ - -var argscheck = require('cordova/argscheck'); -var channel = require('cordova/channel'); -var utils = require('cordova/utils'); -var exec = require('cordova/exec'); -var cordova = require('cordova'); - -channel.createSticky('onCordovaInfoReady'); -// Tell cordova channel to wait on the CordovaInfoReady event -channel.waitForInitialization('onCordovaInfoReady'); - -/** - * This represents the mobile device, and provides properties for inspecting the model, version, UUID of the - * phone, etc. - * @constructor - */ -function Device () { - this.available = false; - this.platform = null; - this.version = null; - this.uuid = null; - this.cordova = null; - this.model = null; - this.manufacturer = null; - this.isVirtual = null; - this.serial = null; - - var me = this; - - channel.onCordovaReady.subscribe(function () { - me.getInfo(function (info) { - // ignoring info.cordova returning from native, we should use value from cordova.version defined in cordova.js - // TODO: CB-5105 native implementations should not return info.cordova - var buildLabel = cordova.version; - me.available = true; - me.platform = info.platform; - me.version = info.version; - me.uuid = info.uuid; - me.cordova = buildLabel; - me.model = info.model; - me.isVirtual = info.isVirtual; - me.manufacturer = info.manufacturer || 'unknown'; - me.serial = info.serial || 'unknown'; - channel.onCordovaInfoReady.fire(); - }, function (e) { - me.available = false; - utils.alert('[ERROR] Error initializing Cordova: ' + e); - }); - }); -} - -/** - * Get device info - * - * @param {Function} successCallback The function to call when the heading data is available - * @param {Function} errorCallback The function to call when there is an error getting the heading data. (OPTIONAL) - */ -Device.prototype.getInfo = function (successCallback, errorCallback) { - argscheck.checkArgs('fF', 'Device.getInfo', arguments); - exec(successCallback, errorCallback, 'Device', 'getDeviceInfo', []); -}; - -module.exports = new Device(); - -}); diff --git a/ionic/platforms/android/app/src/main/assets/www/plugins/cordova-plugin-ionic-keyboard/www/android/keyboard.js b/ionic/platforms/android/app/src/main/assets/www/plugins/cordova-plugin-ionic-keyboard/www/android/keyboard.js deleted file mode 100644 index 19062bf15874ad66e03019743e8d3678738d8d39..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/plugins/cordova-plugin-ionic-keyboard/www/android/keyboard.js +++ /dev/null @@ -1,87 +0,0 @@ -cordova.define("cordova-plugin-ionic-keyboard.keyboard", function(require, exports, module) { -var argscheck = require('cordova/argscheck'), - utils = require('cordova/utils'), - exec = require('cordova/exec'), - channel = require('cordova/channel'); - -var Keyboard = function () {}; - -Keyboard.fireOnShow = function (height) { - Keyboard.isVisible = true; - cordova.fireWindowEvent('keyboardDidShow', { - 'keyboardHeight': height - }); - - // To support the keyboardAttach directive listening events - // inside Ionic's main bundle - cordova.fireWindowEvent('native.keyboardshow', { - 'keyboardHeight': height - }); -}; - -Keyboard.fireOnHide = function () { - Keyboard.isVisible = false; - cordova.fireWindowEvent('keyboardDidHide'); - - // To support the keyboardAttach directive listening events - // inside Ionic's main bundle - cordova.fireWindowEvent('native.keyboardhide'); -}; - -Keyboard.fireOnHiding = function () { - cordova.fireWindowEvent('keyboardWillHide'); -}; - -Keyboard.fireOnShowing = function (height) { - cordova.fireWindowEvent('keyboardWillShow', { - 'keyboardHeight': height - }); -}; - -Keyboard.hideFormAccessoryBar = Keyboard.hideKeyboardAccessoryBar = function (hide) { - console.warn("Keyboard.hideKeyboardAccessoryBar() not supported in Android"); -}; - -Keyboard.hide = function () { - exec(null, null, "CDVIonicKeyboard", "hide", []); -}; - -Keyboard.show = function () { - exec(null, null, "CDVIonicKeyboard", "show", []); -}; - -Keyboard.disableScroll = function (disable) { - console.warn("Keyboard.disableScroll() not supported in Android"); -}; - -Keyboard.setResizeMode = function (mode) { - console.warn("Keyboard.setResizeMode() not supported in Android"); -} - -Keyboard.setKeyboardStyle = function(style) { - console.warn("Keyboard.setKeyboardStyle() not supported in Android"); -}; - -channel.onCordovaReady.subscribe(function () { - exec(success, null, 'CDVIonicKeyboard', 'init', []); - - function success(msg) { - var action = msg.charAt(0); - if (action === 'S') { - var keyboardHeight = parseInt(msg.substr(1)); - Keyboard.fireOnShowing(keyboardHeight); - Keyboard.fireOnShow(keyboardHeight); - - } else if (action === 'H') { - Keyboard.fireOnHiding(); - Keyboard.fireOnHide(); - } - } -}); - - -Keyboard.isVisible = false; - -module.exports = Keyboard; - -}); diff --git a/ionic/platforms/android/app/src/main/assets/www/plugins/cordova-plugin-ionic-webview/src/www/util.js b/ionic/platforms/android/app/src/main/assets/www/plugins/cordova-plugin-ionic-webview/src/www/util.js deleted file mode 100644 index 0795894a222a2bbe6a144fee9b9c90ff351491fa..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/plugins/cordova-plugin-ionic-webview/src/www/util.js +++ /dev/null @@ -1,33 +0,0 @@ -cordova.define("cordova-plugin-ionic-webview.IonicWebView", function(require, exports, module) { -var exec = require('cordova/exec'); - -var WebView = { - convertFileSrc: function(url) { - if (!url) { - return url; - } - if (url.indexOf('/')===0) { - return window.WEBVIEW_SERVER_URL + '/_app_file_' + url; - } - if (url.indexOf('file://')===0) { - return window.WEBVIEW_SERVER_URL + url.replace('file://', '/_app_file_'); - } - if (url.indexOf('content://')===0) { - return window.WEBVIEW_SERVER_URL + url.replace('content:/', '/_app_content_'); - } - return url; - }, - setServerBasePath: function(path) { - exec(null, null, 'IonicWebView', 'setServerBasePath', [path]); - }, - getServerBasePath: function(callback) { - exec(callback, null, 'IonicWebView', 'getServerBasePath', []); - }, - persistServerBasePath: function() { - exec(null, null, 'IonicWebView', 'persistServerBasePath', []); - } -} - -module.exports = WebView; - -}); diff --git a/ionic/platforms/android/app/src/main/assets/www/plugins/cordova-plugin-splashscreen/www/splashscreen.js b/ionic/platforms/android/app/src/main/assets/www/plugins/cordova-plugin-splashscreen/www/splashscreen.js deleted file mode 100644 index 5beaa5fd21df9edd81c94f62ce2769395bc72e66..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/plugins/cordova-plugin-splashscreen/www/splashscreen.js +++ /dev/null @@ -1,36 +0,0 @@ -cordova.define("cordova-plugin-splashscreen.SplashScreen", function(require, exports, module) { -/* - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - * -*/ - -var exec = require('cordova/exec'); - -var splashscreen = { - show:function() { - exec(null, null, "SplashScreen", "show", []); - }, - hide:function() { - exec(null, null, "SplashScreen", "hide", []); - } -}; - -module.exports = splashscreen; - -}); diff --git a/ionic/platforms/android/app/src/main/assets/www/plugins/cordova-plugin-statusbar/www/statusbar.js b/ionic/platforms/android/app/src/main/assets/www/plugins/cordova-plugin-statusbar/www/statusbar.js deleted file mode 100644 index 708186f9e22102d93e5787bb855811e1cc86b69d..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/plugins/cordova-plugin-statusbar/www/statusbar.js +++ /dev/null @@ -1,116 +0,0 @@ -cordova.define("cordova-plugin-statusbar.statusbar", function(require, exports, module) { -/* - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - * -*/ - -/* global cordova */ - -var exec = require('cordova/exec'); - -var namedColors = { - "black": "#000000", - "darkGray": "#A9A9A9", - "lightGray": "#D3D3D3", - "white": "#FFFFFF", - "gray": "#808080", - "red": "#FF0000", - "green": "#00FF00", - "blue": "#0000FF", - "cyan": "#00FFFF", - "yellow": "#FFFF00", - "magenta": "#FF00FF", - "orange": "#FFA500", - "purple": "#800080", - "brown": "#A52A2A" -}; - -var StatusBar = { - - isVisible: true, - - overlaysWebView: function (doOverlay) { - exec(null, null, "StatusBar", "overlaysWebView", [doOverlay]); - }, - - styleDefault: function () { - // dark text ( to be used on a light background ) - exec(null, null, "StatusBar", "styleDefault", []); - }, - - styleLightContent: function () { - // light text ( to be used on a dark background ) - exec(null, null, "StatusBar", "styleLightContent", []); - }, - - styleBlackTranslucent: function () { - // #88000000 ? Apple says to use lightContent instead - exec(null, null, "StatusBar", "styleBlackTranslucent", []); - }, - - styleBlackOpaque: function () { - // #FF000000 ? Apple says to use lightContent instead - exec(null, null, "StatusBar", "styleBlackOpaque", []); - }, - - backgroundColorByName: function (colorname) { - return StatusBar.backgroundColorByHexString(namedColors[colorname]); - }, - - backgroundColorByHexString: function (hexString) { - if (hexString.charAt(0) !== "#") { - hexString = "#" + hexString; - } - - if (hexString.length === 4) { - var split = hexString.split(""); - hexString = "#" + split[1] + split[1] + split[2] + split[2] + split[3] + split[3]; - } - - exec(null, null, "StatusBar", "backgroundColorByHexString", [hexString]); - }, - - hide: function () { - exec(null, null, "StatusBar", "hide", []); - StatusBar.isVisible = false; - }, - - show: function () { - exec(null, null, "StatusBar", "show", []); - StatusBar.isVisible = true; - } - -}; - -// prime it. setTimeout so that proxy gets time to init -window.setTimeout(function () { - exec(function (res) { - if (typeof res == 'object') { - if (res.type == 'tap') { - cordova.fireWindowEvent('statusTap'); - } - } else { - StatusBar.isVisible = res; - } - }, null, "StatusBar", "_ready", []); -}, 0); - -module.exports = StatusBar; - -}); diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/accessibility-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/accessibility-outline.svg deleted file mode 100644 index 9d3f19c2c069dc04bfad67dacfc819f99bf59a12..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/accessibility-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Accessibility</title><circle stroke-linejoin="round" cx="256" cy="56" r="40" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linejoin="round" d="M204.23 274.44c2.9-18.06 4.2-35.52-.5-47.59-4-10.38-12.7-16.19-23.2-20.15L88 176.76c-12-4-23.21-10.7-24-23.94-1-17 14-28 29-24 0 0 88 31.14 163 31.14s162-31 162-31c18-5 30 9 30 23.79 0 14.21-11 19.21-24 23.94l-88 31.91c-8 3-21 9-26 18.18-6 10.75-5 29.53-2.1 47.59l5.9 29.63 37.41 163.9c2.8 13.15-6.3 25.44-19.4 27.74S308 489 304.12 476.28l-37.56-115.93q-2.71-8.34-4.8-16.87L256 320l-5.3 21.65q-2.52 10.35-5.8 20.48L208 476.18c-4 12.85-14.5 21.75-27.6 19.46s-22.4-15.59-19.46-27.74l37.39-163.83z" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/accessibility-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/accessibility-sharp.svg deleted file mode 100644 index fd43ebc965b035f27ff6f3cd15efc474c70e8767..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/accessibility-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Accessibility</title><path d="M448 112c-66.82 17.92-119.55 32-192 32s-125.18-14.08-192-32l-16 51c48 20.53 96.71 35.16 147.2 53.2L144 496l56.4 16L246 336h20l45.6 176 56.4-16-51.2-279.8C367.26 199.93 416 183.53 464 164zM256 112a56 56 0 1156-56 56.06 56.06 0 01-56 56z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/accessibility.svg b/ionic/platforms/android/app/src/main/assets/www/svg/accessibility.svg deleted file mode 100644 index 1303ea209b43eb711e26055401d5b5035fc9cb5d..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/accessibility.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Accessibility</title><path d="M256 112a56 56 0 1156-56 56.06 56.06 0 01-56 56z"/><path d="M432 112.8l-.45.12-.42.13c-1 .28-2 .58-3 .89-18.61 5.46-108.93 30.92-172.56 30.92-59.13 0-141.28-22-167.56-29.47a73.79 73.79 0 00-8-2.58c-19-5-32 14.3-32 31.94 0 17.47 15.7 25.79 31.55 31.76v.28l95.22 29.74c9.73 3.73 12.33 7.54 13.6 10.84 4.13 10.59.83 31.56-.34 38.88l-5.8 45-32.19 176.19q-.15.72-.27 1.47l-.23 1.27c-2.32 16.15 9.54 31.82 32 31.82 19.6 0 28.25-13.53 32-31.94s28-157.57 42-157.57 42.84 157.57 42.84 157.57c3.75 18.41 12.4 31.94 32 31.94 22.52 0 34.38-15.74 32-31.94a57.17 57.17 0 00-.76-4.06L329 301.27l-5.79-45c-4.19-26.21-.82-34.87.32-36.9a1.09 1.09 0 00.08-.15c1.08-2 6-6.48 17.48-10.79l89.28-31.21a16.9 16.9 0 001.62-.52c16-6 32-14.3 32-31.93S451 107.81 432 112.8z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/add-circle-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/add-circle-outline.svg deleted file mode 100644 index 4ff834ef1292887cdcaf4e5284064afd1f948470..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/add-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Add Circle</title><path d="M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-linejoin="round" d="M256 176v160M336 256H176" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/add-circle-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/add-circle-sharp.svg deleted file mode 100644 index 0bc3d64bf70ab6019138a14a253ac033ff6ff109..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/add-circle-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Add Circle</title><path d="M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm96 224h-80v80h-32v-80h-80v-32h80v-80h32v80h80z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/add-circle.svg b/ionic/platforms/android/app/src/main/assets/www/svg/add-circle.svg deleted file mode 100644 index ff7e06ecf6f96571ee3f1e03824046eca68ff497..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/add-circle.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Add Circle</title><path d="M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm80 224h-64v64a16 16 0 01-32 0v-64h-64a16 16 0 010-32h64v-64a16 16 0 0132 0v64h64a16 16 0 010 32z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/add-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/add-outline.svg deleted file mode 100644 index 63a5779f65848c1655a984a84246b3f606b3d32f..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/add-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Add</title><path stroke-linecap="round" stroke-linejoin="round" d="M256 112v288M400 256H112" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/add-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/add-sharp.svg deleted file mode 100644 index fdb9c40897a000d19ce0e1a702d5ee24558319f7..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/add-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Add</title><path stroke-linecap="square" stroke-linejoin="round" d="M256 112v288M400 256H112" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/add.svg b/ionic/platforms/android/app/src/main/assets/www/svg/add.svg deleted file mode 100644 index 63a5779f65848c1655a984a84246b3f606b3d32f..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/add.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Add</title><path stroke-linecap="round" stroke-linejoin="round" d="M256 112v288M400 256H112" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/airplane-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/airplane-outline.svg deleted file mode 100644 index 9fe56d005f2f71eea7a8eaa83ff6016e63168baa..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/airplane-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Airplane</title><path d="M407.72 224c-3.4 0-14.79.1-18 .3l-64.9 1.7a1.83 1.83 0 01-1.69-.9L193.55 67.56a9 9 0 00-6.66-3.56H160l73 161a2.35 2.35 0 01-2.26 3.35l-121.69 1.8a8.06 8.06 0 01-6.6-3.1l-37-45c-3-3.9-8.62-6-13.51-6H33.08c-1.29 0-1.1 1.21-.75 2.43l19.84 71.42a16.3 16.3 0 010 11.9L32.31 333c-.59 1.95-.52 3 1.77 3H52c8.14 0 9.25-1.06 13.41-6.3l37.7-45.7a8.19 8.19 0 016.6-3.1l120.68 2.7a2.7 2.7 0 012.43 3.74L160 448h26.64a9 9 0 006.65-3.55L323.14 287c.39-.6 2-.9 2.69-.9l63.9 1.7c3.3.2 14.59.3 18 .3C452 288.1 480 275.93 480 256s-27.88-32-72.28-32z" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/airplane-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/airplane-sharp.svg deleted file mode 100644 index da2373bdb8c7f77c11b40fec6c854ea4c65a8294..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/airplane-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Airplane</title><path d="M407.72 208c-2.72 0-14.44.08-18.67.31l-57.77 1.52L198.06 48h-62.81l74.59 164.61-97.31 1.44L68.25 160H16.14l20.61 94.18c.15.54.33 1.07.53 1.59a.26.26 0 010 .15 15.42 15.42 0 00-.53 1.58L15.86 352h51.78l45.45-55 96.77 2.17L135.24 464h63l133-161.75 57.77 1.54c4.29.23 16 .31 18.66.31 24.35 0 44.27-3.34 59.21-9.94C492.22 283 496 265.46 496 256c0-30.06-33-48-88.28-48zm-71.29 87.9z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/airplane.svg b/ionic/platforms/android/app/src/main/assets/www/svg/airplane.svg deleted file mode 100644 index b4349173cc2f76ba12538734fc9a8b7198e13643..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/airplane.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Airplane</title><path d="M186.62 464H160a16 16 0 01-14.57-22.6l64.46-142.25L113.1 297l-35.3 42.77C71.07 348.23 65.7 352 52 352H34.08a17.66 17.66 0 01-14.7-7.06c-2.38-3.21-4.72-8.65-2.44-16.41l19.82-71c.15-.53.33-1.06.53-1.58a.38.38 0 000-.15 14.82 14.82 0 01-.53-1.59l-19.84-71.45c-2.15-7.61.2-12.93 2.56-16.06a16.83 16.83 0 0113.6-6.7H52c10.23 0 20.16 4.59 26 12l34.57 42.05 97.32-1.44-64.44-142A16 16 0 01160 48h26.91a25 25 0 0119.35 9.8l125.05 152 57.77-1.52c4.23-.23 15.95-.31 18.66-.31C463 208 496 225.94 496 256c0 9.46-3.78 27-29.07 38.16-14.93 6.6-34.85 9.94-59.21 9.94-2.68 0-14.37-.08-18.66-.31l-57.76-1.54-125.36 152a25 25 0 01-19.32 9.75z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/alarm-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/alarm-outline.svg deleted file mode 100644 index 443dd5ed214fa0799986f7627157d4234af541c5..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/alarm-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Alarm</title><path d="M416.07 272a160 160 0 10-160 160 160 160 0 00160-160zM142.12 91.21A46.67 46.67 0 00112 80l-2.79.08C83.66 81.62 64 104 64.07 131c0 13.21 4.66 19.37 10.88 27.23a4.55 4.55 0 003.24 1.77h.88a3.23 3.23 0 002.54-1.31L142.38 99a5.38 5.38 0 001.55-4 5.26 5.26 0 00-1.81-3.79zM369.88 91.21A46.67 46.67 0 01400 80l2.79.08C428.34 81.62 448 104 447.93 131c0 13.21-4.66 19.37-10.88 27.23a4.55 4.55 0 01-3.24 1.76h-.88a3.23 3.23 0 01-2.54-1.31L369.62 99a5.38 5.38 0 01-1.55-4 5.26 5.26 0 011.81-3.79z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-linejoin="round" d="M256.07 160v112h-80M416.07 432l-40-40M96.07 432l40-40" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/alarm-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/alarm-sharp.svg deleted file mode 100644 index abc238c318f3650b8b5d3829a441f7197da1eb30..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/alarm-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Alarm</title><path d="M403.79 64.11l-3.27-.1H400c-14.73 0-28.55 5.91-40.52 15S344 96 344 96l88 86s11.25-5.71 17.61-13.85 14.28-18.08 14.32-37.11c.07-35.49-26.33-64.89-60.14-66.93zM108.21 64.11l3.27-.1h.52c14.73 0 28.55 5.91 40.52 15S168 96 168 96l-88 86s-11.25-5.71-17.61-13.85S48.11 150.07 48.07 131C48 95.55 74.4 66.15 108.21 64.11z"/><path d="M391.3 384.6a.06.06 0 010-.08C425 344 441 288.24 427 229.23c-13.64-57.52-72.67-115.69-130.34-128.66C182 74.79 80.07 161.71 80.07 272a175.15 175.15 0 0040.78 112.52.06.06 0 010 .08L73 432a.06.06 0 000 .08l23 22.51a.06.06 0 00.08 0l47.43-47.37a.06.06 0 01.08 0 175.64 175.64 0 00225.05 0h.07L416 454.59a.06.06 0 00.08 0L440 432zM272.07 288h-112-.07v-31.9l.05-.05h80V144h32z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/alarm.svg b/ionic/platforms/android/app/src/main/assets/www/svg/alarm.svg deleted file mode 100644 index b740d4cd77fb8b7c044eb8be4149e0eda82cd904..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/alarm.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Alarm</title><path d="M153.59 110.46A21.41 21.41 0 00152.48 79 62.67 62.67 0 00112 64l-3.27.09h-.48C74.4 66.15 48 95.55 48.07 131c0 19 8 29.06 14.32 37.11a20.61 20.61 0 0014.7 7.8c.26 0 .7.05 2 .05a19.06 19.06 0 0013.75-5.89zM403.79 64.11l-3.27-.1H400a62.67 62.67 0 00-40.52 15 21.41 21.41 0 00-1.11 31.44l60.77 59.65a19.06 19.06 0 0013.79 5.9c1.28 0 1.72 0 2-.05a20.61 20.61 0 0014.69-7.8c6.36-8.05 14.28-18.08 14.32-37.11.06-35.49-26.34-64.89-60.15-66.93z"/><path d="M256.07 96c-97 0-176 78.95-176 176a175.23 175.23 0 0040.81 112.56l-36.12 36.13a16 16 0 1022.63 22.62l36.12-36.12a175.63 175.63 0 00225.12 0l36.13 36.12a16 16 0 1022.63-22.62l-36.13-36.13A175.17 175.17 0 00432.07 272c0-97-78.95-176-176-176zm16 176a16 16 0 01-16 16h-80a16 16 0 010-32h64v-96a16 16 0 0132 0z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/albums-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/albums-outline.svg deleted file mode 100644 index d0b2ce195eea4fc19faf6bcb39a11cc56684c1aa..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/albums-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Albums</title><rect x="64" y="176" width="384" height="256" rx="28.87" ry="28.87" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-miterlimit="10" d="M144 80h224M112 128h288" class="ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/albums-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/albums-sharp.svg deleted file mode 100644 index e7586c938f55b9ab3bd26056548655ca8b2674cf..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/albums-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Albums</title><path d="M128 64h256v32H128zM96 112h320v32H96zM464 448H48V160h416z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/albums.svg b/ionic/platforms/android/app/src/main/assets/www/svg/albums.svg deleted file mode 100644 index 7663ea0b69217f0fb950ff56316afcc134587cab..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/albums.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Albums</title><path d="M368 96H144a16 16 0 010-32h224a16 16 0 010 32zM400 144H112a16 16 0 010-32h288a16 16 0 010 32zM419.13 448H92.87A44.92 44.92 0 0148 403.13V204.87A44.92 44.92 0 0192.87 160h326.26A44.92 44.92 0 01464 204.87v198.26A44.92 44.92 0 01419.13 448z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/alert-circle-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/alert-circle-outline.svg deleted file mode 100644 index c0878bad3bd55fb00f46290f32437b29707706bb..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/alert-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Alert Circle</title><path d="M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><path d="M250.26 166.05L256 288l5.73-121.95a5.74 5.74 0 00-5.79-6h0a5.74 5.74 0 00-5.68 6z" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M256 367.91a20 20 0 1120-20 20 20 0 01-20 20z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/alert-circle-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/alert-circle-sharp.svg deleted file mode 100644 index bcefcbf17f0fdee72b4f4ed1285e5ab962257d53..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/alert-circle-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Alert Circle</title><path d="M240 304h32l6-160h-44l6 160z" class="ionicon-fill-none"/><path d="M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm20 319.91h-40v-40h40zM272 304h-32l-6-160h44z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/alert-circle.svg b/ionic/platforms/android/app/src/main/assets/www/svg/alert-circle.svg deleted file mode 100644 index 7c01d8f61be3d0283187a575b080f5332731893e..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/alert-circle.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Alert Circle</title><path d="M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm0 319.91a20 20 0 1120-20 20 20 0 01-20 20zm21.72-201.15l-5.74 122a16 16 0 01-32 0l-5.74-121.94v-.05a21.74 21.74 0 1143.44 0z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/alert-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/alert-outline.svg deleted file mode 100644 index bd7890f8a7ab7cb1f48994970e0c364976f78c27..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/alert-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Alert</title><path d="M256 80c-8.66 0-16.58 7.36-16 16l8 216a8 8 0 008 8h0a8 8 0 008-8l8-216c.58-8.64-7.34-16-16-16z" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="256" cy="416" r="16" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/alert-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/alert-sharp.svg deleted file mode 100644 index 5fdb54283f21746542d59ce8e54acfcf3041d902..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/alert-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Alert</title><path stroke-linecap="square" stroke-miterlimit="10" d="M240 80l8 240h16l8-240h-32zM240 400h32v32h-32z" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/alert.svg b/ionic/platforms/android/app/src/main/assets/www/svg/alert.svg deleted file mode 100644 index bd7890f8a7ab7cb1f48994970e0c364976f78c27..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/alert.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Alert</title><path d="M256 80c-8.66 0-16.58 7.36-16 16l8 216a8 8 0 008 8h0a8 8 0 008-8l8-216c.58-8.64-7.34-16-16-16z" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="256" cy="416" r="16" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/american-football-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/american-football-outline.svg deleted file mode 100644 index 1a4fce88ed6806124ed728f5d0b720c98a3026e5..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/american-football-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>American Football</title><ellipse cx="256" cy="256" rx="267.57" ry="173.44" transform="rotate(-45 256 256.002)" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-linejoin="round" d="M334.04 177.96L177.96 334.04M278.3 278.3l-44.6-44.6M322.89 233.7l-44.59-44.59M456.68 211.4L300.6 55.32M211.4 456.68L55.32 300.6M233.7 322.89l-44.59-44.59" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/american-football-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/american-football-sharp.svg deleted file mode 100644 index e418f48f72168f4c859941e5b569d75dcec90098..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/american-football-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>American Football</title><path d="M120.9 120.51c-44.75 44.56-67.29 101.05-78.64 145.9l202.31 201.44c45.05-11.3 101.78-33.74 146.53-78.3s67.29-101.05 78.64-145.91L267.43 42.21C222.38 53.51 165.65 76 120.9 120.51zm259 257.83zm-45-224.2l22.52 22.42-33.78 33.63 22.52 22.42L323.55 255 301 232.61 278.52 255 301 277.45l-22.51 22.42L256 277.45l-22.52 22.42L256 322.29l-22.52 22.42L211 322.29l-33.78 33.63-22.55-22.42 33.78-33.63-22.52-22.42L188.45 255 211 277.45 233.48 255 211 232.61l22.51-22.42L256 232.61l22.52-22.42L256 187.77l22.52-22.42L301 187.77zM478.48 198.41C485.85 143.65 464 48.05 464 48.05s-96.14-21.88-151.14-14.54c-2.54.33-5.21.72-8 1.14l172.47 171.71c.43-2.76.81-5.42 1.15-7.95zM33.52 311.65C26.15 366.41 48.05 464 48.05 464s60 16 99.86 16a391.92 391.92 0 0051.23-3.45c2.54-.33 5.21-.72 8-1.15L34.67 303.7c-.43 2.76-.81 5.42-1.15 7.95z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/american-football.svg b/ionic/platforms/android/app/src/main/assets/www/svg/american-football.svg deleted file mode 100644 index cd796b40d475a78578305bc1ce09d6d06355c9f5..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/american-football.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>American Football</title><path d="M122.06 122.06c-44.37 44.37-66.71 100.61-78 145.28l200.6 200.56c44.67-11.25 100.91-33.59 145.28-78s66.71-100.61 78-145.28L267.34 44.1c-44.67 11.25-100.91 33.59-145.28 77.96zm256.73 256.72zM300.65 189L323 166.71A15.78 15.78 0 01345.29 189L323 211.35l11.16 11.17a15.78 15.78 0 01-22.32 22.32l-11.16-11.16L278.32 256l11.16 11.16a15.78 15.78 0 11-22.32 22.32L256 278.32l-22.32 22.33 11.16 11.16a15.78 15.78 0 11-22.32 22.32L211.35 323 189 345.29A15.78 15.78 0 01166.71 323L189 300.65l-11.16-11.17a15.78 15.78 0 0122.32-22.32l11.16 11.16L233.68 256l-11.16-11.16a15.78 15.78 0 1122.32-22.32L256 233.68l22.32-22.33-11.16-11.16a15.78 15.78 0 0122.32-22.32zM476.57 199.63c7.31-54.53 4-120.26-20-144.21s-89.68-27.3-144.21-20c-2.51.34-5.16.72-7.91 1.15l171 171c.4-2.78.78-5.43 1.12-7.94zM35.43 312.37c-7.31 54.53-4 120.26 20 144.21C72.17 473.33 109.34 480 148.84 480a387 387 0 0050.79-3.43c2.51-.34 5.16-.72 7.91-1.15l-171-171c-.39 2.79-.77 5.44-1.11 7.95z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/analytics-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/analytics-outline.svg deleted file mode 100644 index 27f0c220ecb0d75a281082e0d1a3c05b395519be..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/analytics-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Analytics</title><path stroke-linecap="round" stroke-linejoin="round" d="M344 280l88-88M232 216l64 64M80 320l104-104" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="456" cy="168" r="24" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="320" cy="304" r="24" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="208" cy="192" r="24" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="56" cy="344" r="24" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/analytics-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/analytics-sharp.svg deleted file mode 100644 index 1679a0223b2dc4bc60447c0b6dd9d9d25247b3ca..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/analytics-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Analytics</title><path d="M450 128a46 46 0 00-44.11 59l-71.37 71.36a45.88 45.88 0 00-29 0l-52.91-52.91a46 46 0 10-89.12 0L75 293.88A46.08 46.08 0 10106.11 325l87.37-87.36a45.85 45.85 0 0029 0l52.92 52.92a46 46 0 1089.12 0L437 218.12A46 46 0 10450 128z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/analytics.svg b/ionic/platforms/android/app/src/main/assets/www/svg/analytics.svg deleted file mode 100644 index 89d665058c971eee738f745736f07eb62f285168..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/analytics.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Analytics</title><path d="M456 128a40 40 0 00-37.23 54.6l-84.17 84.17a39.86 39.86 0 00-29.2 0l-60.17-60.17a40 40 0 10-74.46 0L70.6 306.77a40 40 0 1022.63 22.63L193.4 229.23a39.86 39.86 0 0029.2 0l60.17 60.17a40 40 0 1074.46 0l84.17-84.17A40 40 0 10456 128z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/aperture-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/aperture-outline.svg deleted file mode 100644 index dc84c2361ba7dc3ced081c71aedbb138328f1c50..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/aperture-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Aperture</title><path d="M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-linejoin="round" d="M360 94.59V296M443.13 212.87L296 360M417.41 360H216M299.13 443.13l-144-144M152 416V216M68.87 299.13l144-144M94.59 152H288M212.87 68.87L360 216" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/aperture-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/aperture-sharp.svg deleted file mode 100644 index 32a216579be90deec81724ee6de0b01d8311088c..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/aperture-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Aperture</title><path d="M216 48l129.49 128.18V48H216zM181.47 58.38L80 134h176l-74.53-75.62zM336 344h128V216L336 344zM454 182L378 80v176l76-74zM48 166v128l128-128H48zM330 454l102-76H256l74 76zM58 330l76 102V256l-76 74zM345.49 222.12l-55.55-55.46h-67.88l-55.55 55.46v67.76l55.62 55.52c.44 0 .88-.06 1.33-.06h66.48l55.55-55.46zM165.98 336.09L166 464h128L165.98 336.09z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/aperture.svg b/ionic/platforms/android/app/src/main/assets/www/svg/aperture.svg deleted file mode 100644 index 0dbed833b684e1044e1f752b8450d61ac75a878f..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/aperture.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Aperture</title><path d="M250.54 129.17l-67.8-67.8A209.65 209.65 0 0086.32 136h161.4a4 4 0 002.82-6.83zM167.72 168H67.63a207.34 207.34 0 00-16.15 125.9l119.06-119.07a4 4 0 00-2.82-6.83zM344 167.72V67.56a207.82 207.82 0 00-125.89-16.08l119.06 119.06a4 4 0 006.83-2.82zM460.52 218.1L341.46 337.17a4 4 0 002.82 6.83h100.09a207.34 207.34 0 0016.15-125.9zM382.83 250.54l67.83-67.82A209.08 209.08 0 00376 86.2v161.52a4 4 0 006.83 2.82zM221.68 341.77a8 8 0 005.54 2.23h59.66a8 8 0 005.7-2.39l49.18-50a8 8 0 002.3-5.62l-.06-60.81a8 8 0 00-2.38-5.69l-50-49.25a8 8 0 00-5.63-2.3l-60.84.06a8 8 0 00-5.69 2.38l-49.25 50a8 8 0 00-2.3 5.63l.06 60.78a8 8 0 002.45 5.76zM261.46 382.83l67.8 67.8A209.65 209.65 0 00425.68 376h-161.4a4 4 0 00-2.82 6.83zM168 344.28v100.16a207.82 207.82 0 00125.89 16.08L174.83 341.46a4 4 0 00-6.83 2.82zM129.17 261.46l-67.83 67.83A209.1 209.1 0 00136 425.8V264.28a4 4 0 00-6.83-2.82z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/apps-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/apps-outline.svg deleted file mode 100644 index ae73e49e50b892924b6584bfd1a3ada2fa4eab08..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/apps-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Apps</title><rect x="64" y="64" width="80" height="80" rx="40" ry="40" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><rect x="216" y="64" width="80" height="80" rx="40" ry="40" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><rect x="368" y="64" width="80" height="80" rx="40" ry="40" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><rect x="64" y="216" width="80" height="80" rx="40" ry="40" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><rect x="216" y="216" width="80" height="80" rx="40" ry="40" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><rect x="368" y="216" width="80" height="80" rx="40" ry="40" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><rect x="64" y="368" width="80" height="80" rx="40" ry="40" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><rect x="216" y="368" width="80" height="80" rx="40" ry="40" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><rect x="368" y="368" width="80" height="80" rx="40" ry="40" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/apps-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/apps-sharp.svg deleted file mode 100644 index 528565286ef243db3ebb8b70fafb9a2ee055cd58..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/apps-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Apps</title><rect x="48" y="48" width="112" height="112" rx="8" ry="8"/><rect x="200" y="48" width="112" height="112" rx="8" ry="8"/><rect x="352" y="48" width="112" height="112" rx="8" ry="8"/><rect x="48" y="200" width="112" height="112" rx="8" ry="8"/><rect x="200" y="200" width="112" height="112" rx="8" ry="8"/><rect x="352" y="200" width="112" height="112" rx="8" ry="8"/><rect x="48" y="352" width="112" height="112" rx="8" ry="8"/><rect x="200" y="352" width="112" height="112" rx="8" ry="8"/><rect x="352" y="352" width="112" height="112" rx="8" ry="8"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/apps.svg b/ionic/platforms/android/app/src/main/assets/www/svg/apps.svg deleted file mode 100644 index e44080262260fa2f5e98a64c9b283f8ab23b608f..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/apps.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Apps</title><path d="M104 160a56 56 0 1156-56 56.06 56.06 0 01-56 56zM256 160a56 56 0 1156-56 56.06 56.06 0 01-56 56zM408 160a56 56 0 1156-56 56.06 56.06 0 01-56 56zM104 312a56 56 0 1156-56 56.06 56.06 0 01-56 56zM256 312a56 56 0 1156-56 56.06 56.06 0 01-56 56zM408 312a56 56 0 1156-56 56.06 56.06 0 01-56 56zM104 464a56 56 0 1156-56 56.06 56.06 0 01-56 56zM256 464a56 56 0 1156-56 56.06 56.06 0 01-56 56zM408 464a56 56 0 1156-56 56.06 56.06 0 01-56 56z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/archive-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/archive-outline.svg deleted file mode 100644 index 21892b05a5fd1da4d2a4dee1652fd39979a49a8f..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/archive-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Archive</title><path d="M80 152v256a40.12 40.12 0 0040 40h272a40.12 40.12 0 0040-40V152" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><rect x="48" y="64" width="416" height="80" rx="28" ry="28" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-linejoin="round" d="M320 304l-64 64-64-64M256 345.89V224" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/archive-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/archive-sharp.svg deleted file mode 100644 index e04398f0dd26f6a1618fb2e28f86658ae146f04f..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/archive-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Archive</title><rect x="32" y="48" width="448" height="80" rx="12" ry="12"/><path d="M64 160v280a24 24 0 0024 24h336a24 24 0 0024-24V160zm192 230.63L169.32 304 192 281.32l48 48.05V208h32v121.37l48.07-48.07 22.61 22.64z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/archive.svg b/ionic/platforms/android/app/src/main/assets/www/svg/archive.svg deleted file mode 100644 index 7c8119d56f4964c6557cd34e4b8480d6c2568ae0..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/archive.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Archive</title><path d="M64 164v244a56 56 0 0056 56h272a56 56 0 0056-56V164a4 4 0 00-4-4H68a4 4 0 00-4 4zm267 151.63l-63.69 63.68a16 16 0 01-22.62 0L181 315.63c-6.09-6.09-6.65-16-.85-22.38a16 16 0 0123.16-.56L240 329.37V224.45c0-8.61 6.62-16 15.23-16.43A16 16 0 01272 224v105.37l36.69-36.68a16 16 0 0123.16.56c5.8 6.37 5.24 16.29-.85 22.38z"/><rect x="32" y="48" width="448" height="80" rx="32" ry="32"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/arrow-back-circle-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/arrow-back-circle-outline.svg deleted file mode 100644 index 5f206b29344cd8086790b4d5f6eb0bc6f59e2759..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/arrow-back-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Arrow Back Circle</title><path stroke-linecap="round" stroke-linejoin="round" d="M249.38 336L170 256l79.38-80M181.03 256H342" class="ionicon-fill-none ionicon-stroke-width"/><path d="M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/arrow-back-circle-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/arrow-back-circle-sharp.svg deleted file mode 100644 index 5ac31945be13d6a9a4011e6086b28a80fd45556d..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/arrow-back-circle-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Arrow Back Circle</title><path d="M48 256c0 114.87 93.13 208 208 208s208-93.13 208-208S370.87 48 256 48 48 141.13 48 256zm224-80.09L208.42 240H358v32H208.42L272 336.09l-22.7 22.54L147.46 256 249.3 153.37z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/arrow-back-circle.svg b/ionic/platforms/android/app/src/main/assets/www/svg/arrow-back-circle.svg deleted file mode 100644 index 98f526b2ea289f5e514f9a1c4fb2207bb1ff5f08..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/arrow-back-circle.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Arrow Back Circle</title><path d="M48 256c0 114.87 93.13 208 208 208s208-93.13 208-208S370.87 48 256 48 48 141.13 48 256zm212.65-91.36a16 16 0 01.09 22.63L208.42 240H342a16 16 0 010 32H208.42l52.32 52.73A16 16 0 11238 347.27l-79.39-80a16 16 0 010-22.54l79.39-80a16 16 0 0122.65-.09z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/arrow-back-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/arrow-back-outline.svg deleted file mode 100644 index 652a64241853c754ed0348dd9806ee9aedbb28ff..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/arrow-back-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Arrow Back</title><path stroke-linecap="round" stroke-linejoin="round" stroke-width="48" d="M244 400L100 256l144-144M120 256h292" class="ionicon-fill-none"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/arrow-back-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/arrow-back-sharp.svg deleted file mode 100644 index 46b83cf62de46bb84db9ef9f0169ed81f4b5ff99..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/arrow-back-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Arrow Back</title><path stroke-linecap="square" stroke-miterlimit="10" stroke-width="48" d="M244 400L100 256l144-144M120 256h292" class="ionicon-fill-none"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/arrow-back.svg b/ionic/platforms/android/app/src/main/assets/www/svg/arrow-back.svg deleted file mode 100644 index 652a64241853c754ed0348dd9806ee9aedbb28ff..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/arrow-back.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Arrow Back</title><path stroke-linecap="round" stroke-linejoin="round" stroke-width="48" d="M244 400L100 256l144-144M120 256h292" class="ionicon-fill-none"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/arrow-down-circle-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/arrow-down-circle-outline.svg deleted file mode 100644 index c79a84698f7272c184b317cde1b137bcdfad20d4..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/arrow-down-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Arrow Down Circle</title><path stroke-linecap="round" stroke-linejoin="round" d="M176 262.62L256 342l80-79.38M256 330.97V170" class="ionicon-fill-none ionicon-stroke-width"/><path d="M256 64C150 64 64 150 64 256s86 192 192 192 192-86 192-192S362 64 256 64z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/arrow-down-circle-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/arrow-down-circle-sharp.svg deleted file mode 100644 index 70c8abedf1b98fab932c380462fc0d1f859196a4..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/arrow-down-circle-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Arrow Down Circle</title><path d="M256 464c114.87 0 208-93.13 208-208S370.87 48 256 48 48 141.13 48 256s93.13 208 208 208zm-80.09-224L240 303.58V154h32v149.58L336.09 240l22.54 22.71L256 364.54 153.37 262.7z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/arrow-down-circle.svg b/ionic/platforms/android/app/src/main/assets/www/svg/arrow-down-circle.svg deleted file mode 100644 index 6b926b1dee1dcb1050597ac37711f11026118a5f..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/arrow-down-circle.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Arrow Down Circle</title><path d="M256 464c114.87 0 208-93.13 208-208S370.87 48 256 48 48 141.13 48 256s93.13 208 208 208zm-91.36-212.65a16 16 0 0122.63-.09L240 303.58V170a16 16 0 0132 0v133.58l52.73-52.32A16 16 0 11347.27 274l-80 79.39a16 16 0 01-22.54 0l-80-79.39a16 16 0 01-.09-22.65z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/arrow-down-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/arrow-down-outline.svg deleted file mode 100644 index 6fb5ce5d1de414b2080b7d094e90cab38a6a2c7e..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/arrow-down-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Arrow Down</title><path stroke-linecap="round" stroke-linejoin="round" stroke-width="48" d="M112 268l144 144 144-144M256 392V100" class="ionicon-fill-none"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/arrow-down-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/arrow-down-sharp.svg deleted file mode 100644 index d09c0de6a42e5042be4bcff5657610deba3ce832..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/arrow-down-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Arrow Down</title><path stroke-linecap="square" stroke-miterlimit="10" stroke-width="48" d="M112 268l144 144 144-144M256 392V100" class="ionicon-fill-none"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/arrow-down.svg b/ionic/platforms/android/app/src/main/assets/www/svg/arrow-down.svg deleted file mode 100644 index 6fb5ce5d1de414b2080b7d094e90cab38a6a2c7e..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/arrow-down.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Arrow Down</title><path stroke-linecap="round" stroke-linejoin="round" stroke-width="48" d="M112 268l144 144 144-144M256 392V100" class="ionicon-fill-none"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/arrow-forward-circle-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/arrow-forward-circle-outline.svg deleted file mode 100644 index 7bcc65cd1edd9b6332b38c952075afced9abb510..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/arrow-forward-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Arrow Forward Circle</title><path stroke-linecap="round" stroke-linejoin="round" d="M262.62 336L342 256l-79.38-80M330.97 256H170" class="ionicon-fill-none ionicon-stroke-width"/><path d="M256 448c106 0 192-86 192-192S362 64 256 64 64 150 64 256s86 192 192 192z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/arrow-forward-circle-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/arrow-forward-circle-sharp.svg deleted file mode 100644 index 09dd6adf4187d74b5b2bf9a411d9e9e055ec2ff8..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/arrow-forward-circle-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Arrow Forward Circle</title><path d="M464 256c0-114.87-93.13-208-208-208S48 141.13 48 256s93.13 208 208 208 208-93.13 208-208zm-224 80.09L303.58 272H154v-32h149.58L240 175.91l22.71-22.54L364.54 256 262.7 358.63z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/arrow-forward-circle.svg b/ionic/platforms/android/app/src/main/assets/www/svg/arrow-forward-circle.svg deleted file mode 100644 index 9c681603deb5113a24283b04844c4c9da52337b6..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/arrow-forward-circle.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Arrow Forward Circle</title><path d="M464 256c0-114.87-93.13-208-208-208S48 141.13 48 256s93.13 208 208 208 208-93.13 208-208zm-212.65 91.36a16 16 0 01-.09-22.63L303.58 272H170a16 16 0 010-32h133.58l-52.32-52.73A16 16 0 11274 164.73l79.39 80a16 16 0 010 22.54l-79.39 80a16 16 0 01-22.65.09z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/arrow-forward-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/arrow-forward-outline.svg deleted file mode 100644 index e8f982ff753e974217e6b71ae05cd4206b329e33..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/arrow-forward-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Arrow Forward</title><path stroke-linecap="round" stroke-linejoin="round" stroke-width="48" d="M268 112l144 144-144 144M392 256H100" class="ionicon-fill-none"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/arrow-forward-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/arrow-forward-sharp.svg deleted file mode 100644 index fdbd6e85dcd4661d354ff2ebd9197513c3f3d73c..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/arrow-forward-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Arrow Forward</title><path stroke-linecap="square" stroke-miterlimit="10" stroke-width="48" d="M268 112l144 144-144 144M392 256H100" class="ionicon-fill-none"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/arrow-forward.svg b/ionic/platforms/android/app/src/main/assets/www/svg/arrow-forward.svg deleted file mode 100644 index e8f982ff753e974217e6b71ae05cd4206b329e33..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/arrow-forward.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Arrow Forward</title><path stroke-linecap="round" stroke-linejoin="round" stroke-width="48" d="M268 112l144 144-144 144M392 256H100" class="ionicon-fill-none"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/arrow-redo-circle-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/arrow-redo-circle-outline.svg deleted file mode 100644 index bb7fd24572d944ff7db9b2b3d2a6d754778437ed..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/arrow-redo-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Arrow Redo Circle</title><path d="M266.91 327.74v-37.32c-57.07 0-84.51 13.47-108.58 38.68-5.4 5.65-15 1.32-14.29-6.43 5.45-61.45 34.14-117.09 122.87-117.09v-37.32a8.32 8.32 0 0114-6L365.42 242a8.2 8.2 0 010 11.94L281 333.71a8.32 8.32 0 01-14.09-5.97z"/><path d="M64 256c0 106 86 192 192 192s192-86 192-192S362 64 256 64 64 150 64 256z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/arrow-redo-circle-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/arrow-redo-circle-sharp.svg deleted file mode 100644 index 44d41717e7b941585f890f6637a16a6f592b6e04..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/arrow-redo-circle-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Arrow Redo Circle</title><path d="M48 256c0 114.87 93.13 208 208 208s208-93.13 208-208S370.87 48 256 48 48 141.13 48 256zm98 88c0-68.13 22.67-137.14 119.17-137.14V152L366 248l-100.83 96v-54.86c-66.69 0-91.32 19.29-119.17 54.86z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/arrow-redo-circle.svg b/ionic/platforms/android/app/src/main/assets/www/svg/arrow-redo-circle.svg deleted file mode 100644 index 0e722ba8b5ff16c691d06ce38e7d99fbd45ffff1..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/arrow-redo-circle.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Arrow Redo Circle</title><path d="M48 256c0 114.87 93.13 208 208 208s208-93.13 208-208S370.87 48 256 48 48 141.13 48 256zm96 66.67c5.45-61.45 34.14-117.09 122.87-117.09v-37.32a8.32 8.32 0 0114-6L365.42 242a8.2 8.2 0 010 11.94L281 333.71a8.32 8.32 0 01-14-6v-37.29c-57.07 0-84.51 13.47-108.58 38.68-5.49 5.65-15.07 1.32-14.42-6.43z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/arrow-redo-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/arrow-redo-outline.svg deleted file mode 100644 index b5d236949a4bcb39d5220f3b86d166e448716549..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/arrow-redo-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Arrow Redo</title><path d="M448 256L272 88v96C103.57 184 64 304.77 64 424c48.61-62.24 91.6-96 208-96v96z" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/arrow-redo-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/arrow-redo-sharp.svg deleted file mode 100644 index fd84c21fdec2b882f03bf9a84c6bb4c237110d4a..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/arrow-redo-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Arrow Redo</title><path d="M48 399.26C48 335.19 62.44 284 90.91 247c34.38-44.67 88.68-68.77 161.56-71.75V72L464 252 252.47 432V329.35c-44.25 1.19-77.66 7.58-104.27 19.84-28.75 13.25-49.6 33.05-72.08 58.7L48 440z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/arrow-redo.svg b/ionic/platforms/android/app/src/main/assets/www/svg/arrow-redo.svg deleted file mode 100644 index e6e7a8e241ae90df3e81833b3eba92861a140613..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/arrow-redo.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Arrow Redo</title><path d="M58.79 439.13A16 16 0 0148 424c0-73.1 14.68-131.56 43.65-173.77 35-51 90.21-78.46 164.35-81.87V88a16 16 0 0127.05-11.57l176 168a16 16 0 010 23.14l-176 168A16 16 0 01256 424v-79.77c-45 1.36-79 8.65-106.07 22.64-29.25 15.12-50.46 37.71-73.32 67a16 16 0 01-17.82 5.28z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/arrow-undo-circle-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/arrow-undo-circle-outline.svg deleted file mode 100644 index 1d10f9d79fcc36fe244c5f4278dd0d00406f153f..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/arrow-undo-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Arrow Undo Circle</title><path d="M245.09 327.74v-37.32c57.07 0 84.51 13.47 108.58 38.68 5.4 5.65 15 1.32 14.29-6.43-5.45-61.45-34.14-117.09-122.87-117.09v-37.32a8.32 8.32 0 00-14.05-6L146.58 242a8.2 8.2 0 000 11.94L231 333.71a8.32 8.32 0 0014.09-5.97z"/><path d="M256 64C150 64 64 150 64 256s86 192 192 192 192-86 192-192S362 64 256 64z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/arrow-undo-circle-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/arrow-undo-circle-sharp.svg deleted file mode 100644 index 25f151ee60c888585b3036c45e48f87be1c265dc..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/arrow-undo-circle-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Arrow Undo Circle</title><path d="M256 48C141.13 48 48 141.13 48 256s93.13 208 208 208 208-93.13 208-208S370.87 48 256 48zm-9.17 241.14V344L146 248l100.83-96v54.86c96.5 0 119.17 69 119.17 137.14-27.85-35.57-52.48-54.86-119.17-54.86z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/arrow-undo-circle.svg b/ionic/platforms/android/app/src/main/assets/www/svg/arrow-undo-circle.svg deleted file mode 100644 index 4b3c3dfcd0b9fc25a3924e50dd30fc7dce4a9d10..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/arrow-undo-circle.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Arrow Undo Circle</title><path d="M256 48C141.13 48 48 141.13 48 256s93.13 208 208 208 208-93.13 208-208S370.87 48 256 48zm97.67 281.1c-24.07-25.21-51.51-38.68-108.58-38.68v37.32a8.32 8.32 0 01-14.05 6L146.58 254a8.2 8.2 0 010-11.94L231 162.29a8.32 8.32 0 0114.05 6v37.32c88.73 0 117.42 55.64 122.87 117.09.73 7.72-8.85 12.05-14.25 6.4z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/arrow-undo-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/arrow-undo-outline.svg deleted file mode 100644 index dd3dcb2a8d60a35902cb1ac1f2502a85664cdd80..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/arrow-undo-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Arrow Undo</title><path d="M240 424v-96c116.4 0 159.39 33.76 208 96 0-119.23-39.57-240-208-240V88L64 256z" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/arrow-undo-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/arrow-undo-sharp.svg deleted file mode 100644 index 63a6e61f4ca67db2b803bed98d5b21b1a62eb248..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/arrow-undo-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Arrow Undo</title><path d="M464 440l-28.12-32.11c-22.48-25.65-43.33-45.45-72.08-58.7-26.61-12.26-60-18.65-104.27-19.84V432L48 252 259.53 72v103.21c72.88 3 127.18 27.08 161.56 71.75C449.56 284 464 335.19 464 399.26z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/arrow-undo.svg b/ionic/platforms/android/app/src/main/assets/www/svg/arrow-undo.svg deleted file mode 100644 index f3aac7c976c63033d20c10efc2196bd59b46ca4f..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/arrow-undo.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Arrow Undo</title><path d="M448 440a16 16 0 01-12.61-6.15c-22.86-29.27-44.07-51.86-73.32-67C335 352.88 301 345.59 256 344.23V424a16 16 0 01-27 11.57l-176-168a16 16 0 010-23.14l176-168A16 16 0 01256 88v80.36c74.14 3.41 129.38 30.91 164.35 81.87C449.32 292.44 464 350.9 464 424a16 16 0 01-16 16z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/arrow-up-circle-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/arrow-up-circle-outline.svg deleted file mode 100644 index e7879f30e915c43817af2ed44c0de79bb243b5d1..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/arrow-up-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Arrow Up Circle</title><path stroke-linecap="round" stroke-linejoin="round" d="M176 249.38L256 170l80 79.38M256 181.03V342" class="ionicon-fill-none ionicon-stroke-width"/><path d="M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/arrow-up-circle-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/arrow-up-circle-sharp.svg deleted file mode 100644 index 116f53c3835809afed51fb893d04a9fd12dff263..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/arrow-up-circle-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Arrow Up Circle</title><path d="M256 48C141.13 48 48 141.13 48 256s93.13 208 208 208 208-93.13 208-208S370.87 48 256 48zm80.09 224L272 208.42V358h-32V208.42L175.91 272l-22.54-22.7L256 147.46 358.63 249.3z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/arrow-up-circle.svg b/ionic/platforms/android/app/src/main/assets/www/svg/arrow-up-circle.svg deleted file mode 100644 index 13215fa0fa5fc083b2d5ff984ee212dadadbdef1..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/arrow-up-circle.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Arrow Up Circle</title><path d="M256 48C141.13 48 48 141.13 48 256s93.13 208 208 208 208-93.13 208-208S370.87 48 256 48zm91.36 212.65a16 16 0 01-22.63.09L272 208.42V342a16 16 0 01-32 0V208.42l-52.73 52.32A16 16 0 11164.73 238l80-79.39a16 16 0 0122.54 0l80 79.39a16 16 0 01.09 22.65z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/arrow-up-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/arrow-up-outline.svg deleted file mode 100644 index 16d63f8a30746881cbf5659f8a7f402152ddd067..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/arrow-up-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Arrow Up</title><path stroke-linecap="round" stroke-linejoin="round" stroke-width="48" d="M112 244l144-144 144 144M256 120v292" class="ionicon-fill-none"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/arrow-up-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/arrow-up-sharp.svg deleted file mode 100644 index c1401f9e7f02b61f0960b2878a517f08ed6dcaeb..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/arrow-up-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Arrow Up</title><path stroke-linecap="square" stroke-miterlimit="10" stroke-width="48" d="M112 244l144-144 144 144M256 120v292" class="ionicon-fill-none"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/arrow-up.svg b/ionic/platforms/android/app/src/main/assets/www/svg/arrow-up.svg deleted file mode 100644 index 16d63f8a30746881cbf5659f8a7f402152ddd067..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/arrow-up.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Arrow Up</title><path stroke-linecap="round" stroke-linejoin="round" stroke-width="48" d="M112 244l144-144 144 144M256 120v292" class="ionicon-fill-none"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/at-circle-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/at-circle-outline.svg deleted file mode 100644 index 3634bc1aa1559f4327a5db3803ba754606c85fe7..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/at-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>At Circle</title><path d="M448.08 256.08c0-106-86-192-192-192s-192 86-192 192 86 192 192 192 192-85.97 192-192z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><path d="M300.81 358.29c-20.83 7.42-34.05 9.59-54.19 9.59-61.17 0-106.39-50.07-101-111.84S205 144.21 266.14 144.21c68.92 0 106.79 45.55 101.47 106.55-4 45.54-32.8 58.66-47.89 56-14.2-2.55-25.92-15.52-23.75-40.35l5.62-44.66c-7.58-9.17-28.11-18-49.93-14.54C231.77 210.3 209 228 206.56 256s14.49 50.84 39.93 50.84 47.86-18.39 50.69-50.84" stroke-linecap="round" stroke-miterlimit="10" stroke-width="28" class="ionicon-fill-none"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/at-circle-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/at-circle-sharp.svg deleted file mode 100644 index 77fdcc2df8e4b7e7eedb437c998888f0147f3031..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/at-circle-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>At Circle</title><path d="M256.41 48.74c-114.85 0-208 93.11-208 208s93.12 208 208 208 208-93.12 208-208-93.16-208-208-208zM381.22 252c-2.85 32.63-16.78 49.7-28 58.26s-24.69 12.34-36.33 10.26a41.63 41.63 0 01-27-17.52 60.84 60.84 0 01-43.72 17.9 51.65 51.65 0 01-38.55-16.83c-11.39-12.42-17-30.36-15.33-49.23 3.05-35 30.92-57.39 56.87-61.48 27.21-4.29 52.24 6.54 62.91 19.46l3.84 4.66-6.34 50.38c-1.19 14.34 3.29 23.48 12.29 25.1 2.39.42 8.11-.13 14.38-4.93 6.72-5.15 15.14-16 17.1-38.47 2.32-26.55-4.35-49.19-19.28-65.49-15.5-16.9-39.1-25.84-68.24-25.84-54 0-101.81 44.43-106.57 99-2.29 26.2 5.66 50.68 22.39 68.93C198 344 221 353.88 246.29 353.88c19 0 30.61-2.05 49.49-8.78l13.22-4.69 9.39 26.37-13.19 4.7c-21.82 7.77-36.68 10.4-58.88 10.4-33.28 0-63.57-13.06-85.3-36.77-22.09-24.11-32.62-56.17-29.65-90.29 2.91-33.33 18.46-64.63 43.77-88.12s57.57-36.49 90.7-36.49c37.2 0 67.94 12.08 88.88 34.93 20.05 21.91 29.48 52.75 26.5 86.86z"/><path d="M253.51 221c-14.83 2.33-31.55 15.84-33.34 36.26-1 11.06 2 21.22 8.08 27.87a23.63 23.63 0 0017.91 7.75c19.7 0 33.8-14.79 36.8-38.59l1.75-13.89h.09l1.65-13.11a49.63 49.63 0 00-32.94-6.3z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/at-circle.svg b/ionic/platforms/android/app/src/main/assets/www/svg/at-circle.svg deleted file mode 100644 index bc292d01af9d6c519765a8f2c48af4ac53df473e..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/at-circle.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>At Circle</title><path d="M255.46 48.74c-114.84 0-208 93.11-208 208s93.12 208 208 208 208-93.12 208-208-93.15-208-208-208zM380.28 252c-2.85 32.63-16.79 49.7-28 58.26S327.61 322.58 316 320.5a41.61 41.61 0 01-26.82-17.19 62.06 62.06 0 01-44 17.57 51.66 51.66 0 01-38.55-16.83c-11.38-12.42-17-30.36-15.32-49.23 3-35 30.91-57.39 56.87-61.48 27.2-4.29 52.23 6.54 62.9 19.46l3.85 4.66-6.34 50.38c-1.19 14.34 3.28 23.48 12.29 25.1 2.39.42 8.1-.13 14.37-4.93 6.72-5.15 15.14-16 17.1-38.47 2.35-26.54-4.35-49.19-19.25-65.49-15.49-16.9-39.09-25.84-68.23-25.84-54 0-101.81 44.43-106.58 99-2.28 26.2 5.67 50.68 22.4 68.93 16.36 17.86 39.31 27.74 64.66 27.74 19 0 30.61-2.05 49.48-8.78a14 14 0 019.4 26.38c-21.82 7.77-36.68 10.4-58.88 10.4-33.28 0-63.57-13.06-85.3-36.77C138 321 127.42 288.94 130.4 254.82c2.91-33.33 18.45-64.63 43.77-88.12s57.57-36.49 90.7-36.49c37.2 0 67.93 12.08 88.87 34.93 20.09 21.91 29.51 52.75 26.54 86.86z"/><path d="M252.57 221c-14.83 2.33-31.56 15.84-33.34 36.26-1 11.06 2 21.22 8.07 27.87a23.65 23.65 0 0017.91 7.75c20.31 0 34.73-14.94 36.75-38.06a14 14 0 01.34-2.07l3.2-25.45a49.61 49.61 0 00-32.93-6.3z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/at-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/at-outline.svg deleted file mode 100644 index 1bd2422b8983c9a27087e01c4424326559710a63..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/at-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>At</title><path d="M320 254.27c-4.5 51-40.12 80-80.55 80s-67.34-35.82-63.45-80 37.12-80 77.55-80 70.33 36 66.45 80z" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M319.77 415.77c-28.56 12-47.28 14.5-79.28 14.5-97.2 0-169-78.8-160.49-176s94.31-176 191.51-176C381 78.27 441.19 150 432.73 246c-6.31 71.67-52.11 92.32-76.09 88.07-22.56-4-41.18-24.42-37.74-63.5l8.48-96.25" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/at-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/at-sharp.svg deleted file mode 100644 index cc7901efe953ba3cd94c0bde06f7e83c34bc27a2..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/at-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>At</title><path d="M407.6 115.78c-32.07-35-79.47-53.51-137.09-53.51-51 0-100.69 19.8-139.82 55.76s-63.13 83.84-67.63 134.83c-4.55 51.67 11.41 100.29 44.94 136.9 33.37 36.44 80.07 56.51 131.49 56.51 32.52 0 53.61-2.36 85.48-15.75l14.75-6.2-12.4-29.5-14.75 6.18c-27.15 11.4-43.78 13.25-73.08 13.25-42.34 0-80.65-16.38-107.89-46.12-27.4-29.92-40.42-69.86-36.66-112.48 7.84-89 86.6-161.4 175.57-161.4 48.4 0 87.65 14.91 113.49 43.13 24.61 26.87 35.6 63.92 31.79 107.15-3.29 37.35-17.76 55.74-29.32 64.6-11 8.44-22 10.18-28 9.11-17.68-3.13-26.87-20.46-24.59-46.29l9.93-109.12L311.9 160l-2 22.29a79.69 79.69 0 00-57.32-24c-23.8 0-46.54 10.07-64 28.37-16.77 17.53-27.23 41.05-29.45 66.22-2.45 27.87 5.75 54.34 22.51 72.64a76.14 76.14 0 0056.88 24.77A93 93 0 00310 318a60 60 0 0042.88 31.81c16.89 3 36.73-2.69 53.08-15.21 30.19-23.13 39.36-60.19 41.74-87.2 4.52-51.7-9.7-98.4-40.1-131.62zm-126.34 186a62.19 62.19 0 01-42.81 16.53 43.94 43.94 0 01-33.28-14.38c-10.71-11.7-15.9-29.27-14.23-48.22 3.23-36.68 30.29-65.4 61.61-65.4a48.16 48.16 0 0135.88 15.82c10.87 11.87 16.2 28.87 14.63 46.73-1.78 20.28-9.33 37.14-21.8 48.88z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/at.svg b/ionic/platforms/android/app/src/main/assets/www/svg/at.svg deleted file mode 100644 index 1bd2422b8983c9a27087e01c4424326559710a63..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/at.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>At</title><path d="M320 254.27c-4.5 51-40.12 80-80.55 80s-67.34-35.82-63.45-80 37.12-80 77.55-80 70.33 36 66.45 80z" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M319.77 415.77c-28.56 12-47.28 14.5-79.28 14.5-97.2 0-169-78.8-160.49-176s94.31-176 191.51-176C381 78.27 441.19 150 432.73 246c-6.31 71.67-52.11 92.32-76.09 88.07-22.56-4-41.18-24.42-37.74-63.5l8.48-96.25" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/attach-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/attach-outline.svg deleted file mode 100644 index 958372a8303f7c7408ce8285b78a76278054a56b..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/attach-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Attach</title><path d="M216.08 192v143.85a40.08 40.08 0 0080.15 0l.13-188.55a67.94 67.94 0 10-135.87 0v189.82a95.51 95.51 0 10191 0V159.74" stroke-linecap="round" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/attach-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/attach-sharp.svg deleted file mode 100644 index 95cb296ee3177295e1789238b10b2d8d39cd1dd8..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/attach-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Attach</title><path d="M216.08 192v143.55a40.08 40.08 0 0080.15 0l.13-188.55a67.94 67.94 0 10-135.87 0v189.82a95.51 95.51 0 00191 0V159.44" stroke-linecap="square" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/attach.svg b/ionic/platforms/android/app/src/main/assets/www/svg/attach.svg deleted file mode 100644 index 958372a8303f7c7408ce8285b78a76278054a56b..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/attach.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Attach</title><path d="M216.08 192v143.85a40.08 40.08 0 0080.15 0l.13-188.55a67.94 67.94 0 10-135.87 0v189.82a95.51 95.51 0 10191 0V159.74" stroke-linecap="round" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/backspace-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/backspace-outline.svg deleted file mode 100644 index 9ac9b7860329b81a678cc0608b255d068aa1616e..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/backspace-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Backspace</title><path d="M135.19 390.14a28.79 28.79 0 0021.68 9.86h246.26A29 29 0 00432 371.13V140.87A29 29 0 00403.13 112H156.87a28.84 28.84 0 00-21.67 9.84v0L46.33 256l88.86 134.11z" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-linejoin="round" d="M336.67 192.33L206.66 322.34M336.67 322.34L206.66 192.33M336.67 192.33L206.66 322.34M336.67 322.34L206.66 192.33" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/backspace-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/backspace-sharp.svg deleted file mode 100644 index 5e3df1b7844491285c6eece659e7af568544a7f9..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/backspace-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Backspace</title><path d="M144 96L32 256l112 160h304V96zm215.3 226.34L336.67 345l-65-65-65 65L184 322.34l65-65-65-65 22.63-22.63 65 65 65-65 22.63 22.63-65 65z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/backspace.svg b/ionic/platforms/android/app/src/main/assets/www/svg/backspace.svg deleted file mode 100644 index 5ad2c52adc9ac8b134f8139ea11fb6584ef7715d..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/backspace.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Backspace</title><path d="M403.13 96H156.87a44.9 44.9 0 00-33.68 15.27 15.88 15.88 0 00-1.91 2.7L32 247.75a16 16 0 000 16.5l89.15 133.57a16.24 16.24 0 002 2.88 44.89 44.89 0 0033.7 15.3h246.28A44.92 44.92 0 00448 371.13V140.87A44.92 44.92 0 00403.13 96zM348 311a16 16 0 11-22.63 22.62L271.67 280 218 333.65A16 16 0 01195.35 311L249 257.33l-53.69-53.69A16 16 0 01218 181l53.69 53.7 53.67-53.7A16 16 0 01348 203.64l-53.7 53.69z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/bag-add-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/bag-add-outline.svg deleted file mode 100644 index 7ba5f4380c1244aa62f0cccd85a99300a7949921..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/bag-add-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Bag Add</title><path stroke-linecap="round" stroke-linejoin="round" d="M256 256v128M320 320H192M80 176a16 16 0 00-16 16v216c0 30.24 25.76 56 56 56h272c30.24 0 56-24.51 56-54.75V192a16 16 0 00-16-16zM160 176v-32a96 96 0 0196-96h0a96 96 0 0196 96v32" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/bag-add-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/bag-add-sharp.svg deleted file mode 100644 index c653d37034efeae92e99ad335262c087080ebd9e..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/bag-add-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Bag Add</title><path d="M460 160h-88v-12A116.13 116.13 0 00258.89 32h-5.78A116.13 116.13 0 00140 148v12H52a4 4 0 00-4 4v300a16 16 0 0016 16h384a16 16 0 0016-16V164a4 4 0 00-4-4zm-280-11c0-41.84 33.41-76.56 75.25-77A76.08 76.08 0 01332 148v12H180zm156 187h-64v64h-32v-64h-64v-32h64v-64h32v64h64z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/bag-add.svg b/ionic/platforms/android/app/src/main/assets/www/svg/bag-add.svg deleted file mode 100644 index fe6ea86cc3008be1814809962f271a30648a070d..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/bag-add.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Bag Add</title><path d="M454.66 169.4A31.86 31.86 0 00432 160h-64v-16a112 112 0 00-224 0v16H80a32 32 0 00-32 32v216c0 39 33 72 72 72h272a72.22 72.22 0 0050.48-20.55 69.48 69.48 0 0021.52-50.2V192a31.78 31.78 0 00-9.34-22.6zM320 336h-48v48a16 16 0 01-32 0v-48h-48a16 16 0 010-32h48v-48a16 16 0 0132 0v48h48a16 16 0 010 32zm16-176H176v-16a80 80 0 01160 0z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/bag-check-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/bag-check-outline.svg deleted file mode 100644 index 99859f9a613551154dda36faa0ecc0165553526e..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/bag-check-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Bag Check</title><path stroke-linecap="round" stroke-linejoin="round" d="M320 264l-89.6 112-38.4-44.88" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-linejoin="round" d="M80 176a16 16 0 00-16 16v216c0 30.24 25.76 56 56 56h272c30.24 0 56-24.51 56-54.75V192a16 16 0 00-16-16zM160 176v-32a96 96 0 0196-96h0a96 96 0 0196 96v32" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/bag-check-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/bag-check-sharp.svg deleted file mode 100644 index e0696f4cafd9e9ba2c98ab355c3a51efae9a7bbd..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/bag-check-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Bag Check</title><path d="M460 160h-88v-12A116.13 116.13 0 00258.89 32h-5.78A116.13 116.13 0 00140 148v12H52a4 4 0 00-4 4v300a16 16 0 0016 16h384a16 16 0 0016-16V164a4 4 0 00-4-4zm-280-11c0-41.84 33.41-76.56 75.25-77A76.08 76.08 0 01332 148v12H180zm50.81 252.12l-61.37-71.72 24.31-20.81L230 350.91l87.51-109.4 25 20z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/bag-check.svg b/ionic/platforms/android/app/src/main/assets/www/svg/bag-check.svg deleted file mode 100644 index 4c7beb4082005f7e5e1a4ce1614619204d377ab5..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/bag-check.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Bag Check</title><path d="M454.65 169.4A31.82 31.82 0 00432 160h-64v-16a112 112 0 00-224 0v16H80a32 32 0 00-32 32v216c0 39 33 72 72 72h272a72.22 72.22 0 0050.48-20.55 69.48 69.48 0 0021.52-50.2V192a31.75 31.75 0 00-9.35-22.6zM332.49 274l-89.6 112a16 16 0 01-12.23 6h-.26a16 16 0 01-12.16-5.6l-38.4-44.88a16 16 0 1124.32-20.8L230 350.91 307.51 254a16 16 0 0125 20zM336 160H176v-16a80 80 0 01160 0z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/bag-handle-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/bag-handle-outline.svg deleted file mode 100644 index 722a2712e5e8e7b34c0b5b5a92fe736a4be1285d..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/bag-handle-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Bag Handle</title><path d="M80 176a16 16 0 00-16 16v216c0 30.24 25.76 56 56 56h272c30.24 0 56-24.51 56-54.75V192a16 16 0 00-16-16zM160 176v-32a96 96 0 0196-96h0a96 96 0 0196 96v32" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M160 224v16a96 96 0 0096 96h0a96 96 0 0096-96v-16" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/bag-handle-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/bag-handle-sharp.svg deleted file mode 100644 index 8c062ab74886884ee4f7ae6e4f34021b787bd3df..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/bag-handle-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Bag Handle</title><path d="M460 160h-88v-12A116.13 116.13 0 00258.89 32h-5.78A116.13 116.13 0 00140 148v12H52a4 4 0 00-4 4v300a16 16 0 0016 16h384a16 16 0 0016-16V164a4 4 0 00-4-4zm-280-11c0-41.84 33.41-76.56 75.25-77A76.08 76.08 0 01332 148v12H180zm188 91a112 112 0 01-224 0v-32h32v32a80 80 0 00160 0v-32h32z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/bag-handle.svg b/ionic/platforms/android/app/src/main/assets/www/svg/bag-handle.svg deleted file mode 100644 index f57a6a937084d20a7e418ab0b4078a6445b2bef7..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/bag-handle.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Bag Handle</title><path d="M454.65 169.4A31.82 31.82 0 00432 160h-64v-16a112 112 0 00-224 0v16H80a32 32 0 00-32 32v216c0 39 33 72 72 72h272a72.22 72.22 0 0050.48-20.55 69.48 69.48 0 0021.52-50.2V192a31.75 31.75 0 00-9.35-22.6zM176 144a80 80 0 01160 0v16H176zm192 96a112 112 0 01-224 0v-16a16 16 0 0132 0v16a80 80 0 00160 0v-16a16 16 0 0132 0z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/bag-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/bag-outline.svg deleted file mode 100644 index 5921dbbf044819d9ef8f9fb51e7f226142b9b78e..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/bag-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Bag</title><path stroke-linecap="round" stroke-linejoin="round" d="M80 176a16 16 0 00-16 16v216c0 30.24 25.76 56 56 56h272c30.24 0 56-24.51 56-54.75V192a16 16 0 00-16-16zM160 176v-32a96 96 0 0196-96h0a96 96 0 0196 96v32" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/bag-remove-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/bag-remove-outline.svg deleted file mode 100644 index d96aa8c40c3ae151b4ab5abda4c4220813a5e4cd..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/bag-remove-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Bag Remove</title><path stroke-linecap="round" stroke-linejoin="round" d="M320 320H192M80 176a16 16 0 00-16 16v216c0 30.24 25.76 56 56 56h272c30.24 0 56-24.51 56-54.75V192a16 16 0 00-16-16zM160 176v-32a96 96 0 0196-96h0a96 96 0 0196 96v32" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/bag-remove-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/bag-remove-sharp.svg deleted file mode 100644 index 7e504b058a0b09e03465aac534b2028b44559666..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/bag-remove-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Bag Remove</title><path d="M460 160h-88v-12A116.13 116.13 0 00258.89 32h-5.78A116.13 116.13 0 00140 148v12H52a4 4 0 00-4 4v300a16 16 0 0016 16h384a16 16 0 0016-16V164a4 4 0 00-4-4zm-280-11c0-41.84 33.41-76.56 75.25-77A76.08 76.08 0 01332 148v12H180zm156 187H176v-32h160z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/bag-remove.svg b/ionic/platforms/android/app/src/main/assets/www/svg/bag-remove.svg deleted file mode 100644 index b5d1bb8fb3e8cdac9962e9017c501073171f6a92..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/bag-remove.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Bag Remove</title><path d="M454.66 169.4A31.86 31.86 0 00432 160h-64v-16a112 112 0 00-224 0v16H80a32 32 0 00-32 32v216c0 39 33 72 72 72h272a72.22 72.22 0 0050.48-20.55 69.48 69.48 0 0021.52-50.2V192a31.78 31.78 0 00-9.34-22.6zM320 336H192a16 16 0 010-32h128a16 16 0 010 32zm16-176H176v-16a80 80 0 01160 0z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/bag-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/bag-sharp.svg deleted file mode 100644 index a8290d0ae64bfc6e96fdb57b79ad27fd1a48b76c..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/bag-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Bag</title><path d="M372 160v-12A116.13 116.13 0 00258.89 32h-5.78A116.13 116.13 0 00140 148v12H52a4 4 0 00-4 4v300a16 16 0 0016 16h384a16 16 0 0016-16V164a4 4 0 00-4-4zm-40 0H180v-11c0-41.84 33.41-76.56 75.25-77A76.08 76.08 0 01332 148z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/bag.svg b/ionic/platforms/android/app/src/main/assets/www/svg/bag.svg deleted file mode 100644 index 1f2483f2c76ee88bbb2f377bdaaffb46b97b36e7..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/bag.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Bag</title><path d="M454.65 169.4A31.82 31.82 0 00432 160h-64v-16a112 112 0 00-224 0v16H80a32 32 0 00-32 32v216c0 39 33 72 72 72h272a72.22 72.22 0 0050.48-20.55 69.48 69.48 0 0021.52-50.2V192a31.75 31.75 0 00-9.35-22.6zM176 144a80 80 0 01160 0v16H176z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/ban-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/ban-outline.svg deleted file mode 100644 index 9641f964416791c014f5f7a31d40f5385281235f..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/ban-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Ban</title><circle cx="256" cy="256" r="208" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-miterlimit="10" d="M108.92 108.92l294.16 294.16" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/ban-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/ban-sharp.svg deleted file mode 100644 index cb4313e16879a347db111ac9098f142bf644fdfd..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/ban-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Ban</title><path d="M414.39 97.61A224 224 0 1097.61 414.39 224 224 0 10414.39 97.61zM432 256a175.09 175.09 0 01-35.8 106.26L149.74 115.8A175.09 175.09 0 01256 80c97.05 0 176 79 176 176zm-352 0a175.09 175.09 0 0135.8-106.26L362.26 396.2A175.09 175.09 0 01256 432c-97 0-176-78.95-176-176z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/ban.svg b/ionic/platforms/android/app/src/main/assets/www/svg/ban.svg deleted file mode 100644 index 14b9ef007b68f551e68e0ec18502bf9bdecc95d7..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/ban.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Ban</title><circle stroke-miterlimit="10" stroke-width="48" cx="256" cy="256" r="200" class="ionicon-fill-none"/><path stroke-miterlimit="10" stroke-width="48" d="M114.58 114.58l282.84 282.84"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/bandage-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/bandage-outline.svg deleted file mode 100644 index 5812132cfb7b7c3674ea00b75d425675186b02e8..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/bandage-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Bandage</title><rect x="-24.43" y="167.88" width="560.87" height="176.25" rx="88.12" ry="88.12" transform="rotate(-45 256 256.002)" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><rect x="169.41" y="156.59" width="176" height="196" rx="32" ry="32" transform="rotate(45 257.409 254.582)" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="256" cy="208" r="16"/><circle cx="304" cy="256" r="16"/><circle cx="208" cy="256" r="16"/><circle cx="256" cy="304" r="16"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/bandage-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/bandage-sharp.svg deleted file mode 100644 index 87d98b076f34fa6362b9f4309e2e8521049f02b8..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/bandage-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Bandage</title><path d="M27.71 337.1a40 40 0 000 56.54l90.65 90.65a40 40 0 0056.54 0l75.1-75.1L102.81 262zM496 147.1a39.87 39.87 0 00-11.75-28.38l-91-91a40.14 40.14 0 00-56.75 0L264 100.28 411.72 248l72.53-72.53A39.85 39.85 0 00496 147.1zM273.06 386.19l116-116L241.77 123l-116 116zm19.63-141.5a16 16 0 110 22.62 16 16 0 010-22.62zm-48-48a16 16 0 110 22.62 16 16 0 010-22.62zm0 96a16 16 0 110 22.62 16 16 0 010-22.62zm-25.38-48a16 16 0 11-22.62 0 16 16 0 0122.62 0z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/bandage.svg b/ionic/platforms/android/app/src/main/assets/www/svg/bandage.svg deleted file mode 100644 index 70da89fa0dc2f6a1b6146a9e265837caeb85140a..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/bandage.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Bandage</title><path d="M275.8 157a16 16 0 00-22.63 0l-93.34 93.34a16 16 0 000 22.63l79.2 79.2a16 16 0 0022.63 0L355 258.83a16 16 0 000-22.63zM137.21 295.6a47.81 47.81 0 01-9.43-13.38L69 341a72.2 72.2 0 000 102 72.37 72.37 0 00102 0l58.77-58.76a47.81 47.81 0 01-13.38-9.43zM392 48a71.55 71.55 0 00-51 21l-55.92 55.91a48.05 48.05 0 0113.36 9.45l79.19 79.19a48.05 48.05 0 019.45 13.36L443 171a72 72 0 00-51-123z" class="ionicon-fill-none"/><path d="M275.8 157a16 16 0 00-22.63 0l-93.34 93.34a16 16 0 000 22.63l79.2 79.2a16 16 0 0022.63 0L355 258.83a16 16 0 000-22.63zm-56.49 110.31a16 16 0 110-22.62 16 16 0 010 22.62zm48 48a16 16 0 110-22.62 16 16 0 010 22.62zm0-96a16 16 0 110-22.62 16 16 0 010 22.62zm48 48a16 16 0 110-22.62 16 16 0 010 22.62zM465.61 46.39a104.38 104.38 0 00-147.25 0l-69.76 69.89a4 4 0 004.2 6.58 35.74 35.74 0 0111.69-2.54 47.7 47.7 0 0133.94 14.06l79.19 79.19a47.7 47.7 0 0114.06 33.94 35.68 35.68 0 01-2.54 11.69 4 4 0 006.58 4.2l69.89-69.76a104.38 104.38 0 000-147.25z"/><path d="M254.34 386.83a47.91 47.91 0 01-33.94-14l-79.19-79.23a47.81 47.81 0 01-9.43-13.38c-4.59-9.7-1.39-25 2.48-36.9a4 4 0 00-6.64-4l-77.23 77.04a104.12 104.12 0 00147.25 147.25l72.75-72.88a4 4 0 00-4.21-6.58c-4.18 1.58-8.4 2.68-11.84 2.68z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/bar-chart-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/bar-chart-outline.svg deleted file mode 100644 index b3747ac099b32eaef0418a9941bb4553fdc8ccb2..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/bar-chart-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Bar Chart</title><path d="M32 32v432a16 16 0 0016 16h432" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><rect x="96" y="224" width="80" height="192" rx="20" ry="20" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><rect x="240" y="176" width="80" height="240" rx="20" ry="20" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><rect x="383.64" y="112" width="80" height="304" rx="20" ry="20" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/bar-chart-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/bar-chart-sharp.svg deleted file mode 100644 index 042d6060252624f57798ba6618c17449f0544c73..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/bar-chart-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Bar Chart</title><path d="M496 496H16V16h32v448h448v32z"/><path d="M192 432H80V208h112zM336 432H224V160h112zM479.64 432h-112V96h112z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/bar-chart.svg b/ionic/platforms/android/app/src/main/assets/www/svg/bar-chart.svg deleted file mode 100644 index 7a070f16d2e188c4957121a71fd92bd4104b89d4..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/bar-chart.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Bar Chart</title><path d="M480 496H48a32 32 0 01-32-32V32a16 16 0 0132 0v432h432a16 16 0 010 32z"/><path d="M156 432h-40a36 36 0 01-36-36V244a36 36 0 0136-36h40a36 36 0 0136 36v152a36 36 0 01-36 36zM300 432h-40a36 36 0 01-36-36V196a36 36 0 0136-36h40a36 36 0 0136 36v200a36 36 0 01-36 36zM443.64 432h-40a36 36 0 01-36-36V132a36 36 0 0136-36h40a36 36 0 0136 36v264a36 36 0 01-36 36z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/barbell-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/barbell-outline.svg deleted file mode 100644 index 54d713a919ac9ed89cb32999d6d15b45f5bf5b7d..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/barbell-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Barbell</title><path stroke-linecap="round" stroke-linejoin="round" d="M48 256h416" class="ionicon-fill-none ionicon-stroke-width"/><rect x="384" y="128" width="32" height="256" rx="16" ry="16" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><rect x="96" y="128" width="32" height="256" rx="16" ry="16" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><rect x="32" y="192" width="16" height="128" rx="8" ry="8" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><rect x="464" y="192" width="16" height="128" rx="8" ry="8" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/barbell-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/barbell-sharp.svg deleted file mode 100644 index 73c93ea3d599c191c27b4481c325cc509179bcb0..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/barbell-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Barbell</title><path d="M496 176h-58v-64h-76v122H150V112H74v64H16v160h58v64h76V278h212v122h76v-64h58V176z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/barbell.svg b/ionic/platforms/android/app/src/main/assets/www/svg/barbell.svg deleted file mode 100644 index 96245572b18e90c58138abf97739030ea93796d6..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/barbell.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Barbell</title><path d="M467 176a29.94 29.94 0 00-25.32 12.5 2 2 0 01-3.64-1.14v-36.65c0-20.75-16.34-38.21-37.08-38.7A38 38 0 00362 150v82a2 2 0 01-2 2H152a2 2 0 01-2-2v-81.29c0-20.75-16.34-38.21-37.08-38.7A38 38 0 0074 150v37.38a2 2 0 01-3.64 1.14A29.94 29.94 0 0045 176c-16.3.51-29 14.31-29 30.62v98.72c0 16.31 12.74 30.11 29 30.62a29.94 29.94 0 0025.32-12.5 2 2 0 013.68 1.16v36.67C74 382 90.34 399.5 111.08 400A38 38 0 00150 362v-82a2 2 0 012-2h208a2 2 0 012 2v81.29c0 20.75 16.34 38.21 37.08 38.7A38 38 0 00438 362v-37.38a2 2 0 013.64-1.14A29.94 29.94 0 00467 336c16.3-.51 29-14.31 29-30.62v-98.74c0-16.31-12.74-30.11-29-30.64z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/barcode-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/barcode-outline.svg deleted file mode 100644 index c1ae11785613e7b019dfaf951d5f6cf3dc65ff85..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/barcode-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Barcode</title><path d="M384 400.33l35.13-.33A29 29 0 00448 371.13V140.87A29 29 0 00419.13 112l-35.13.33M128 112l-36.8.33c-15.88 0-27.2 13-27.2 28.87v230.27c0 15.87 11.32 28.86 27.2 28.86L128 400M384 192v128M320 160v192M256 176v160M192 160v192M128 192v128" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/barcode-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/barcode-sharp.svg deleted file mode 100644 index ac286a2fb12780c09e9e2d796023073edbdd9cf8..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/barcode-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Barcode</title><path stroke-linecap="square" stroke-linejoin="round" d="M400 400.33l48-.33V112l-48 .33M112 112l-48 .33v288l48-.33M384 192v128M320 160v192M256 176v160M192 160v192M128 192v128" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/barcode.svg b/ionic/platforms/android/app/src/main/assets/www/svg/barcode.svg deleted file mode 100644 index 9aa6b963407dd825b8944b011bc03085e40d1c6a..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/barcode.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Barcode</title><path d="M419.13 96H419l-35.05.33L128 96h-.16l-36.74.33C66.93 96.38 48 116.07 48 141.2v230.27c0 25.15 19 44.86 43.2 44.86h.15l36.71-.33 255.92.33h.17l35.07-.33A44.91 44.91 0 00464 371.13V140.87A44.92 44.92 0 00419.13 96zM144 320a16 16 0 01-32 0V192a16 16 0 0132 0zm64 32a16 16 0 01-32 0V160a16 16 0 0132 0zm64-16a16 16 0 01-32 0V176a16 16 0 0132 0zm64 16a16 16 0 01-32 0V160a16 16 0 0132 0zm64-32a16 16 0 01-32 0V192a16 16 0 0132 0z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/baseball-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/baseball-outline.svg deleted file mode 100644 index 955ff3d872c314a9c8fe8226de07d4692a56f558..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/baseball-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Baseball</title><path stroke-linecap="round" stroke-linejoin="round" d="M294.25 108.6l-60.57 17.59M317.13 156.11l-51.5 36.4M355.89 194.87l-36.4 51.5M403.4 217.75l-17.59 60.57" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="256" cy="256" r="192" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M432.94 255.05a192 192 0 01-176.31-180.7M108.54 294.31l17.59-60.57M156.05 317.19l36.4-51.5M194.81 355.95l51.5-36.4M217.69 403.46l60.57-17.59M255 433.61A192 192 0 0074.29 256.69" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/baseball-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/baseball-sharp.svg deleted file mode 100644 index 830037a94325a4dca9728748d64cc40193ba9c5a..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/baseball-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Baseball</title><path d="M302.16 56.2a13.88 13.88 0 01-3.42 8.91l-.11 5.13-27.71-.57c0 1.3.09 2.61.16 3.91a177.33 177.33 0 003.45 26.31l24.72-7.18 7.81 26.88-24.71 7.18a177.21 177.21 0 0013.34 27.69l21.27-15 16.16 22.86-21.29 15.05q5.25 6.33 11.11 12.19c3.91 3.91 8 7.6 12.2 11.1l15.71-22.22 22.86 16.16L358 216.75a178.78 178.78 0 0027.68 13.32l7.49-25.8 26.89 7.81-7.5 25.83a177.8 177.8 0 0031 3.67l-.41-24.67 17.41-.29A208 208 0 00301.82 52.93a13.65 13.65 0 01.34 3.27zM214 441.64l27.91.49a177.46 177.46 0 00-3.62-29.95l-24.14 7-7.81-26.88 24.11-7a177.92 177.92 0 00-13.33-27.68L196.79 372l-16.16-22.86L201 334.73c-3.49-4.22-7.19-8.3-11.09-12.2s-8-7.62-12.19-11.12l-13.91 19.68L141 314.93l13.9-19.66a177.26 177.26 0 00-27.7-13.33l-6.37 21.94-26.89-7.81 6.38-22a177.32 177.32 0 00-26.32-3.4c-1.59-.09-3.18-.16-4.78-.2l.4 22.34-17.71.32a207.88 207.88 0 00161.81 166.48z"/><path d="M444.65 302.67l-.55-33.06a206 206 0 01-39.33-4.74L397 291.8l-26.94-7.8 7.83-27a206.91 206.91 0 01-36.06-17.35l-16.36 23.15-22.86-16.16 16.33-23.11a204.21 204.21 0 01-30-30l-22.19 15.67-16.16-22.87 22.17-15.67a206 206 0 01-17.38-36.06l-25.75 7.48-7.81-26.89 25.73-7.47q-2-9.21-3.18-18.64h-.47l-.78-14-.33-6-17.94-.32a13.38 13.38 0 01-1.79-.16l-6.35-.13.06-2.47a14 14 0 01-5.66-11.49 13.27 13.27 0 01.13-1.67A208 208 0 0052.16 217.43l16.1-.28.45 25.18 6.83.38 14 .77v.48q9.42 1.17 18.64 3.18l6.68-23L141.7 232l-6.7 23a205.3 205.3 0 0136.06 17.38l14.53-20.56L208.47 268 194 288.5a203.5 203.5 0 0130 30l21.3-15 16.16 22.86-21.36 15.05a206.86 206.86 0 0117.34 36.06l25.27-7.33 7.81 26.86-25.24 7.33a205.9 205.9 0 014.72 38.3l29.42.53-.29 16.48a207.94 207.94 0 00160-157.21z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/baseball.svg b/ionic/platforms/android/app/src/main/assets/www/svg/baseball.svg deleted file mode 100644 index a0921149e3aae03588c8438f1c496c756aa29a8e..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/baseball.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Baseball</title><path d="M444 295.67l-.47-26.07a205.42 205.42 0 01-39.27-4.73l-5 17.35a14 14 0 11-26.88-7.81l5-17.38a206.47 206.47 0 01-36.05-17.35l-10.44 14.77a14 14 0 01-22.87-16.16l10.41-14.73a204.8 204.8 0 01-30-30L273.71 204a14 14 0 01-16.16-22.87l14.74-10.42a205.3 205.3 0 01-17.38-36.06l-17.32 5a14 14 0 11-7.81-26.89l17.3-5a205.88 205.88 0 01-4.43-32.59q-.17-3-.24-6l-18.22-.33a14 14 0 01-13.74-14A208 208 0 0055 202.42a16 16 0 0115 15.66l.44 24.43c1.58.05 3.16.11 4.73.2a205.88 205.88 0 0132.59 4.43l5-17.3a14 14 0 0126.89 7.81l-5 17.32a205.21 205.21 0 0136 17.38L181 257.61a14 14 0 0122.87 16.16l-10.39 14.73a205.65 205.65 0 0115.79 14.23 203.79 203.79 0 0114.23 15.79l14.73-10.41A14 14 0 01254.39 331l-14.76 10.43A206.86 206.86 0 01257 377.47l17.38-5.05a14 14 0 017.81 26.89l-17.35 5a205.89 205.89 0 014.7 38.28l18.27.33a16 16 0 0115.71 16.28 11.69 11.69 0 01-.08 1.19 208 208 0 00153.39-151.03A14 14 0 01444 295.67z"/><path d="M301.49 56.2A14 14 0 01287.5 70h-.25l-16.81-.3c.05 1.31.1 2.62.17 3.93a178.83 178.83 0 003.44 26.31l16.29-4.74a14 14 0 017.81 26.8l-16.27 4.73a178.06 178.06 0 0013.33 27.69l13.84-9.78a14 14 0 1116.16 22.87l-13.86 9.79q5.25 6.33 11.12 12.19c3.9 3.91 8 7.6 12.2 11.1l9.78-13.84A14 14 0 11367.32 203l-9.76 13.8a178.83 178.83 0 0027.68 13.33l4.76-16.28a14 14 0 0126.89 7.81l-4.73 16.26a177.72 177.72 0 0030.95 3.65l-.16-9a14 14 0 0113.75-14.24h.25a14.67 14.67 0 012.59.25 208 208 0 00-158-163.51c-.06.4-.04.76-.05 1.13zM208.44 457.55a16 16 0 0116.28-15.71l16.76.29a178.49 178.49 0 00-3.62-29.95l-16.26 4.72a14 14 0 11-7.81-26.9l16.21-4.7a177.92 177.92 0 00-13.33-27.68l-13.8 9.76a14 14 0 11-16.16-22.87l13.84-9.78c-3.5-4.22-7.19-8.3-11.1-12.2s-8-7.62-12.19-11.12l-9.79 13.86a14 14 0 11-22.87-16.16l9.78-13.84a177.16 177.16 0 00-27.69-13.33L122 298.21a14 14 0 11-26.9-7.81l4.73-16.29a177.32 177.32 0 00-26.31-3.44c-.89-.05-1.79-.08-2.68-.12l.16 10.59a16 16 0 01-15.71 16.28H55a16 16 0 01-3.94-.51 208 208 0 00157.65 163.87 15.72 15.72 0 01-.27-3.23z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/basket-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/basket-outline.svg deleted file mode 100644 index 0b4c26a81aa8796e26837b5b13ccbbddc721c0d4..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/basket-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Basket</title><path d="M68.4 192A20.38 20.38 0 0048 212.2a17.87 17.87 0 00.8 5.5L100.5 400a40.46 40.46 0 0039.1 29.5h232.8a40.88 40.88 0 0039.3-29.5l51.7-182.3.6-5.5a20.38 20.38 0 00-20.4-20.2H68.4zm193.32 160.07A42.07 42.07 0 11304 310a42.27 42.27 0 01-42.28 42.07z" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linejoin="round" d="M160 192l96-128 96 128" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/basket-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/basket-sharp.svg deleted file mode 100644 index 6addd4e4f04bfa3e27af268d0d7ac8eeaadc2065..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/basket-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Basket</title><path d="M339.2 217.6L256 106.67 172.8 217.6l-25.6-19.2 96-128a16 16 0 0125.6 0l96 128z"/><path d="M441.59 192H70.41a12 12 0 00-11.68 14.77L112.59 434h286.82l53.86-227.23A12 12 0 00441.59 192zM256 351.66A37.71 37.71 0 11293.89 314 37.88 37.88 0 01256 351.66z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/basket.svg b/ionic/platforms/android/app/src/main/assets/www/svg/basket.svg deleted file mode 100644 index 338ae13cba0fecc68bd78dffbf2fc8fe03b137d5..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/basket.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Basket</title><path d="M424.11 192H360L268.8 70.4a16 16 0 00-25.6 0L152 192H87.89a32.57 32.57 0 00-32.62 32.44 30.3 30.3 0 001.31 9l46.27 163.14a50.72 50.72 0 0048.84 36.91h208.62a51.21 51.21 0 0049-36.86l46.33-163.36a15.62 15.62 0 00.46-2.36l.53-4.93a13.3 13.3 0 00.09-1.55A32.57 32.57 0 00424.11 192zM256 106.67L320 192H192zm0 245a37.7 37.7 0 1137.88-37.7A37.87 37.87 0 01256 351.63z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/basketball-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/basketball-outline.svg deleted file mode 100644 index be875b3262b26432f8774ce454123aaac01c3d4f..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/basketball-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Basketball</title><circle cx="256" cy="256" r="192" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M432.94 255.05a192 192 0 01-176.31-180.7M255 433.61A192 192 0 0074.29 256.69M120.24 120.24l271.52 271.52M120.24 391.76l271.52-271.52" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/basketball-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/basketball-sharp.svg deleted file mode 100644 index 7318491b8fd9b753ae205807a8a66d4c82675c08..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/basketball-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Basketball</title><path d="M256 233.37l34.45-34.45a207.08 207.08 0 01-50.12-135.25c0-5 .19-10.05.54-15A207.09 207.09 0 00120.67 98zM313.14 176.23L391.33 98A207.07 207.07 0 00273 48.8c-.41 4.9-.64 9.86-.64 14.87a175.25 175.25 0 0040.78 112.56zM335.77 198.86a175.25 175.25 0 00112.56 40.81c5 0 10-.23 14.87-.64A207.07 207.07 0 00414 120.67zM176.23 313.14a175.23 175.23 0 00-112.56-40.81q-7.52 0-14.87.64A207.07 207.07 0 0098 391.33zM256 278.63l-34.45 34.45a207.08 207.08 0 0150.12 135.25c0 5-.19 10.05-.54 15A207.06 207.06 0 00391.33 414zM448.33 271.67a207.08 207.08 0 01-135.25-50.12L278.63 256 414 391.33a207.09 207.09 0 0049.39-120.2c-5.01.35-10.02.54-15.06.54zM233.37 256L98 120.67a207.06 207.06 0 00-49.39 120.2c5-.35 10-.54 15-.54a207.08 207.08 0 01135.25 50.12zM120.67 414A207.07 207.07 0 00239 463.2q.63-7.35.64-14.87a175.23 175.23 0 00-40.81-112.56z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/basketball.svg b/ionic/platforms/android/app/src/main/assets/www/svg/basketball.svg deleted file mode 100644 index 7318491b8fd9b753ae205807a8a66d4c82675c08..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/basketball.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Basketball</title><path d="M256 233.37l34.45-34.45a207.08 207.08 0 01-50.12-135.25c0-5 .19-10.05.54-15A207.09 207.09 0 00120.67 98zM313.14 176.23L391.33 98A207.07 207.07 0 00273 48.8c-.41 4.9-.64 9.86-.64 14.87a175.25 175.25 0 0040.78 112.56zM335.77 198.86a175.25 175.25 0 00112.56 40.81c5 0 10-.23 14.87-.64A207.07 207.07 0 00414 120.67zM176.23 313.14a175.23 175.23 0 00-112.56-40.81q-7.52 0-14.87.64A207.07 207.07 0 0098 391.33zM256 278.63l-34.45 34.45a207.08 207.08 0 0150.12 135.25c0 5-.19 10.05-.54 15A207.06 207.06 0 00391.33 414zM448.33 271.67a207.08 207.08 0 01-135.25-50.12L278.63 256 414 391.33a207.09 207.09 0 0049.39-120.2c-5.01.35-10.02.54-15.06.54zM233.37 256L98 120.67a207.06 207.06 0 00-49.39 120.2c5-.35 10-.54 15-.54a207.08 207.08 0 01135.25 50.12zM120.67 414A207.07 207.07 0 00239 463.2q.63-7.35.64-14.87a175.23 175.23 0 00-40.81-112.56z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/battery-charging-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/battery-charging-outline.svg deleted file mode 100644 index 3ca882febb17ecd339c9582b46882cd5a816ef6c..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/battery-charging-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Battery Charging</title><path d="M48 322.3V189.7A29.74 29.74 0 0177.7 160h137.44l24.4-32H77.7A61.77 61.77 0 0016 189.7v132.6A61.77 61.77 0 0077.7 384h96.85a22.57 22.57 0 01.26-7.32l.15-.75.21-.73 6.5-23.2H77.7A29.74 29.74 0 0148 322.3zM386.3 128h-98.64a22.69 22.69 0 01-.27 7.2l-.15.74-.21.73-6.54 23.33H386.3a29.74 29.74 0 0129.7 29.7v132.6a29.74 29.74 0 01-29.7 29.7H247l-24.42 32H386.3a61.77 61.77 0 0061.7-61.7V189.7a61.77 61.77 0 00-61.7-61.7z"/><path d="M162.65 294.16a24.37 24.37 0 01-21.56-13 25 25 0 011.42-25.83l.31-.46.33-.44L197.62 183H89.69a20 20 0 00-20 20v106a20 20 0 0020 20h98.42l9.78-34.86z"/><path d="M276.07 280.89l27.07-35.49a5.2 5.2 0 00.77-1.91 5 5 0 00.08-.66 5 5 0 00-.08-1.29 5.11 5.11 0 00-.68-1.75 4.76 4.76 0 00-.78-.95 3.48 3.48 0 00-.48-.38 4 4 0 00-1.11-.55 4.28 4.28 0 00-1.31-.2h-61.62l12.12-43.21 3.23-11.5 6.21-22.16.51-1.84 7.79-27.76a3.51 3.51 0 00.05-.55v-.16c0-.05 0-.26-.05-.38s0-.09 0-.14a2.2 2.2 0 00-.17-.45 3.77 3.77 0 00-.26-.39l-.09-.1a2.73 2.73 0 00-.25-.23l-.1-.08a3.14 3.14 0 00-.39-.24 2 2 0 00-.41-.14H265.53a2.3 2.3 0 00-.45 0 1.9 1.9 0 00-.42.15l-.13.07-.3.21-.11.1a2.4 2.4 0 00-.36.41l-18 23.63-13.14 17.22-9.85 12.83-63.71 83.55a5.72 5.72 0 00-.44.8 4.78 4.78 0 00-.35 1.09 4.7 4.7 0 00-.08 1.29 4.86 4.86 0 002 3.71 4.74 4.74 0 00.54.31 4.31 4.31 0 001.89.43h61.62L194.42 380.6a3.64 3.64 0 000 .56v.15a2.32 2.32 0 00.06.38.58.58 0 000 .14 2.2 2.2 0 00.17.45 3.62 3.62 0 00.26.38l.09.1.25.24a.39.39 0 01.1.08 2.22 2.22 0 00.39.23 2.83 2.83 0 00.41.14h.13a1.86 1.86 0 00.33 0h.13a2.32 2.32 0 00.45-.06 2.05 2.05 0 00.41-.16l.13-.07.3-.21.11-.09a2.4 2.4 0 00.36-.41L221.82 352l17.53-23z"/><path d="M319.5 256.93l-.46.6L264.51 329h109.8a20 20 0 0020-20V203a20 20 0 00-20-20H274.05l-9.74 34.73h35.24A24.35 24.35 0 01321 230.5a25.21 25.21 0 01-1 25.79zM480 202.67a16 16 0 00-16 16v74.66a16 16 0 0032 0v-74.66a16 16 0 00-16-16z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/battery-charging-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/battery-charging-sharp.svg deleted file mode 100644 index e0e3bf5d9e5aaee911deaee186d6de1ed065c0b7..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/battery-charging-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Battery Charging</title><path d="M306.68 237.62h-66.5l15.33-54.7 6.43-22.92 3.94-14 4.29-15.33a3.56 3.56 0 00.06-.44v-.19a1.85 1.85 0 000-.23 2 2 0 000-.24v-.14c0-.1-.07-.19-.11-.29v-.05a2.33 2.33 0 00-2-1.35h-.1a2.25 2.25 0 00-1.8 1l-12.5 17.15-18.82 25.55-8.36 11.48-35.41 48.6L160 274.26h66.44l-30 107a3.93 3.93 0 00-.06.48v.1a1.94 1.94 0 000 .34.29.29 0 000 .09 3 3 0 00.07.32v.06a1.83 1.83 0 00.14.32 2.38 2.38 0 001.52 1.16H198.68a2.1 2.1 0 001.31-.5l.06-.05a2.6 2.6 0 00.42-.45L223.3 352l13-17.82z"/><path d="M289.78 134.55l-.14.74-.21.73-6.72 24H417V352H248.05l-23.33 32H449V128H290.13a22.62 22.62 0 01-.35 6.55zM49 160h169.49l23.31-32H17v256h159.49a22.73 22.73 0 01.34-6.67l.15-.75.2-.73 6.69-23.85H49z"/><path d="M264.76 329.08h130.55V182.92H276.28l-9.73 34.7H346l-23.16 31.78-58.08 79.68zM160 294.26h-39.31l23.15-31.78 57.95-79.56H70.69v146.16h119.6l9.77-34.82H160zM465 202.67h32v106.67h-32z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/battery-charging.svg b/ionic/platforms/android/app/src/main/assets/www/svg/battery-charging.svg deleted file mode 100644 index 3ca882febb17ecd339c9582b46882cd5a816ef6c..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/battery-charging.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Battery Charging</title><path d="M48 322.3V189.7A29.74 29.74 0 0177.7 160h137.44l24.4-32H77.7A61.77 61.77 0 0016 189.7v132.6A61.77 61.77 0 0077.7 384h96.85a22.57 22.57 0 01.26-7.32l.15-.75.21-.73 6.5-23.2H77.7A29.74 29.74 0 0148 322.3zM386.3 128h-98.64a22.69 22.69 0 01-.27 7.2l-.15.74-.21.73-6.54 23.33H386.3a29.74 29.74 0 0129.7 29.7v132.6a29.74 29.74 0 01-29.7 29.7H247l-24.42 32H386.3a61.77 61.77 0 0061.7-61.7V189.7a61.77 61.77 0 00-61.7-61.7z"/><path d="M162.65 294.16a24.37 24.37 0 01-21.56-13 25 25 0 011.42-25.83l.31-.46.33-.44L197.62 183H89.69a20 20 0 00-20 20v106a20 20 0 0020 20h98.42l9.78-34.86z"/><path d="M276.07 280.89l27.07-35.49a5.2 5.2 0 00.77-1.91 5 5 0 00.08-.66 5 5 0 00-.08-1.29 5.11 5.11 0 00-.68-1.75 4.76 4.76 0 00-.78-.95 3.48 3.48 0 00-.48-.38 4 4 0 00-1.11-.55 4.28 4.28 0 00-1.31-.2h-61.62l12.12-43.21 3.23-11.5 6.21-22.16.51-1.84 7.79-27.76a3.51 3.51 0 00.05-.55v-.16c0-.05 0-.26-.05-.38s0-.09 0-.14a2.2 2.2 0 00-.17-.45 3.77 3.77 0 00-.26-.39l-.09-.1a2.73 2.73 0 00-.25-.23l-.1-.08a3.14 3.14 0 00-.39-.24 2 2 0 00-.41-.14H265.53a2.3 2.3 0 00-.45 0 1.9 1.9 0 00-.42.15l-.13.07-.3.21-.11.1a2.4 2.4 0 00-.36.41l-18 23.63-13.14 17.22-9.85 12.83-63.71 83.55a5.72 5.72 0 00-.44.8 4.78 4.78 0 00-.35 1.09 4.7 4.7 0 00-.08 1.29 4.86 4.86 0 002 3.71 4.74 4.74 0 00.54.31 4.31 4.31 0 001.89.43h61.62L194.42 380.6a3.64 3.64 0 000 .56v.15a2.32 2.32 0 00.06.38.58.58 0 000 .14 2.2 2.2 0 00.17.45 3.62 3.62 0 00.26.38l.09.1.25.24a.39.39 0 01.1.08 2.22 2.22 0 00.39.23 2.83 2.83 0 00.41.14h.13a1.86 1.86 0 00.33 0h.13a2.32 2.32 0 00.45-.06 2.05 2.05 0 00.41-.16l.13-.07.3-.21.11-.09a2.4 2.4 0 00.36-.41L221.82 352l17.53-23z"/><path d="M319.5 256.93l-.46.6L264.51 329h109.8a20 20 0 0020-20V203a20 20 0 00-20-20H274.05l-9.74 34.73h35.24A24.35 24.35 0 01321 230.5a25.21 25.21 0 01-1 25.79zM480 202.67a16 16 0 00-16 16v74.66a16 16 0 0032 0v-74.66a16 16 0 00-16-16z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/battery-dead-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/battery-dead-outline.svg deleted file mode 100644 index 6d867078316dc259a5391f6117931afec2bd87c0..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/battery-dead-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Battery Dead</title><rect x="31" y="144" width="400" height="224" rx="45.7" ry="45.7" stroke-linecap="square" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-miterlimit="10" d="M479 218.67v74.66" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/battery-dead-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/battery-dead-sharp.svg deleted file mode 100644 index fff6058cca05a9fe7a08bfc0f595ba1f4d0891ec..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/battery-dead-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Battery Dead</title><path stroke-linecap="square" stroke-miterlimit="10" d="M32 144h400v224H32zM480 218.67v74.66" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/battery-dead.svg b/ionic/platforms/android/app/src/main/assets/www/svg/battery-dead.svg deleted file mode 100644 index 6d867078316dc259a5391f6117931afec2bd87c0..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/battery-dead.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Battery Dead</title><rect x="31" y="144" width="400" height="224" rx="45.7" ry="45.7" stroke-linecap="square" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-miterlimit="10" d="M479 218.67v74.66" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/battery-full-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/battery-full-outline.svg deleted file mode 100644 index ea0f5697de0bdff02853dd370ac509e1c925808d..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/battery-full-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Battery Full</title><rect x="32" y="144" width="400" height="224" rx="45.7" ry="45.7" stroke-linecap="square" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><rect x="85.69" y="198.93" width="292.63" height="114.14" rx="4" ry="4" stroke-linecap="square" stroke-miterlimit="10" class="ionicon-stroke-width"/><path stroke-linecap="round" stroke-miterlimit="10" d="M480 218.67v74.66" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/battery-full-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/battery-full-sharp.svg deleted file mode 100644 index a2dfa15b47783d834c05f859e731c6ef2fde8417..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/battery-full-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Battery Full</title><path d="M17 384h432V128H17zm32-224h368v192H49z"/><path d="M70.69 182.94h324.63v146.13H70.69zM465 202.67h32v106.67h-32z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/battery-full.svg b/ionic/platforms/android/app/src/main/assets/www/svg/battery-full.svg deleted file mode 100644 index ea0f5697de0bdff02853dd370ac509e1c925808d..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/battery-full.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Battery Full</title><rect x="32" y="144" width="400" height="224" rx="45.7" ry="45.7" stroke-linecap="square" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><rect x="85.69" y="198.93" width="292.63" height="114.14" rx="4" ry="4" stroke-linecap="square" stroke-miterlimit="10" class="ionicon-stroke-width"/><path stroke-linecap="round" stroke-miterlimit="10" d="M480 218.67v74.66" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/battery-half-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/battery-half-outline.svg deleted file mode 100644 index b1a6ad700f032bbfae0c8c751f53cc3e3b8682a0..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/battery-half-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Battery Half</title><rect x="32" y="144" width="400" height="224" rx="45.7" ry="45.7" stroke-linecap="square" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><rect x="85.69" y="198.93" width="154.31" height="114.13" rx="4" ry="4" stroke-linecap="square" stroke-miterlimit="10" class="ionicon-stroke-width"/><path stroke-linecap="round" stroke-miterlimit="10" d="M480 218.67v74.66" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/battery-half-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/battery-half-sharp.svg deleted file mode 100644 index e4518baefb3034464238f59b009a45e8a90fcdd5..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/battery-half-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Battery Half</title><path d="M17 384h432V128H17zm32-224h368v192H49z"/><path d="M70.69 182.92H256v146.16H70.69zM465 202.67h32v106.67h-32z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/battery-half.svg b/ionic/platforms/android/app/src/main/assets/www/svg/battery-half.svg deleted file mode 100644 index b1a6ad700f032bbfae0c8c751f53cc3e3b8682a0..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/battery-half.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Battery Half</title><rect x="32" y="144" width="400" height="224" rx="45.7" ry="45.7" stroke-linecap="square" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><rect x="85.69" y="198.93" width="154.31" height="114.13" rx="4" ry="4" stroke-linecap="square" stroke-miterlimit="10" class="ionicon-stroke-width"/><path stroke-linecap="round" stroke-miterlimit="10" d="M480 218.67v74.66" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/beaker-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/beaker-outline.svg deleted file mode 100644 index 81cf8f62117f6342682ccdd8d1f55d649622a80e..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/beaker-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Beaker</title><path d="M445.2 48.05L398 48H128c-54.3 0-64 35.7-64 48 30.3 4.2 48 8 48 40v264a64 64 0 0064 64h192a64 64 0 0064-64V96c0-19 11.5-38.35 12.6-40 1.2-1.9 3.4-4.4 3.4-5.5s-.3-2.45-2.8-2.45zM112 176h320" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/beaker-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/beaker-sharp.svg deleted file mode 100644 index b98ba873902b5b5fc48753b0b782d48a3dc697e8..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/beaker-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Beaker</title><path d="M453.55 54.7L464 32H128.4c-27.74 0-49 6.57-63.31 19.51C54.39 61.27 48 74.89 48 88v24h16c31 0 32 16.79 32 35v313a20 20 0 0020 20h312a20 20 0 0020-20V96c0-17.16 2.28-34.14 5.55-41.3zM416 96v64H128v-22c0-36.15-21-51-41.77-53.46C89 70 105.7 64.05 128.4 64.05h289.92A221.83 221.83 0 00416 96z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/beaker.svg b/ionic/platforms/android/app/src/main/assets/www/svg/beaker.svg deleted file mode 100644 index 3e4e4054bb95e6e980f53cae4b259efeb7e72073..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/beaker.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Beaker</title><path d="M444 32H128c-19.38 0-45.9 4.34-64.11 24.77C52.17 69.92 48 85.66 48 96a16 16 0 0013.8 15.85C91.7 116 96 117.79 96 136v264a80.07 80.07 0 0080 80h192a80.11 80.11 0 0080-80V96c0-12.55 7.46-27.25 10-31.36l.1-.14c.22-.35.5-.72.78-1.1 2-2.79 5.09-7 5.09-12.95C464 39.79 454.89 32 444 32zM84.11 83.08c5.24-8.87 17.17-19 44.29-19h294.43C419.3 72.87 416 84.27 416 96v64H128v-24c0-37.32-21.35-48.14-43.89-52.92z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/bed-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/bed-outline.svg deleted file mode 100644 index 883257ed70b6b3b894134f05c652c598e0c6c046..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/bed-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Bed</title><path d="M384 240H96V136a40.12 40.12 0 0140-40h240a40.12 40.12 0 0140 40v104zM48 416V304a64.19 64.19 0 0164-64h288a64.19 64.19 0 0164 64v112" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M48 416v-8a24.07 24.07 0 0124-24h368a24.07 24.07 0 0124 24v8M112 240v-16a32.09 32.09 0 0132-32h80a32.09 32.09 0 0132 32v16M256 240v-16a32.09 32.09 0 0132-32h80a32.09 32.09 0 0132 32v16" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/bed-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/bed-sharp.svg deleted file mode 100644 index cad3efce569d1247ce2c5f9a1e08f5983a2085c8..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/bed-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Bed</title><path d="M432 224V96a16 16 0 00-16-16H96a16 16 0 00-16 16v128a48 48 0 00-48 48v160h36v-32h376v32h36V272a48 48 0 00-48-48zm-192 0H120v-32a16 16 0 0116-16h88a16 16 0 0116 16zm32-32a16 16 0 0116-16h88a16 16 0 0116 16v32H272z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/bed.svg b/ionic/platforms/android/app/src/main/assets/www/svg/bed.svg deleted file mode 100644 index e38c046919bbb11504dff572b106178d0fcc2b22..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/bed.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Bed</title><path d="M432 230.7a79.44 79.44 0 00-32-6.7H112a79.51 79.51 0 00-32 6.69A80.09 80.09 0 0032 304v112a16 16 0 0032 0v-8a8.1 8.1 0 018-8h368a8.1 8.1 0 018 8v8a16 16 0 0032 0V304a80.09 80.09 0 00-48-73.3zM376 80H136a56 56 0 00-56 56v72a4 4 0 005.11 3.84A95.5 95.5 0 01112 208h4.23a4 4 0 004-3.55A32 32 0 01152 176h56a32 32 0 0131.8 28.45 4 4 0 004 3.55h24.46a4 4 0 004-3.55A32 32 0 01304 176h56a32 32 0 0131.8 28.45 4 4 0 004 3.55h4.2a95.51 95.51 0 0126.89 3.85A4 4 0 00432 208v-72a56 56 0 00-56-56z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/beer-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/beer-outline.svg deleted file mode 100644 index 4329f328c9df13d927ed9354115d54421a8c54a8..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/beer-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Beer</title><path d="M352 200v240a40.12 40.12 0 01-40 40H136a40.12 40.12 0 01-40-40V224" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M352 224h40a56.16 56.16 0 0156 56v80a56.16 56.16 0 01-56 56h-40" stroke-linecap="round" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-linejoin="round" d="M224 256v160M288 256v160M160 256v160M320 112a48 48 0 010 96c-13.25 0-29.31-7.31-38-16H160c-8 22-27 32-48 32a48 48 0 010-96 47.91 47.91 0 0126 9" class="ionicon-fill-none ionicon-stroke-width"/><path d="M91.86 132.43a40 40 0 1160.46-52S160 91 160 96M145.83 64.71C163.22 44.89 187.57 32 216 32c52.38 0 94 42.84 94 95.21a95 95 0 01-1.67 17.79" stroke-linecap="round" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/beer-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/beer-sharp.svg deleted file mode 100644 index 8169da75e6e169f6199784f05825a6d793d57d38..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/beer-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Beer</title><path d="M448 208h-80v-5.74A63.93 63.93 0 00321.65 96a111 111 0 00-27.59-47.29A108.62 108.62 0 00216 16c-29.91 0-57.78 12.28-79 34.67a56 56 0 00-67.51 77.51c-1 .86-1.91 1.74-2.83 2.66A63.56 63.56 0 0048 176.26a62.65 62.65 0 0020.77 46.54A65 65 0 0080 231v249a16 16 0 0016 16h256a16 16 0 0016-16v-48h80a16 16 0 0016-16V224a16 16 0 00-16-16zM176 432h-32V240h32zm64 0h-32V240h32zm64 0h-32V240h32zm16-240c-8.33 0-20.55-5.18-26.69-11.31l-4.68-4.69H148.79L145 186.53c-5.81 16-18.83 20.41-28.73 21.29a34.08 34.08 0 01-25.91-8.67 31 31 0 01-10.32-23 31.8 31.8 0 019.33-22.71c.16-.17.33-.32.5-.49A31.78 31.78 0 01112 144c.09 0 9.12.34 16.4 5.8l12.8 9.6 19.2-25.6-12.8-9.6A63.69 63.69 0 00112 112a64.79 64.79 0 00-14 1.55 24 24 0 0141.4-23.68l.23.35.4.46a35.78 35.78 0 015 8.94l5.62 15 30-11.24-5.62-15a68.2 68.2 0 00-10-17.74c-.38-.52-.79-1-1.19-1.51C178.38 55.45 196.64 48 216 48a76.86 76.86 0 0155.23 23.18A80.2 80.2 0 01292.61 142l-3 15.72 31.43 6 3-15.72a111.78 111.78 0 001.96-19.43 32 32 0 01-6 63.43zm112 208h-64V240h64z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/beer.svg b/ionic/platforms/android/app/src/main/assets/www/svg/beer.svg deleted file mode 100644 index aa3af9c9417d360b29b5a8da87e4f1f4edc8a499..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/beer.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Beer</title><path d="M392 208h-24v-5.74A63.93 63.93 0 00321.65 96a111 111 0 00-27.59-47.29A108.62 108.62 0 00216 16c-29.91 0-57.78 12.28-79 34.68a56 56 0 00-67.51 77.54A63.91 63.91 0 0080 231.39V440a56.06 56.06 0 0056 56h176a56.06 56.06 0 0056-56v-8h24a72.08 72.08 0 0072-72v-80a72.08 72.08 0 00-72-72zM176 416a16 16 0 01-32 0V256a16 16 0 0132 0zm64 0a16 16 0 01-32 0V256a16 16 0 0132 0zm64 0a16 16 0 01-32 0V256a16 16 0 0132 0zm16-224c-8.33 0-20.55-5.18-26.69-11.31A16 16 0 00282 176H160a16 16 0 00-15 10.53c-6.83 18.68-23.6 21.47-33 21.47a32 32 0 010-64c.09 0 9.12.34 16.4 5.8a16 16 0 1019.2-25.6A63.69 63.69 0 00112 112a63.55 63.55 0 00-14 1.57A24 24 0 01120 80a23.78 23.78 0 0119.38 9.84 51.35 51.35 0 014.71 7.9A16 16 0 00176 96c0-6.77-3.61-15.17-10.76-25-.46-.63-1-1.25-1.45-1.86C178.39 55.44 196.64 48 216 48a76.86 76.86 0 0155.23 23.18A80.2 80.2 0 01292.61 142a16 16 0 0012.73 18.71 16.29 16.29 0 003 .28 16 16 0 0015.7-13 111.78 111.78 0 001.96-19.42 32 32 0 01-6 63.43zm112 168a40 40 0 01-40 40h-24V240h24a40 40 0 0140 40z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/bicycle-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/bicycle-outline.svg deleted file mode 100644 index 9d10192939d5c8aaca85470fdf607ded9b7584fe..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/bicycle-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Bicycle</title><path d="M388 288a76 76 0 1076 76 76.24 76.24 0 00-76-76zM124 288a76 76 0 1076 76 76.24 76.24 0 00-76-76z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-linejoin="round" d="M256 360v-86l-64-42 80-88 40 72h56" class="ionicon-fill-none ionicon-stroke-width"/><path d="M320 136a31.89 31.89 0 0032-32.1A31.55 31.55 0 00320.2 72a32 32 0 10-.2 64z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/bicycle-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/bicycle-sharp.svg deleted file mode 100644 index 9a721cb8a808e1b4bdc36be1f6b17b554c30a61e..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/bicycle-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Bicycle</title><path d="M320 192l-29.5-60.1C284.32 118 284.32 118 264 118c-13.26 0-14.76 0-23 7.3l-71.7 69.1c-8.3 8.45-9.3 9.45-9.3 26.6 0 12.67 3.78 14.61 18.51 22.9L240 278v90h32V254s-29-17-48.3-30l48.9-51.5c18.7 28.5 27.3 51.5 38 51.5H384v-32z"/><path d="M388 448a92 92 0 1192-92 92.1 92.1 0 01-92 92zm0-152a60 60 0 1060 60 60.07 60.07 0 00-60-60zM124 448a92 92 0 1192-92 92.1 92.1 0 01-92 92zm0-152a60 60 0 1060 60 60.07 60.07 0 00-60-60zM320 128a31.89 31.89 0 0032-32.1A31.55 31.55 0 00320.2 64a32 32 0 10-.2 64z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/bicycle.svg b/ionic/platforms/android/app/src/main/assets/www/svg/bicycle.svg deleted file mode 100644 index fc55caf7898535882825df8762222558995441c4..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/bicycle.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Bicycle</title><path d="M388 448a92 92 0 1192-92 92.1 92.1 0 01-92 92zm0-152a60 60 0 1060 60 60.07 60.07 0 00-60-60zM124 448a92 92 0 1192-92 92.1 92.1 0 01-92 92zm0-152a60 60 0 1060 60 60.07 60.07 0 00-60-60zM320 128a31.89 31.89 0 0032-32.1A31.55 31.55 0 00320.2 64a32 32 0 10-.2 64z"/><path d="M367.55 192h-43.76a4 4 0 01-3.51-2.08l-31.74-58.17a31 31 0 00-49.38-7.75l-69.86 70.4a32.56 32.56 0 00-9.3 22.4c0 17.4 12.6 23.6 18.5 27.1 28.5 16.42 48.57 28.43 59.58 35.1a4 4 0 011.92 3.41v69.12c0 8.61 6.62 16 15.23 16.43A16 16 0 00272 352v-86a16 16 0 00-6.66-13l-37-26.61a4 4 0 01-.58-6l42-44.79a4 4 0 016.42.79L298 215.77a16 16 0 0014 8.23h56a16 16 0 0016-16.77c-.42-8.61-7.84-15.23-16.45-15.23z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/bluetooth-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/bluetooth-outline.svg deleted file mode 100644 index b1488eb830bec9ed7953e9d761e584145121ed4d..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/bluetooth-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Bluetooth</title><path stroke-linecap="round" stroke-linejoin="round" d="M144 352l224-192L256 48v416l112-112-224-192" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/bluetooth-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/bluetooth-sharp.svg deleted file mode 100644 index ec7eca2ddf985627ed1c1d7bc6b56fafb9bc5ff4..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/bluetooth-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Bluetooth</title><path d="M397.41 161.13L236-.28v212.8l-94.17-80.72-26 30.37L225.27 256 115.8 349.83l26 30.37 94.2-80.72v212.8l161.41-161.41L286.73 256zM276 96.28l62.59 62.59L276 212.52zm62.58 256.85L276 415.72V299.48z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/bluetooth.svg b/ionic/platforms/android/app/src/main/assets/www/svg/bluetooth.svg deleted file mode 100644 index bcc1bf01065ec89e23aa951508a11ab80c20ab97..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/bluetooth.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Bluetooth</title><path d="M388 160.77a20 20 0 00-5.85-14.91l-112-112A20 20 0 00236 48v164.52l-79-67.71a20 20 0 00-26 30.38L225.27 256 131 336.81a20 20 0 1026 30.38l79-67.71V464a20 20 0 0034.14 14.14l112-112a20 20 0 00-1.14-29.33L286.73 256 381 175.19a20 20 0 007-14.42zm-49.42 192.36L276 415.72V299.49zM276 212.52V96.28l62.59 62.59z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/boat-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/boat-outline.svg deleted file mode 100644 index 824f803f2a6c759a1e56f7d34698eda6ad969a98..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/boat-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Boat</title><path d="M461.93 261.05c-2-4.76-6.71-7.83-11.67-9.49l-187.18-74.48a23.78 23.78 0 00-14.17 0l-187 74.52c-5 1.56-9.83 4.77-11.81 9.53s-2.94 9.37-1 15.08l46.53 119.15a7.46 7.46 0 007.47 4.64c26.69-1.68 50.31-15.23 68.38-32.5a7.66 7.66 0 0110.49 0C201.29 386 227 400 256 400s54.56-14 73.88-32.54a7.67 7.67 0 0110.5 0c18.07 17.28 41.69 30.86 68.38 32.54a7.45 7.45 0 007.46-4.61l46.7-119.16c1.98-4.78.99-10.41-.99-15.18z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><path d="M416 473.14a6.84 6.84 0 00-3.56-6c-27.08-14.55-51.77-36.82-62.63-48a10.05 10.05 0 00-12.72-1.51c-50.33 32.42-111.61 32.44-161.95.05a10.09 10.09 0 00-12.82 1.56c-10.77 11.28-35.19 33.3-62.43 47.75a7.15 7.15 0 00-3.89 5.73 6.73 6.73 0 007.92 7.15c20.85-4.18 41-13.68 60.2-23.83a8.71 8.71 0 018-.06A185.14 185.14 0 00340 456a8.82 8.82 0 018.09.06c19.1 10 39.22 19.59 60 23.8a6.72 6.72 0 007.95-6.71z"/><path d="M320 96V72a24.07 24.07 0 00-24-24h-80a24.07 24.07 0 00-24 24v24M416 233v-89a48.14 48.14 0 00-48-48H144a48.14 48.14 0 00-48 48v92M256 183.6v212.85" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/boat-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/boat-sharp.svg deleted file mode 100644 index afeac1d06c031876e992dcac429a4a981e2821a0..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/boat-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Boat</title><path d="M477.77 246.42c-2.13-6-7.23-9.55-12.56-11.95L432 221.38V92a20 20 0 00-20-20h-76V40a16 16 0 00-16-16H192a16 16 0 00-16 16v32h-76a20 20 0 00-20 20v129.46l-33.08 13.06c-5.33 2.4-10.58 6-12.72 12s-3.16 11.81-1 19L84.25 415.7h1.06c34.12 0 64-17.41 85.31-43.82 21.32 26.41 51.18 42.12 85.3 42.12s64-15.76 85.31-42.17c21.32 26.41 51.18 43.87 85.3 43.87h1.06l51.25-150.17c2.16-6 1.07-13.1-1.07-19.11zM256 152l-144 56.83V108a4 4 0 014-4h280a4 4 0 014 4v100.76z"/><path d="M345.22 407c-52.25 36.26-126.35 36.25-178.6 0 0 0-45.64 63-94.64 63l13.33 1c29.86 0 58.65-11.73 85.31-25.59a185.33 185.33 0 00170.6 0c26.66 13.87 55.45 25.6 85.31 25.6l13.33-1C392.21 470 345.22 407 345.22 407z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/boat.svg b/ionic/platforms/android/app/src/main/assets/www/svg/boat.svg deleted file mode 100644 index ee582e4dda30ef79d23159a3c4294d174fc954b5..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/boat.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Boat</title><path d="M416 473.14a6.83 6.83 0 00-3.57-6c-27.07-14.55-51.76-36.82-62.62-48a10.05 10.05 0 00-12.72-1.51c-50.33 32.42-111.61 32.44-161.95.05a10.09 10.09 0 00-12.82 1.56c-10.77 11.28-35.19 33.3-62.43 47.75a7.11 7.11 0 00-3.89 5.73 6.73 6.73 0 007.92 7.15c20.85-4.18 41-13.68 60.2-23.83a8.71 8.71 0 018-.06 185.14 185.14 0 00167.81 0 8.82 8.82 0 018.09.06c19.1 10 39.22 19.59 60 23.8a6.73 6.73 0 008-6.71zM476.71 246.91c-3.49-8.39-10.9-14.89-20.9-18.35L432 219.08V136a64 64 0 00-64-64h-32v-8a40 40 0 00-40-40h-80a40 40 0 00-40 40v8h-32a64 64 0 00-64 64v83.15l-23.58 9.39c-9.94 3.3-17.63 10-21.15 18.44-2.45 5.89-5.25 15-1.3 26.46l.1.3 46.66 119.44A23.33 23.33 0 00102.58 408c.5 0 1 0 1.53-.05 31.32-2 56-17.27 72.6-31.61C200.42 396.81 228.31 408 256 408s55.43-11.2 79.14-31.7c16.59 14.36 41.3 29.67 72.61 31.65a23.36 23.36 0 0023.37-14.74l46.65-119c3.28-8.09 2.9-17.76-1.06-27.3zM269 154.21l-1.14-.4a39.53 39.53 0 00-23.73 0l-.58.18-126.07 50.23a4 4 0 01-5.48-3.72V136a32 32 0 0132-32h224a32 32 0 0132 32v64.44a4 4 0 01-5.48 3.72z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/body-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/body-outline.svg deleted file mode 100644 index dd50af1b5fe5d2eb7a4d6eb3b1b7e3f9286d6a03..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/body-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Body</title><circle stroke-miterlimit="10" cx="256" cy="56" r="40" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-miterlimit="10" d="M199.3 295.62h0l-30.4 172.2a24 24 0 0019.5 27.8 23.76 23.76 0 0027.6-19.5l21-119.9v.2s5.2-32.5 17.5-32.5h3.1c12.5 0 17.5 32.5 17.5 32.5v-.1l21 119.9a23.92 23.92 0 1047.1-8.4l-30.4-172.2-4.9-29.7c-2.9-18.1-4.2-47.6.5-59.7 4-10.4 14.13-14.2 23.2-14.2H424a24 24 0 000-48H88a24 24 0 000 48h92.5c9.23 0 19.2 3.8 23.2 14.2 4.7 12.1 3.4 41.6.5 59.7z" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/body-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/body-sharp.svg deleted file mode 100644 index 8c4eb481788009c41418aafa972ea20520b278ba..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/body-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Body</title><circle cx="256" cy="56" r="56"/><path d="M464 128H48v52h144l-32 325.13 51 6.87 21.65-192h47.02L301 512l51-6.98L320 180h144v-52z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/body.svg b/ionic/platforms/android/app/src/main/assets/www/svg/body.svg deleted file mode 100644 index 3b6e0f21640365b63cacbceccbcd79b4ad900a84..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/body.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Body</title><circle cx="256" cy="56" r="56"/><path d="M437 128H75a27 27 0 000 54h101.88c6.91 0 15 3.09 19.58 15 5.35 13.83 2.73 40.54-.57 61.23l-4.32 24.45a.42.42 0 01-.12.35l-34.6 196.81A27.43 27.43 0 00179 511.58a27.06 27.06 0 0031.42-22.29l23.91-136.8S242 320 256 320c14.23 0 21.74 32.49 21.74 32.49l23.91 136.92a27.24 27.24 0 1053.62-9.6L320.66 283a.45.45 0 00-.11-.35l-4.33-24.45c-3.3-20.69-5.92-47.4-.57-61.23 4.56-11.88 12.91-15 19.28-15H437a27 27 0 000-54z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/bonfire-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/bonfire-outline.svg deleted file mode 100644 index dcc03d10869537252578859188d2cba0fdebfc63..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/bonfire-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Bonfire</title><path d="M273.38 368.33c-.81-9.23-8.86-16.44-18.55-16.44a18.63 18.63 0 00-18.2 14.11l-18.2 88.38a35.75 35.75 0 00-.93 7.88c0 19.93 16.68 33.78 37.33 33.78s37.34-13.85 37.34-33.78a36.16 36.16 0 00-1.29-9.45zM411.05 407.86a41.78 41.78 0 00-5.95-4.35l-69.53-48.59c-6.77-4.25-14-4.13-19.25 1a13.53 13.53 0 00-2 17.2l52.5 69a36.57 36.57 0 004 4.69c9.1 10.17 29.28 10.73 40.37 0 10.94-10.91 10.81-30.35-.14-38.95zM463.3 335.88h-70.42c-4.55 0-8.88 3.35-8.88 8.16s2.95 7.85 6.92 9.16l66.43 20.55C467 376 480 367.4 480 356.66c0-13.66-7.6-20.78-16.7-20.78zM128.22 344c0-5-4.55-8.16-9.45-8.16H48.35c-8.87 0-16.35 9.58-16.35 20.32S44.62 376 54.3 373.75l67.43-20.55c4.39-1.31 6.49-4.2 6.49-9.2zM176.55 355L107 403.38a32.34 32.34 0 00-6 4.35 26.33 26.33 0 000 38.56 29.39 29.39 0 0040.36 0 30.75 30.75 0 004-4.68L197.9 373c3.5-5.58 2.92-12.49-2-17.06a15 15 0 00-19.35-.94z"/><path d="M368 125.09c0-55.7-49.22-89.16-94.2-93.06a8 8 0 00-8.69 7.71c-3.12 76-109.38 110.69-119.87 178.68-7 45.4 16.65 72.37 34.31 85.78a15.94 15.94 0 0023.93-5.62c22.5-45.86 74.33-63.49 109.72-85.94 42.88-27.2 54.8-56.44 54.8-87.55z" stroke-linecap="round" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><path d="M240 95.7c-12.82-23-30.51-31-59.16-31.63a3.86 3.86 0 00-4.06 3.51c-.95 34.22-32.78 44.85-32.78 73.15 0 19.37 5.39 29 17.16 39.28M352.45 178.76c8.6 14.31 15.55 30.08 15.55 48 0 52.52-42.47 93.1-94.86 93.1a94.42 94.42 0 01-65.14-26" stroke-linecap="round" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/bonfire-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/bonfire-sharp.svg deleted file mode 100644 index 5bac021bc4c6dc6fdf1f33e239eb468456387afd..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/bonfire-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Bonfire</title><path d="M199.89 336l-15.25-5.62a100.35 100.35 0 01-32-23.08c-13.93-14.9-29.29-40.71-23.38-79.11 5.2-33.73 44.2-74.21 69.34-97.87 27.24-25.62 66-65.85 64.15-99.15L262 16h15.18C328.53 16 384 53.62 384 114.41c0 45.57-22 77.61-68.91 106.9-8 5-16.44 9.66-25.42 14.53-30.63 16.62-75.29 49.83-85.73 85.32zM181.19 113.59C201 95 218.91 78.15 227.62 59.79q-2.76-1.68-5.7-3.09c-11.87-5.69-26.1-8.34-44.76-8.34h-16.94l.56 16.49c.47 14.06-6.06 22.51-14.33 33.21C137.8 109.26 128 121.94 128 141c0 10.23 1.29 18.76 4.2 26.36q3.5-5.31 7.61-10.63c12.19-15.73 27.05-29.68 41.38-43.14z"/><path d="M330.34 239.85c-9.31 5.9-19 11.14-29.25 16.71-32.65 17.69-63.48 34.44-73.23 67.44l-.6 2a110.5 110.5 0 0045.87 10c29.66 0 57.45-11.13 78.24-31.36A107.38 107.38 0 00384 227a92.39 92.39 0 00-5.59-31c-11.35 16.18-27.14 30.58-48.07 43.85zM268.72 360h-25.44a4 4 0 00-3.92 3.22l-25.36 128a4 4 0 003.92 4.78h76.26a4 4 0 003.92-4.78l-25.41-128a4 4 0 00-3.97-3.22zM325.68 354.32l-11.36 11.36a4 4 0 00-.5 5.05l59.47 89.21a4 4 0 006.16.61l41.1-41.1a4 4 0 00-.61-6.16l-89.21-59.47a4 4 0 00-5.05.5zM388 336a4 4 0 00-4 4v8.61a4 4 0 003.34 3.95l88 14.66a4 4 0 004.66-3.94V340a4 4 0 00-4-4zM186.32 354.32l11.36 11.36a4 4 0 01.5 5.05l-59.47 89.21a4 4 0 01-6.16.61l-41.1-41.1a4 4 0 01.61-6.16l89.21-59.47a4 4 0 015.05.5zM124 336H36a4 4 0 00-4 4v23.28a4 4 0 004.66 3.94l88-14.66a4 4 0 003.34-3.95V340a4 4 0 00-4-4z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/bonfire.svg b/ionic/platforms/android/app/src/main/assets/www/svg/bonfire.svg deleted file mode 100644 index 3ee97782cae8410096df68da3c7ea6d520bc433e..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/bonfire.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Bonfire</title><path d="M273.38 368.37c-.81-9.23-8.86-16.44-18.55-16.44a18.63 18.63 0 00-18.2 14.07l-18.2 88.36a35.59 35.59 0 00-.93 7.87c0 19.93 16.68 33.77 37.33 33.77s37.34-13.84 37.34-33.77a36.16 36.16 0 00-1.29-9.45zM411.05 407.89a42.66 42.66 0 00-5.95-4.36L335.57 355c-6.77-4.24-14-4.13-19.25 1a13.52 13.52 0 00-2 17.19l52.5 69a38 38 0 004 4.69c9.1 10.16 29.28 10.72 40.37 0 10.94-10.96 10.81-30.39-.14-38.99zM463.3 335.93h-70.42c-4.55 0-8.88 3.35-8.88 8.15s2.95 7.85 6.92 9.16l66.43 20.55C467 376 480 367.44 480 356.71c0-13.63-7.6-20.78-16.7-20.78zM128.22 344.08c0-4.95-4.55-8.15-9.45-8.15H48.35c-8.87 0-16.35 9.58-16.35 20.31S44.62 376 54.3 373.79l67.43-20.55c4.39-1.31 6.49-4.24 6.49-9.16zM176.55 355.05L107 403.41a32.29 32.29 0 00-6 4.34 26.33 26.33 0 000 38.56 29.41 29.41 0 0040.36 0 30.75 30.75 0 004-4.68L197.9 373c3.5-5.57 2.92-12.48-2-17a15 15 0 00-19.35-.95zM293.46 242.39c10-5.42 19.45-10.54 28.31-16.16 42.46-26.92 62.23-59 62.23-101 0-64.66-56.07-104.4-108.82-109-6.49-.57-15-.42-19.91 3.88s-5.88 12.56-6.15 19.1c-1.38 33.61-28.38 59-57 85.86-28 26.3-56.93 53.49-62.71 91-8.41 54.68 21.74 86.71 40.46 100.93a31.88 31.88 0 0019.3 6.51 32.32 32.32 0 007.41-.87 31.75 31.75 0 0021.27-16.95c14.91-30.39 45.77-47.12 75.61-63.3z"/><path d="M139.82 156.57c12.22-15.76 27-29.68 41.37-43.15 19.92-18.72 37.81-35.58 46.5-53.86-12.24-7.37-27.36-11.36-46.51-11.36-17.79 0-20.39 5.18-20.39 19.06 0 12.56-6.53 20.54-14.34 30.65C137.8 109.1 128 121.77 128 140.84c0 10.23 1.29 18.77 4.2 26.37q3.5-5.32 7.62-10.64zM330.34 239.74c-9.33 5.92-19 11.16-29.25 16.71-28.91 15.68-56.21 30.48-68.88 56.28a62.6 62.6 0 01-1.88 3.61 8 8 0 003.89 11.3c12.31 5.1 25.13 8.27 38.91 8.27a111.42 111.42 0 0078.24-31.37A107.45 107.45 0 00384 226.85a86.56 86.56 0 00-1.33-15 8 8 0 00-13.8-4c-10.18 11.47-22.93 22-38.53 31.89z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/book-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/book-outline.svg deleted file mode 100644 index 11ed67e2726c663b21a379c6e73fd1207e988491..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/book-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Book</title><path d="M256 160c16-63.16 76.43-95.41 208-96a15.94 15.94 0 0116 16v288a16 16 0 01-16 16c-128 0-177.45 25.81-208 64-30.37-38-80-64-208-64-9.88 0-16-8.05-16-17.93V80a15.94 15.94 0 0116-16c131.57.59 192 32.84 208 96zM256 160v288" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/book-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/book-sharp.svg deleted file mode 100644 index ba7b8b1b409749df33d95aefd2207a302f5a2b90..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/book-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Book</title><path d="M464 48c-67.61.29-117.87 9.6-154.24 25.69-27.14 12-37.76 21.08-37.76 51.84V448c41.57-37.5 78.46-48 224-48V48zM48 48c67.61.29 117.87 9.6 154.24 25.69 27.14 12 37.76 21.08 37.76 51.84V448c-41.57-37.5-78.46-48-224-48V48z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/book.svg b/ionic/platforms/android/app/src/main/assets/www/svg/book.svg deleted file mode 100644 index affb693df3b678ef19c0764ff0fa5f00e152b4ec..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/book.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Book</title><path d="M202.24 74C166.11 56.75 115.61 48.3 48 48a31.36 31.36 0 00-17.92 5.33A32 32 0 0016 79.9V366c0 19.34 13.76 33.93 32 33.93 71.07 0 142.36 6.64 185.06 47a4.11 4.11 0 006.94-3V106.82a15.89 15.89 0 00-5.46-12A143 143 0 00202.24 74zM481.92 53.3A31.33 31.33 0 00464 48c-67.61.3-118.11 8.71-154.24 26a143.31 143.31 0 00-32.31 20.78 15.93 15.93 0 00-5.45 12v337.13a3.93 3.93 0 006.68 2.81c25.67-25.5 70.72-46.82 185.36-46.81a32 32 0 0032-32v-288a32 32 0 00-14.12-26.61z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/bookmark-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/bookmark-outline.svg deleted file mode 100644 index c9b3fe85a812a279b6c2c14c1951540a6a6cd854..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/bookmark-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Bookmark</title><path d="M352 48H160a48 48 0 00-48 48v368l144-128 144 128V96a48 48 0 00-48-48z" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/bookmark-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/bookmark-sharp.svg deleted file mode 100644 index c790371879632c0a6377f93a10c340c4c49cf281..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/bookmark-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Bookmark</title><path d="M416 480L256 357.41 96 480V32h320z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/bookmark.svg b/ionic/platforms/android/app/src/main/assets/www/svg/bookmark.svg deleted file mode 100644 index eacd18bc07d60047f24b8406ca5663a87f9c62b5..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/bookmark.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Bookmark</title><path d="M400 480a16 16 0 01-10.63-4L256 357.41 122.63 476A16 16 0 0196 464V96a64.07 64.07 0 0164-64h192a64.07 64.07 0 0164 64v368a16 16 0 01-16 16z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/bookmarks-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/bookmarks-outline.svg deleted file mode 100644 index db25ff558164b7f27264eaf98c9f647286ab7917..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/bookmarks-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Bookmarks</title><path d="M128 80V64a48.14 48.14 0 0148-48h224a48.14 48.14 0 0148 48v368l-80-64" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M320 96H112a48.14 48.14 0 00-48 48v352l152-128 152 128V144a48.14 48.14 0 00-48-48z" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/bookmarks-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/bookmarks-sharp.svg deleted file mode 100644 index 169fa52b43a0dc0e78ee66b2ff9dd4046d48ecf9..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/bookmarks-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Bookmarks</title><path d="M112 0v48h304v368l48 32V0H112z"/><path d="M48 80v432l168-124 168 124V80H48z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/bookmarks.svg b/ionic/platforms/android/app/src/main/assets/www/svg/bookmarks.svg deleted file mode 100644 index 887b947622a7e31798389c9ba5e65ac2f5260b48..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/bookmarks.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Bookmarks</title><path d="M400 0H176a64.11 64.11 0 00-62 48h228a74 74 0 0174 74v304.89l22 17.6a16 16 0 0019.34.5 16.41 16.41 0 006.66-13.42V64a64 64 0 00-64-64z"/><path d="M320 80H112a64 64 0 00-64 64v351.62A16.36 16.36 0 0054.6 509a16 16 0 0019.71-.71L216 388.92l141.69 119.32a16 16 0 0019.6.79 16.4 16.4 0 006.71-13.44V144a64 64 0 00-64-64z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/briefcase-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/briefcase-outline.svg deleted file mode 100644 index 5cb2b8521a6de461182ce80614ecbf45c1794c5d..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/briefcase-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Briefcase</title><rect x="32" y="128" width="448" height="320" rx="48" ry="48" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M144 128V96a32 32 0 0132-32h160a32 32 0 0132 32v32M480 240H32M320 240v24a8 8 0 01-8 8H200a8 8 0 01-8-8v-24" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/briefcase-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/briefcase-sharp.svg deleted file mode 100644 index 11b861e388a291897bcb1779d82a0cdca6517749..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/briefcase-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Briefcase</title><path d="M336 288H176v-32H16v196a12 12 0 0012 12h456a12 12 0 0012-12V256H336zM496 124a12 12 0 00-12-12H384V56a8 8 0 00-8-8H136a8 8 0 00-8 8v56H28a12 12 0 00-12 12v100h480zm-152-12H168V88h176z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/briefcase.svg b/ionic/platforms/android/app/src/main/assets/www/svg/briefcase.svg deleted file mode 100644 index d754b57514e3e8c16b4fbd244560178aeece04f6..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/briefcase.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Briefcase</title><path d="M336 80H176a16 16 0 00-16 16v16h192V96a16 16 0 00-16-16z" class="ionicon-fill-none"/><path d="M496 176a64.07 64.07 0 00-64-64h-48V96a48.05 48.05 0 00-48-48H176a48.05 48.05 0 00-48 48v16H80a64.07 64.07 0 00-64 64v48h480zm-144-64H160V96a16 16 0 0116-16h160a16 16 0 0116 16zM336 264a24 24 0 01-24 24H200a24 24 0 01-24-24v-4a4 4 0 00-4-4H16v144a64 64 0 0064 64h352a64 64 0 0064-64V256H340a4 4 0 00-4 4z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/browsers-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/browsers-outline.svg deleted file mode 100644 index 0c98dc8bea2f392e787e2e39efe42df8043a45e9..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/browsers-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Browsers</title><rect x="48" y="64" width="416" height="384" rx="48" ry="48" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M397.82 64H114.18C77.69 64 48 94.15 48 131.2V176h16c0-16 16-32 32-32h320c16 0 32 16 32 32h16v-44.8c0-37.05-29.69-67.2-66.18-67.2z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/browsers-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/browsers-sharp.svg deleted file mode 100644 index 485430c892e891f67d5a82e970d6f61f6db53f81..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/browsers-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Browsers</title><path d="M32 64v384a16 16 0 0016 16h416a16 16 0 0016-16V64a16 16 0 00-16-16H48a16 16 0 00-16 16zm408 364H72a4 4 0 01-4-4V152a4 4 0 014-4h368a4 4 0 014 4v272a4 4 0 01-4 4z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/browsers.svg b/ionic/platforms/android/app/src/main/assets/www/svg/browsers.svg deleted file mode 100644 index 88fa81c4dcc5aa1b344bb4e0ebedb1b7b3a1562b..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/browsers.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Browsers</title><path d="M416 48H96a64 64 0 00-64 64v288a64 64 0 0064 64h320a64 64 0 0064-64V112a64 64 0 00-64-64zm24 96H72a8 8 0 01-8-8v-24a32.09 32.09 0 0132-32h320a32.09 32.09 0 0132 32v24a8 8 0 01-8 8z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/brush-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/brush-outline.svg deleted file mode 100644 index ea07ddf9688b2d737e8dfb6faee5b7a0e5923798..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/brush-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Brush</title><path d="M452.37 59.63h0a40.49 40.49 0 00-57.26 0L184 294.74c23.08 4.7 46.12 27.29 49.26 49.26l219.11-227.11a40.49 40.49 0 000-57.26zM138 336c-29.88 0-54 24.5-54 54.86 0 23.95-20.88 36.57-36 36.57C64.56 449.74 92.82 464 120 464c39.78 0 72-32.73 72-73.14 0-30.36-24.12-54.86-54-54.86z" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/brush-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/brush-sharp.svg deleted file mode 100644 index a17114e9d53b858cf91a1ad123ac7573c828321a..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/brush-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Brush</title><path d="M480 96l-64-64-244 260 64 64zM142 320c-36.52 0-66 30.63-66 68.57 0 25.43-31 45.72-44 45.72C52.24 462.17 86.78 480 120 480c48.62 0 88-40.91 88-91.43 0-37.94-29.48-68.57-66-68.57z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/brush.svg b/ionic/platforms/android/app/src/main/assets/www/svg/brush.svg deleted file mode 100644 index 837157a0c794ee5071fb7aa8d29f31d80d069278..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/brush.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Brush</title><path d="M233.15 360.11a15.7 15.7 0 01-4.92-.77 16 16 0 01-10.92-13c-2.15-15-19.95-32.46-36.62-35.85a16 16 0 01-8.69-26.33l211.09-235.1c.19-.22.39-.43.59-.63a56.57 56.57 0 0179.89 0 56.51 56.51 0 01.11 79.78l-219 227a16 16 0 01-11.53 4.9zM119.89 480.11c-32.14 0-65.45-16.89-84.85-43a16 16 0 0112.85-25.54c5.34 0 20-4.87 20-20.57 0-39.07 31.4-70.86 70-70.86s70 31.79 70 70.86c0 49.12-39.48 89.11-88 89.11z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/bug-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/bug-outline.svg deleted file mode 100644 index 26e4dd182ff4730807fff8b9260c16a90d53f7f7..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/bug-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Bug</title><path d="M370 378c28.89 23.52 46 46.07 46 86M142 378c-28.89 23.52-46 46.06-46 86M384 208c28.89-23.52 32-56.07 32-96M128 206c-28.89-23.52-32-54.06-32-94M464 288.13h-80M128 288.13H48M256 192v256" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M256 448h0c-70.4 0-128-57.6-128-128v-96.07c0-65.07 57.6-96 128-96h0c70.4 0 128 25.6 128 96V320c0 70.4-57.6 128-128 128z" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M179.43 143.52a49.08 49.08 0 01-3.43-15.73A80 80 0 01255.79 48h.42A80 80 0 01336 127.79a41.91 41.91 0 01-3.12 14.3" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/bug-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/bug-sharp.svg deleted file mode 100644 index 8e905f236b4114800b12af7c987cb75064e94c22..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/bug-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Bug</title><path d="M480 304.13v-32h-80V215.2c29.42-27.95 32-64.76 32-103.2V96h-32v16c0 28-1.86 48.15-9.9 63.84C368 128 324.32 112 256 112c-39.8 0-75.19 7.06-100.43 24.32-14.9 10.19-25.2 24.91-32.7 39.72C114 160.57 112 140.82 112 112V96H80v16c0 37.44 2.59 73.36 32 101.2v58.93H32v32l80-.13c0 19 3.7 53.09 10.39 69.69C96.6 396.76 80 422.31 80 464v16h32v-16c0-27.66 9.1-44.71 26.17-61.32C160 448 177 464 240 464V176h32v288c65 0 80-16 101.83-61.32C390.9 419.29 400 436.35 400 464v16h32v-16c0-41.68-16.6-67.23-42.39-90.31C396.3 357.09 400 323 400 304z"/><path d="M256 32c-48.06 0-96 0-96 84 26.12-14 59.35-20 96-20 24.09 0 46.09 2.65 65.39 8 10.75 3 24.66 8.71 30.61 12 0-84-47.94-84-96-84z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/bug.svg b/ionic/platforms/android/app/src/main/assets/www/svg/bug.svg deleted file mode 100644 index 43b483de2f5ed9a781a6541d9e9383ee3957c726..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/bug.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Bug</title><path d="M463.55 272.13H400v-48.2q0-4.32-.27-8.47c29.57-27.88 32.25-64.63 32.27-103 0-8.61-6.64-16-15.25-16.41A16 16 0 00400 112c0 28-1.86 48.15-9.9 63.84-19.22-41.15-65.78-63.91-134.1-63.91-39.8 0-74.19 9.13-99.43 26.39-14.9 10.19-26.2 22.91-33.7 37.72C114 160.65 112 141 112 112.46c0-8.61-6.6-16-15.2-16.44A16 16 0 0080 112c0 37.63 2.61 73.73 32.44 101.63q-.43 5.06-.44 10.3v48.2H48.45c-8.61 0-16 6.62-16.43 15.23a16 16 0 0016 16.77h64V320a143.32 143.32 0 0010.39 53.69C96.74 396.64 80.18 422 80 463.34c0 8.74 6.62 16.3 15.36 16.65A16 16 0 00112 464c0-27.66 9.1-44.71 26.17-61.32A144.37 144.37 0 00220 459.42a16 16 0 0020-15.49V192.45c0-8.61 6.62-16 15.23-16.43A16 16 0 01272 192v251.93a16 16 0 0020 15.49 144.4 144.4 0 0081.82-56.74c17 16.54 26.09 33.52 26.17 60.95a16.27 16.27 0 0015.1 16.37A16 16 0 00432 464c0-41.68-16.6-67.23-42.39-90.31A143.32 143.32 0 00400 320v-15.87h64a16 16 0 0016-16.77c-.42-8.61-7.84-15.23-16.45-15.23z"/><path d="M321.39 104l.32.09c13.57 3.8 25.07-10.55 18.2-22.85A95.86 95.86 0 00256.21 32h-.42a95.87 95.87 0 00-84.19 50.13c-6.84 12.58 5.14 27 18.84 22.86 19.71-6 41.79-9.06 65.56-9.06 24.09 0 46.09 2.72 65.39 8.07z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/build-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/build-outline.svg deleted file mode 100644 index 80a564680f31a949328c7050405417f06f69694c..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/build-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Build</title><path d="M393.87 190a32.1 32.1 0 01-45.25 0l-26.57-26.57a32.09 32.09 0 010-45.26L382.19 58a1 1 0 00-.3-1.64c-38.82-16.64-89.15-8.16-121.11 23.57-30.58 30.35-32.32 76-21.12 115.84a31.93 31.93 0 01-9.06 32.08L64 380a48.17 48.17 0 1068 68l153.86-167a31.93 31.93 0 0131.6-9.13c39.54 10.59 84.54 8.6 114.72-21.19 32.49-32 39.5-88.56 23.75-120.93a1 1 0 00-1.6-.26z" stroke-linecap="round" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="96" cy="416" r="16"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/build-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/build-sharp.svg deleted file mode 100644 index 9078c67d1f4727a59e226a20a495bac6094902ba..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/build-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Build</title><path d="M230 209.2L32 405.58 106.65 480l197.59-198.17c46.47 17.46 105.52 12.54 143-24.78 40.44-40.32 40.35-108 16.81-156.79l-87.33 87.06-52.32-52.13 87.33-87.06C363 24.46 294.67 24.34 254.23 64.66c-38.03 37.91-42.78 97.6-24.23 144.54z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/build.svg b/ionic/platforms/android/app/src/main/assets/www/svg/build.svg deleted file mode 100644 index 35fb22ed80f6881fea0d7a352ffae7e6f783c6aa..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/build.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Build</title><path d="M469.54 120.52a16 16 0 00-25.54-4L382.56 178a16.12 16.12 0 01-22.63 0l-26.56-26.6a16 16 0 010-22.63l61.18-61.19a16 16 0 00-4.78-25.92C343.56 21 285.88 31.78 249.51 67.88c-30.9 30.68-40.11 78.62-25.25 131.53a15.89 15.89 0 01-4.49 16L53.29 367.46a64.17 64.17 0 1090.6 90.64l153.68-166.85a15.9 15.9 0 0115.77-4.57 179.3 179.3 0 0046.22 6.37c33.4 0 62.71-10.81 83.85-31.64 39.15-38.57 45.12-103.99 26.13-140.89zM99.48 447.15a32 32 0 1128.34-28.35 32 32 0 01-28.34 28.35z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/bulb-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/bulb-outline.svg deleted file mode 100644 index 86fd6945070d3427e2e0fd4a08cfcd024b2c4656..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/bulb-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Bulb</title><path d="M304 384v-24c0-29 31.54-56.43 52-76 28.84-27.57 44-64.61 44-108 0-80-63.73-144-144-144a143.6 143.6 0 00-144 144c0 41.84 15.81 81.39 44 108 20.35 19.21 52 46.7 52 76v24M224 480h64M208 432h96M256 384V256" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M294 240s-21.51 16-38 16-38-16-38-16" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/bulb-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/bulb-sharp.svg deleted file mode 100644 index 3b5fd3dc17ae6c710fbfb553ed3fdea064d73eea..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/bulb-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Bulb</title><path d="M208 464h96v32h-96zM192 416h128v32H192zM369.42 62.69C339.35 32.58 299.07 16 256 16A159.62 159.62 0 0096 176c0 46.62 17.87 90.23 49 119.64l4.36 4.09C167.37 316.57 192 339.64 192 360v40h48V269.11L195.72 244 214 217.72 256 240l41.29-22.39 19.1 25.68-44.39 26V400h48v-40c0-19.88 24.36-42.93 42.15-59.77l4.91-4.66C399.08 265 416 223.61 416 176a159.16 159.16 0 00-46.58-113.31z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/bulb.svg b/ionic/platforms/android/app/src/main/assets/www/svg/bulb.svg deleted file mode 100644 index 3839332f1da217d689ccf1783c7b06b2a7d83b8a..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/bulb.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Bulb</title><path d="M288 464h-64a16 16 0 000 32h64a16 16 0 000-32zM304 416h-96a16 16 0 000 32h96a16 16 0 000-32zM369.42 62.69C339.35 32.58 299.07 16 256 16A159.62 159.62 0 0096 176c0 46.62 17.87 90.23 49 119.64l4.36 4.09C167.37 316.57 192 339.64 192 360v24a16 16 0 0016 16h24a8 8 0 008-8V274.82a8 8 0 00-5.13-7.47A130.73 130.73 0 01208.71 253a16 16 0 1118.58-26c7.4 5.24 21.65 13 28.71 13s21.31-7.78 28.73-13a16 16 0 0118.56 26 130.73 130.73 0 01-26.16 14.32 8 8 0 00-5.13 7.47V392a8 8 0 008 8h24a16 16 0 0016-16v-24c0-19.88 24.36-42.93 42.15-59.77l4.91-4.66C399.08 265 416 223.61 416 176a159.16 159.16 0 00-46.58-113.31z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/bus-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/bus-outline.svg deleted file mode 100644 index db6a19c52c8e875b4a98b9cf775b7b23ba3dfd28..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/bus-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Bus</title><rect x="80" y="112" width="352" height="192" rx="32" ry="32" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><rect x="80" y="304" width="352" height="128" rx="32" ry="32" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M400 112H112a32.09 32.09 0 01-32-32h0a32.09 32.09 0 0132-32h288a32.09 32.09 0 0132 32h0a32.09 32.09 0 01-32 32zM144 432v22a10 10 0 01-10 10h-28a10 10 0 01-10-10v-22zM416 432v22a10 10 0 01-10 10h-28a10 10 0 01-10-10v-22z" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="368" cy="368" r="16" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="144" cy="368" r="16" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-linejoin="round" d="M256 112v192M80 80v288M432 80v288" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/bus-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/bus-sharp.svg deleted file mode 100644 index 8caa36a55290a0f5febe844ed08707352058b996..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/bus-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Bus</title><path d="M400 64H112a16 16 0 000 32h288a16 16 0 000-32z" class="ionicon-fill-none"/><path d="M424 32H88a24 24 0 00-24 24v360a32 32 0 0016 27.71V480h72v-32h208v32h72v-36.29A32 32 0 00448 416V56a24 24 0 00-24-24zM175.82 371.47a32 32 0 11-35.3-35.29 32.09 32.09 0 0135.3 35.29zM240 288H96V128h144zm16-192H96.46L96 64h320l-.46 32H256zm16 32h144v160H272zm64.18 236.53a32 32 0 1135.3 35.29 32.09 32.09 0 01-35.3-35.29z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/bus.svg b/ionic/platforms/android/app/src/main/assets/www/svg/bus.svg deleted file mode 100644 index a3a79c3902fb5ce6b88ae50882420982e58f9b92..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/bus.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Bus</title><path d="M400 32H112a48 48 0 00-48 48v320a47.91 47.91 0 0016 35.74V454a26 26 0 0026 26h28a26 26 0 0026-26v-6h192v6a26 26 0 0026 26h28a26 26 0 0026-26v-18.26A47.91 47.91 0 00448 400V80a48 48 0 00-48-48zM147.47 399.82a32 32 0 1128.35-28.35 32 32 0 01-28.35 28.35zM236 288H112a16 16 0 01-16-16V144a16 16 0 0116-16h124a4 4 0 014 4v152a4 4 0 01-4 4zm20-192H112.46c-8.6 0-16-6.6-16.44-15.19A16 16 0 01112 64h287.54c8.6 0 16 6.6 16.44 15.19A16 16 0 01400 96H256zm20 32h124a16 16 0 0116 16v128a16 16 0 01-16 16H276a4 4 0 01-4-4V132a4 4 0 014-4zm60.18 243.47a32 32 0 1128.35 28.35 32 32 0 01-28.35-28.35z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/business-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/business-outline.svg deleted file mode 100644 index 39093b28390a666140316f0edbc03f4639793dbe..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/business-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Business</title><path stroke-linecap="round" stroke-linejoin="round" d="M176 416v64M80 32h192a32 32 0 0132 32v412a4 4 0 01-4 4H48h0V64a32 32 0 0132-32zM320 192h112a32 32 0 0132 32v256h0-160 0V208a16 16 0 0116-16z" class="ionicon-fill-none ionicon-stroke-width"/><path d="M98.08 431.87a16 16 0 1113.79-13.79 16 16 0 01-13.79 13.79zM98.08 351.87a16 16 0 1113.79-13.79 16 16 0 01-13.79 13.79zM98.08 271.87a16 16 0 1113.79-13.79 16 16 0 01-13.79 13.79zM98.08 191.87a16 16 0 1113.79-13.79 16 16 0 01-13.79 13.79zM98.08 111.87a16 16 0 1113.79-13.79 16 16 0 01-13.79 13.79zM178.08 351.87a16 16 0 1113.79-13.79 16 16 0 01-13.79 13.79zM178.08 271.87a16 16 0 1113.79-13.79 16 16 0 01-13.79 13.79zM178.08 191.87a16 16 0 1113.79-13.79 16 16 0 01-13.79 13.79zM178.08 111.87a16 16 0 1113.79-13.79 16 16 0 01-13.79 13.79zM258.08 431.87a16 16 0 1113.79-13.79 16 16 0 01-13.79 13.79zM258.08 351.87a16 16 0 1113.79-13.79 16 16 0 01-13.79 13.79zM258.08 271.87a16 16 0 1113.79-13.79 16 16 0 01-13.79 13.79z"/><ellipse cx="256" cy="176" rx="15.95" ry="16.03" transform="rotate(-45 255.99 175.996)"/><path d="M258.08 111.87a16 16 0 1113.79-13.79 16 16 0 01-13.79 13.79zM400 400a16 16 0 1016 16 16 16 0 00-16-16zM400 320a16 16 0 1016 16 16 16 0 00-16-16zM400 240a16 16 0 1016 16 16 16 0 00-16-16zM336 400a16 16 0 1016 16 16 16 0 00-16-16zM336 320a16 16 0 1016 16 16 16 0 00-16-16zM336 240a16 16 0 1016 16 16 16 0 00-16-16z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/business-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/business-sharp.svg deleted file mode 100644 index ddf342085c25e4d55fb54e20ce7afa87e8a11485..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/business-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Business</title><path d="M320 176V16H32v480h128v-96h32v96h288V176zM112 432H80v-32h32zm0-80H80v-32h32zm0-80H80v-32h32zm0-80H80v-32h32zm0-80H80V80h32zm128-32h32v32h-32zm-48 272h-32v-32h32zm0-80h-32v-32h32zm0-80h-32v-32h32zm0-80h-32V80h32zm80 320h-32v-32h32zm0-80h-32v-32h32zm0-80h-32v-32h32zm0-80h-32v-32h32v32zm176 272H320v-32h32v-32h-32v-48h32v-32h-32v-48h32v-32h-32v-32h128z"/><path d="M384 400h32v32h-32zM384 320h32v32h-32zM384 240h32v32h-32z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/business.svg b/ionic/platforms/android/app/src/main/assets/www/svg/business.svg deleted file mode 100644 index 700994da5ae23aa6adf60509861c3c87ffacbc5e..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/business.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Business</title><path d="M432 176H320V64a48 48 0 00-48-48H80a48 48 0 00-48 48v416a16 16 0 0016 16h104a8 8 0 008-8v-71.55c0-8.61 6.62-16 15.23-16.43A16 16 0 01192 416v72a8 8 0 008 8h264a16 16 0 0016-16V224a48 48 0 00-48-48zM98.08 431.87a16 16 0 1113.79-13.79 16 16 0 01-13.79 13.79zm0-80a16 16 0 1113.79-13.79 16 16 0 01-13.79 13.79zm0-80a16 16 0 1113.79-13.79 16 16 0 01-13.79 13.79zm0-80a16 16 0 1113.79-13.79 16 16 0 01-13.79 13.79zm0-80a16 16 0 1113.79-13.79 16 16 0 01-13.79 13.79zm80 240a16 16 0 1113.79-13.79 16 16 0 01-13.79 13.79zm0-80a16 16 0 1113.79-13.79 16 16 0 01-13.79 13.79zm0-80a16 16 0 1113.79-13.79 16 16 0 01-13.79 13.79zm0-80a16 16 0 1113.79-13.79 16 16 0 01-13.79 13.79zm80 320a16 16 0 1113.79-13.79 16 16 0 01-13.79 13.79zm0-80a16 16 0 1113.79-13.79 16 16 0 01-13.79 13.79zm0-80a16 16 0 1113.79-13.79 16 16 0 01-13.79 13.79zm0-80a16 16 0 1113.79-13.79 16 16 0 01-13.79 13.79zm0-80a16 16 0 1113.79-13.79 16 16 0 01-13.79 13.79zM444 464H320V208h112a16 16 0 0116 16v236a4 4 0 01-4 4z"/><path d="M400 400a16 16 0 1016 16 16 16 0 00-16-16zM400 320a16 16 0 1016 16 16 16 0 00-16-16zM400 240a16 16 0 1016 16 16 16 0 00-16-16zM336 400a16 16 0 1016 16 16 16 0 00-16-16zM336 320a16 16 0 1016 16 16 16 0 00-16-16zM336 240a16 16 0 1016 16 16 16 0 00-16-16z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/cafe-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/cafe-outline.svg deleted file mode 100644 index 37c825ec1cebca7f8928e1f83368b585d3ae961c..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/cafe-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Cafe</title><path d="M368 80h64a16 16 0 0116 16v34a46 46 0 01-46 46h-34M96 80h272v192a80 80 0 01-80 80H176a80 80 0 01-80-80V80h0zM64 416h336" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/cafe-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/cafe-sharp.svg deleted file mode 100644 index eade1af20e8fbb0ec5773e765072ba1893ea1c9f..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/cafe-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Cafe</title><path d="M448 64H80v254.34a19.83 19.83 0 005.86 14.14l29.65 29.66a19.87 19.87 0 0014.15 5.86h204.68a19.87 19.87 0 0014.15-5.86l29.65-29.66a19.83 19.83 0 005.86-14.14V192h32a16 16 0 0011.31-4.69l32-32A16 16 0 00464 144V80a16 16 0 00-16-16zm-16 73.37L409.37 160H384V96h48zM48 400h368v32H48z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/cafe.svg b/ionic/platforms/android/app/src/main/assets/www/svg/cafe.svg deleted file mode 100644 index 6853b0396c6904202261c70d91ac3b7c5e11b6a5..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/cafe.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Cafe</title><path d="M432 64H96a16 16 0 00-16 16v192a96.11 96.11 0 0096 96h112a96.11 96.11 0 0096-96v-80h18a62.07 62.07 0 0062-62V96a32 32 0 00-32-32zm0 66a30 30 0 01-30 30h-18V96h48zM400 400H64a16 16 0 000 32h336a16 16 0 000-32z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/calculator-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/calculator-outline.svg deleted file mode 100644 index 1a8e1c189669fe27142ce16eefa42b330d01ba8c..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/calculator-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Calculator</title><rect x="112" y="48" width="288" height="416" rx="32" ry="32" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-linejoin="round" d="M160.01 112H352v64H160.01z" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="168" cy="248" r="24"/><circle cx="256" cy="248" r="24"/><circle cx="344" cy="248" r="24"/><circle cx="168" cy="328" r="24"/><circle cx="256" cy="328" r="24"/><circle cx="168" cy="408" r="24"/><circle cx="256" cy="408" r="24"/><rect x="320" y="304" width="48" height="128" rx="24" ry="24"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/calculator-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/calculator-sharp.svg deleted file mode 100644 index 6376148a25c2baa361847d27cc82cc5755af9343..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/calculator-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Calculator</title><path d="M416 48a16 16 0 00-16-16H112a16 16 0 00-16 16v416a16 16 0 0016 16h288a16 16 0 0016-16zM192 432h-48v-48h48zm0-80h-48v-48h48zm0-80h-48v-48h48zm88 160h-48v-48h48zm0-80h-48v-48h48zm0-80h-48v-48h48zm88 160h-48V304h48zm0-160h-48v-48h48zm0-96H144V80h224z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/calculator.svg b/ionic/platforms/android/app/src/main/assets/www/svg/calculator.svg deleted file mode 100644 index e3775835dfec0d3c55048985e5cc86085b2840bd..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/calculator.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Calculator</title><path d="M416 80a48.05 48.05 0 00-48-48H144a48.05 48.05 0 00-48 48v352a48.05 48.05 0 0048 48h224a48.05 48.05 0 0048-48zM168 432a24 24 0 1124-24 24 24 0 01-24 24zm0-80a24 24 0 1124-24 24 24 0 01-24 24zm0-80a24 24 0 1124-24 24 24 0 01-24 24zm88 160a24 24 0 1124-24 24 24 0 01-24 24zm0-80a24 24 0 1124-24 24 24 0 01-24 24zm0-80a24 24 0 1124-24 24 24 0 01-24 24zm112 136a24 24 0 01-48 0v-80a24 24 0 0148 0zm-24-136a24 24 0 1124-24 24 24 0 01-24 24zm19.31-100.69A16 16 0 01352 176H160a16 16 0 01-16-16V96a16 16 0 0116-16h192a16 16 0 0116 16v64a16 16 0 01-4.69 11.31z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/calendar-clear-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/calendar-clear-outline.svg deleted file mode 100644 index fbb85a3c234353376e6ebc843eee5bd0bab3d4b7..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/calendar-clear-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Calendar Clear</title><rect stroke-linejoin="round" x="48" y="80" width="416" height="384" rx="48" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linejoin="round" stroke-linecap="round" d="M128 48v32M384 48v32M464 160H48" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/calendar-clear-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/calendar-clear-sharp.svg deleted file mode 100644 index 682aa2de838a97dd7e1e30202f29efe4897232cb..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/calendar-clear-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Calendar Clear</title><path d="M32 456a24 24 0 0024 24h400a24 24 0 0024-24V192H32zM480 87.77A23.8 23.8 0 00456 64h-55.92V32h-48v32H159.92V32h-48v32H56a23.8 23.8 0 00-24 23.77V144h448z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/calendar-clear.svg b/ionic/platforms/android/app/src/main/assets/www/svg/calendar-clear.svg deleted file mode 100644 index 9842851b178fc11fe2bf87f3df92b32ffeb850d6..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/calendar-clear.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Calendar Clear</title><path d="M480 128a64 64 0 00-64-64h-16V48.45c0-8.61-6.62-16-15.23-16.43A16 16 0 00368 48v16H144V48.45c0-8.61-6.62-16-15.23-16.43A16 16 0 00112 48v16H96a64 64 0 00-64 64v12a4 4 0 004 4h440a4 4 0 004-4zM32 416a64 64 0 0064 64h320a64 64 0 0064-64V180a4 4 0 00-4-4H36a4 4 0 00-4 4z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/calendar-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/calendar-outline.svg deleted file mode 100644 index 8e0dc461d20679a3d3cf0ceb3eaa5e701ca89efb..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/calendar-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Calendar</title><rect stroke-linejoin="round" x="48" y="80" width="416" height="384" rx="48" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="296" cy="232" r="24"/><circle cx="376" cy="232" r="24"/><circle cx="296" cy="312" r="24"/><circle cx="376" cy="312" r="24"/><circle cx="136" cy="312" r="24"/><circle cx="216" cy="312" r="24"/><circle cx="136" cy="392" r="24"/><circle cx="216" cy="392" r="24"/><circle cx="296" cy="392" r="24"/><path stroke-linejoin="round" stroke-linecap="round" d="M128 48v32M384 48v32" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linejoin="round" d="M464 160H48" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/calendar-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/calendar-sharp.svg deleted file mode 100644 index fcf2f7816b7043469a3a9d599d0a7b6465a2323c..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/calendar-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Calendar</title><path d="M32 456a24 24 0 0024 24h400a24 24 0 0024-24V176H32zm320-244a4 4 0 014-4h40a4 4 0 014 4v40a4 4 0 01-4 4h-40a4 4 0 01-4-4zm0 80a4 4 0 014-4h40a4 4 0 014 4v40a4 4 0 01-4 4h-40a4 4 0 01-4-4zm-80-80a4 4 0 014-4h40a4 4 0 014 4v40a4 4 0 01-4 4h-40a4 4 0 01-4-4zm0 80a4 4 0 014-4h40a4 4 0 014 4v40a4 4 0 01-4 4h-40a4 4 0 01-4-4zm0 80a4 4 0 014-4h40a4 4 0 014 4v40a4 4 0 01-4 4h-40a4 4 0 01-4-4zm-80-80a4 4 0 014-4h40a4 4 0 014 4v40a4 4 0 01-4 4h-40a4 4 0 01-4-4zm0 80a4 4 0 014-4h40a4 4 0 014 4v40a4 4 0 01-4 4h-40a4 4 0 01-4-4zm-80-80a4 4 0 014-4h40a4 4 0 014 4v40a4 4 0 01-4 4h-40a4 4 0 01-4-4zm0 80a4 4 0 014-4h40a4 4 0 014 4v40a4 4 0 01-4 4h-40a4 4 0 01-4-4zM456 64h-55.92V32h-48v32H159.92V32h-48v32H56a23.8 23.8 0 00-24 23.77V144h448V87.77A23.8 23.8 0 00456 64z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/calendar.svg b/ionic/platforms/android/app/src/main/assets/www/svg/calendar.svg deleted file mode 100644 index 76c7cc82b5379a1cd04cd7321559056fca95df69..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/calendar.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Calendar</title><path d="M480 128a64 64 0 00-64-64h-16V48.45c0-8.61-6.62-16-15.23-16.43A16 16 0 00368 48v16H144V48.45c0-8.61-6.62-16-15.23-16.43A16 16 0 00112 48v16H96a64 64 0 00-64 64v12a4 4 0 004 4h440a4 4 0 004-4zM32 416a64 64 0 0064 64h320a64 64 0 0064-64V179a3 3 0 00-3-3H35a3 3 0 00-3 3zm344-208a24 24 0 11-24 24 24 24 0 0124-24zm0 80a24 24 0 11-24 24 24 24 0 0124-24zm-80-80a24 24 0 11-24 24 24 24 0 0124-24zm0 80a24 24 0 11-24 24 24 24 0 0124-24zm0 80a24 24 0 11-24 24 24 24 0 0124-24zm-80-80a24 24 0 11-24 24 24 24 0 0124-24zm0 80a24 24 0 11-24 24 24 24 0 0124-24zm-80-80a24 24 0 11-24 24 24 24 0 0124-24zm0 80a24 24 0 11-24 24 24 24 0 0124-24z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/call-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/call-outline.svg deleted file mode 100644 index d74ca4f7475d31435d0d5768ced28f92fb09215a..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/call-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Call</title><path d="M451 374c-15.88-16-54.34-39.35-73-48.76-24.3-12.24-26.3-13.24-45.4.95-12.74 9.47-21.21 17.93-36.12 14.75s-47.31-21.11-75.68-49.39-47.34-61.62-50.53-76.48 5.41-23.23 14.79-36c13.22-18 12.22-21 .92-45.3-8.81-18.9-32.84-57-48.9-72.8C119.9 44 119.9 47 108.83 51.6A160.15 160.15 0 0083 65.37C67 76 58.12 84.83 51.91 98.1s-9 44.38 23.07 102.64 54.57 88.05 101.14 134.49S258.5 406.64 310.85 436c64.76 36.27 89.6 29.2 102.91 23s22.18-15 32.83-31a159.09 159.09 0 0013.8-25.8C465 391.17 468 391.17 451 374z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/call-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/call-sharp.svg deleted file mode 100644 index 703b9600a6675d31014921021d51e3080aba26e8..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/call-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Call</title><path d="M478.94 370.14c-5.22-5.56-23.65-22-57.53-43.75-34.13-21.94-59.3-35.62-66.52-38.81a3.83 3.83 0 00-3.92.49c-11.63 9.07-31.21 25.73-32.26 26.63-6.78 5.81-6.78 5.81-12.33 4-9.76-3.2-40.08-19.3-66.5-45.78s-43.35-57.55-46.55-67.3c-1.83-5.56-1.83-5.56 4-12.34.9-1.05 17.57-20.63 26.64-32.25a3.83 3.83 0 00.49-3.92c-3.19-7.23-16.87-32.39-38.81-66.52-21.78-33.87-38.2-52.3-43.76-57.52a3.9 3.9 0 00-3.89-.87 322.35 322.35 0 00-56 25.45A338 338 0 0033.35 92a3.83 3.83 0 00-1.26 3.74c2.09 9.74 12.08 50.4 43.08 106.72 31.63 57.48 53.55 86.93 100 133.22S252 405.21 309.54 436.84c56.32 31 97 41 106.72 43.07a3.86 3.86 0 003.75-1.26A337.73 337.73 0 00454.35 430a322.7 322.7 0 0025.45-56 3.9 3.9 0 00-.86-3.86z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/call.svg b/ionic/platforms/android/app/src/main/assets/www/svg/call.svg deleted file mode 100644 index 1c2b5bd560ffba260e632fe86794ecaa295639ee..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/call.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Call</title><path d="M391 480c-19.52 0-46.94-7.06-88-30-49.93-28-88.55-53.85-138.21-103.38C116.91 298.77 93.61 267.79 61 208.45c-36.84-67-30.56-102.12-23.54-117.13C45.82 73.38 58.16 62.65 74.11 52a176.3 176.3 0 0128.64-15.2c1-.43 1.93-.84 2.76-1.21 4.95-2.23 12.45-5.6 21.95-2 6.34 2.38 12 7.25 20.86 16 18.17 17.92 43 57.83 52.16 77.43 6.15 13.21 10.22 21.93 10.23 31.71 0 11.45-5.76 20.28-12.75 29.81-1.31 1.79-2.61 3.5-3.87 5.16-7.61 10-9.28 12.89-8.18 18.05 2.23 10.37 18.86 41.24 46.19 68.51s57.31 42.85 67.72 45.07c5.38 1.15 8.33-.59 18.65-8.47 1.48-1.13 3-2.3 4.59-3.47 10.66-7.93 19.08-13.54 30.26-13.54h.06c9.73 0 18.06 4.22 31.86 11.18 18 9.08 59.11 33.59 77.14 51.78 8.77 8.84 13.66 14.48 16.05 20.81 3.6 9.53.21 17-2 22-.37.83-.78 1.74-1.21 2.75a176.49 176.49 0 01-15.29 28.58c-10.63 15.9-21.4 28.21-39.38 36.58A67.42 67.42 0 01391 480z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/camera-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/camera-outline.svg deleted file mode 100644 index 01b834252bf77a1724114b03eceff588e2748e15..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/camera-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Camera</title><path d="M350.54 148.68l-26.62-42.06C318.31 100.08 310.62 96 302 96h-92c-8.62 0-16.31 4.08-21.92 10.62l-26.62 42.06C155.85 155.23 148.62 160 140 160H80a32 32 0 00-32 32v192a32 32 0 0032 32h352a32 32 0 0032-32V192a32 32 0 00-32-32h-59c-8.65 0-16.85-4.77-22.46-11.32z" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="256" cy="272" r="80" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-linejoin="round" d="M124 158v-22h-24v22" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/camera-reverse-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/camera-reverse-outline.svg deleted file mode 100644 index bf9c1ef31edc6b7dcc32c360e93acacb6cc208e0..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/camera-reverse-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Camera Reverse</title><path d="M350.54 148.68l-26.62-42.06C318.31 100.08 310.62 96 302 96h-92c-8.62 0-16.31 4.08-21.92 10.62l-26.62 42.06C155.85 155.23 148.62 160 140 160H80a32 32 0 00-32 32v192a32 32 0 0032 32h352a32 32 0 0032-32V192a32 32 0 00-32-32h-59c-8.65 0-16.85-4.77-22.46-11.32z" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-linejoin="round" d="M124 158v-22h-24v22M335.76 285.22v-13.31a80 80 0 00-131-61.6M176 258.78v13.31a80 80 0 00130.73 61.8" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-linejoin="round" d="M196 272l-20-20-20 20M356 272l-20 20-20-20" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/camera-reverse-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/camera-reverse-sharp.svg deleted file mode 100644 index 1ae32f4392a7985e93b2ddb093096dd7933b5138..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/camera-reverse-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Camera Reverse</title><path d="M456 144h-83c-3 0-6.72-1.94-9.62-5l-27.31-42.79C326 80 320 80 302 80h-92c-18 0-23 0-34.07 16.21L148.62 139c-2.22 2.42-5.34 5-8.62 5v-16a8 8 0 00-8-8H92a8 8 0 00-8 8v16H56a24 24 0 00-24 24v240a24 24 0 0024 24h400a24 24 0 0024-24V168a24 24 0 00-24-24zM256 368c-47.82 0-87.76-34.23-95-80h-43.63L176 229.37 234.63 288H194a64.07 64.07 0 00102.63 33.49L320 343l-3.68 3.72A96.64 96.64 0 01256 368zm80-53.84L277.11 256H318a64.26 64.26 0 00-103-33.36L192 200l3.14-2.45A96.19 96.19 0 01255.76 176c47.85 0 87 34.19 94.24 80h44.92z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/camera-reverse.svg b/ionic/platforms/android/app/src/main/assets/www/svg/camera-reverse.svg deleted file mode 100644 index aa83464cbf6ecf620f5f814f83f21b787d78748a..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/camera-reverse.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Camera Reverse</title><path d="M432 144h-59c-3 0-6.72-1.94-9.62-5l-25.94-40.94a15.52 15.52 0 00-1.37-1.85C327.11 85.76 315 80 302 80h-92c-13 0-25.11 5.76-34.07 16.21a15.52 15.52 0 00-1.37 1.85l-25.94 41c-2.22 2.42-5.34 5-8.62 5v-8a16 16 0 00-16-16h-24a16 16 0 00-16 16v8h-4a48.05 48.05 0 00-48 48V384a48.05 48.05 0 0048 48h352a48.05 48.05 0 0048-48V192a48.05 48.05 0 00-48-48zM316.84 346.3a96.06 96.06 0 01-155.66-59.18 16 16 0 01-16.49-26.43l20-20a16 16 0 0122.62 0l20 20A16 16 0 01196 288a17.31 17.31 0 01-2-.14 64.07 64.07 0 00102.66 33.63 16 16 0 1120.21 24.81zm50.47-63l-20 20a16 16 0 01-22.62 0l-20-20a16 16 0 0113.09-27.2A64 64 0 00215 222.64 16 16 0 11194.61 198a96 96 0 01156 59 16 16 0 0116.72 26.35z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/camera-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/camera-sharp.svg deleted file mode 100644 index 028c0f8539970759da879f56a53f0af9ca9b79ff..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/camera-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Camera</title><circle cx="256" cy="272" r="64"/><path d="M456 144h-83c-3 0-6.72-1.94-9.62-5L336.1 96.2C325 80 320 80 302 80h-92c-18 0-24 0-34.07 16.21L148.62 139c-2.22 2.42-5.34 5-8.62 5v-16a8 8 0 00-8-8H92a8 8 0 00-8 8v16H56a24 24 0 00-24 24v240a24 24 0 0024 24h400a24 24 0 0024-24V168a24 24 0 00-24-24zM260.51 367.9a96 96 0 1191.39-91.39 96.11 96.11 0 01-91.39 91.39z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/camera.svg b/ionic/platforms/android/app/src/main/assets/www/svg/camera.svg deleted file mode 100644 index 9f41ef0f91f1b51fb4e001b3306dbb06a4dac081..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/camera.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Camera</title><circle cx="256" cy="272" r="64"/><path d="M432 144h-59c-3 0-6.72-1.94-9.62-5l-25.94-40.94a15.52 15.52 0 00-1.37-1.85C327.11 85.76 315 80 302 80h-92c-13 0-25.11 5.76-34.07 16.21a15.52 15.52 0 00-1.37 1.85l-25.94 41c-2.22 2.42-5.34 5-8.62 5v-8a16 16 0 00-16-16h-24a16 16 0 00-16 16v8h-4a48.05 48.05 0 00-48 48V384a48.05 48.05 0 0048 48h352a48.05 48.05 0 0048-48V192a48.05 48.05 0 00-48-48zM256 368a96 96 0 1196-96 96.11 96.11 0 01-96 96z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/car-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/car-outline.svg deleted file mode 100644 index dd2b51691915729e5691c1e6ff694769251e7be9..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/car-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Car</title><path d="M80 224l37.78-88.15C123.93 121.5 139.6 112 157.11 112h197.78c17.51 0 33.18 9.5 39.33 23.85L432 224M80 224h352v144H80zM112 368v32H80v-32M432 368v32h-32v-32" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="144" cy="288" r="16" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="368" cy="288" r="16" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/car-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/car-sharp.svg deleted file mode 100644 index e90c1c217c8abe98fd2d252fc2031fabb1bbc31c..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/car-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Car</title><path d="M447.68 220.78a16.44 16.44 0 00-1-3.1l-48-112A16 16 0 00384 96H128a16 16 0 00-14.71 9.7l-48 112a16.44 16.44 0 00-1 3.1A16.15 16.15 0 0064 224v184a8 8 0 008 8h32a8 8 0 008-8v-24h288v24a8 8 0 008 8h32a8 8 0 008-8V224a16.15 16.15 0 00-.32-3.22zM144 320a32 32 0 1132-32 32 32 0 01-32 32zm224 0a32 32 0 1132-32 32 32 0 01-32 32zM104.26 208l34.29-80h234.9l34.29 80z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/car-sport-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/car-sport-outline.svg deleted file mode 100644 index d2aae24f6a55d90f998166340beb95a1151b8ede..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/car-sport-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Car Sport</title><path d="M469.71 234.6c-7.33-9.73-34.56-16.43-46.08-33.94s-20.95-55.43-50.27-70S288 112 256 112s-88 4-117.36 18.63-38.75 52.52-50.27 70-38.75 24.24-46.08 33.97S29.8 305.84 32.94 336s9 48 9 48h86c14.08 0 18.66-5.29 47.46-8 31.6-3 62.6-4 80.6-4s50 1 81.58 4c28.8 2.73 33.53 8 47.46 8h85s5.86-17.84 9-48-2.04-91.67-9.33-101.4zM400 384h56v16h-56zM56 384h56v16H56z" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M364.47 309.16c-5.91-6.83-25.17-12.53-50.67-16.35S279 288 256.2 288s-33.17 1.64-57.61 4.81-42.79 8.81-50.66 16.35C136.12 320.6 153.42 333.44 167 335c13.16 1.5 39.47.95 89.31.95s76.15.55 89.31-.95c13.56-1.65 29.62-13.6 18.85-25.84zM431.57 243.05a3.23 3.23 0 00-3.1-3c-11.81-.42-23.8.42-45.07 6.69a93.88 93.88 0 00-30.08 15.06c-2.28 1.78-1.47 6.59 1.39 7.1a455.32 455.32 0 0052.82 3.1c10.59 0 21.52-3 23.55-12.44a52.41 52.41 0 00.49-16.51zM80.43 243.05a3.23 3.23 0 013.1-3c11.81-.42 23.8.42 45.07 6.69a93.88 93.88 0 0130.08 15.06c2.28 1.78 1.47 6.59-1.39 7.1a455.32 455.32 0 01-52.82 3.1c-10.59 0-21.52-3-23.55-12.44a52.41 52.41 0 01-.49-16.51z"/><path stroke-linecap="round" stroke-linejoin="round" d="M432 192h16M64 192h16M78 211s46.35-12 178-12 178 12 178 12" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/car-sport-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/car-sport-sharp.svg deleted file mode 100644 index 32c1ff7807389d9ab83a65b8c2be53ad9593fb58..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/car-sport-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Car Sport</title><path d="M488 224c-3-5-32.61-17.79-32.61-17.79 5.15-2.66 8.67-3.21 8.67-14.21 0-12-.06-16-8.06-16h-27.14c-.11-.24-.23-.49-.34-.74-17.52-38.26-19.87-47.93-46-60.95C347.47 96.88 281.76 96 256 96s-91.47.88-126.49 18.31c-26.16 13-25.51 19.69-46 60.95 0 .11-.21.4-.4.74H55.94c-7.94 0-8 4-8 16 0 11 3.52 11.55 8.67 14.21C56.61 206.21 28 220 24 224s-8 32-8 80 4 96 4 96h11.94c0 14 2.06 16 8.06 16h80c6 0 8-2 8-16h256c0 14 2 16 8 16h82c4 0 6-3 6-16h12s4-49 4-96-5-75-8-80zm-362.74 44.94A516.94 516.94 0 0170.42 272c-20.42 0-21.12 1.31-22.56-11.44a72.16 72.16 0 01.51-17.51L49 240h3c12 0 23.27.51 44.55 6.78a98 98 0 0130.09 15.06C131 265 132 268 132 268zm247.16 72L368 352H144s.39-.61-5-11.18c-4-7.82 1-12.82 8.91-15.66C163.23 319.64 208 304 256 304s93.66 13.48 108.5 21.16C370 328 376.83 330 372.42 341zm-257-136.53a96.23 96.23 0 01-9.7.07c2.61-4.64 4.06-9.81 6.61-15.21 8-17 17.15-36.24 33.44-44.35 23.54-11.72 72.33-17 110.23-17s86.69 5.24 110.23 17c16.29 8.11 25.4 27.36 33.44 44.35 2.57 5.45 4 10.66 6.68 15.33-2 .11-4.3 0-9.79-.19zm347.72 56.11C461 273 463 272 441.58 272a516.94 516.94 0 01-54.84-3.06c-2.85-.51-3.66-5.32-1.38-7.1a93.84 93.84 0 0130.09-15.06c21.28-6.27 33.26-7.11 45.09-6.69a3.22 3.22 0 013.09 3 70.18 70.18 0 01-.49 17.47z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/car-sport.svg b/ionic/platforms/android/app/src/main/assets/www/svg/car-sport.svg deleted file mode 100644 index 517b9aefcbefbdff558305f712074a4600c4852d..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/car-sport.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Car Sport</title><path d="M494.26 276.22c-3.6-40.41-9.53-48.28-11.77-51.24-5.15-6.84-13.39-11.31-22.11-16a3.6 3.6 0 01-.91-5.68 15.93 15.93 0 004.53-12.53A16.27 16.27 0 00447.65 176h-15.6a17 17 0 00-2 .13 8.5 8.5 0 00-1.41-.47c-9.24-19.53-21.89-46.27-48.11-59.32C341.64 97 270 96 256 96s-85.64 1-124.48 20.31c-26.22 13.05-38.87 39.79-48.11 59.32l-.08.16a6.52 6.52 0 00-1.35.34 17 17 0 00-2-.13H64.35A16.27 16.27 0 0048 190.77a15.93 15.93 0 004.59 12.47 3.6 3.6 0 01-.91 5.68c-8.72 4.72-17 9.19-22.11 16-2.24 3-8.16 10.83-11.77 51.24-2 22.74-2.3 46.28-.73 61.44 3.29 31.5 9.46 50.54 9.72 51.33a16 16 0 0013.2 10.87v.2a16 16 0 0016 16h56a16 16 0 0016-16c8.61 0 14.6-1.54 20.95-3.18a158.83 158.83 0 0128-4.91C207.45 389 237.79 388 256 388c17.84 0 49.52 1 80.08 3.91a159.16 159.16 0 0128.11 4.93c6.08 1.56 11.85 3 19.84 3.15a16 16 0 0016 16h56a16 16 0 0016-16v-.12A16 16 0 00485.27 389c.26-.79 6.43-19.83 9.72-51.33 1.57-15.17 1.29-38.67-.73-61.45zm-381.93-86.91c8-17 17.15-36.24 33.44-44.35 23.54-11.72 72.33-17 110.23-17s86.69 5.24 110.23 17c16.29 8.11 25.4 27.36 33.44 44.35l1 2.17a8 8 0 01-7.44 11.42C360 202 290 199.12 256 199.12s-104 2.95-137.28 3.85a8 8 0 01-7.44-11.42c.35-.74.72-1.49 1.05-2.24zm11.93 79.63A427.17 427.17 0 0172.42 272c-10.6 0-21.53-3-23.56-12.44-1.39-6.35-1.24-9.92-.49-13.51C49 243 50 240.78 55 240c13-2 20.27.51 41.55 6.78 14.11 4.15 24.29 9.68 30.09 14.06 2.91 2.16 1.36 7.8-2.38 8.1zm221.38 82c-13.16 1.5-39.48.95-89.34.95s-76.17.55-89.33-.95c-13.58-1.51-30.89-14.35-19.07-25.79 7.87-7.54 26.23-13.18 50.68-16.35s34.8-4.8 57.62-4.8 32.12 1 57.62 4.81 44.77 9.52 50.68 16.35c10.78 12.24-5.29 24.19-18.86 25.84zm117.5-91.39c-2 9.48-13 12.44-23.56 12.44a455.91 455.91 0 01-52.84-3.06c-3.06-.29-4.48-5.66-1.38-8.1 5.71-4.49 16-9.91 30.09-14.06 21.28-6.27 33.55-8.78 44.09-6.69 2.57.51 3.93 3.27 4.09 5a40.64 40.64 0 01-.49 14.48z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/car.svg b/ionic/platforms/android/app/src/main/assets/www/svg/car.svg deleted file mode 100644 index bc609bcaa9657a7512d0fca18f217aa6c1ccca55..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/car.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Car</title><path d="M447.68 220.78a16 16 0 00-1-3.08l-37.78-88.16C400.19 109.17 379 96 354.89 96H157.11c-24.09 0-45.3 13.17-54 33.54L65.29 217.7A15.72 15.72 0 0064 224v176a16 16 0 0016 16h32a16 16 0 0016-16v-16h256v16a16 16 0 0016 16h32a16 16 0 0016-16V224a16.15 16.15 0 00-.32-3.22zM144 320a32 32 0 1132-32 32 32 0 01-32 32zm224 0a32 32 0 1132-32 32 32 0 01-32 32zM104.26 208l28.23-65.85C136.11 133.69 146 128 157.11 128h197.78c11.1 0 21 5.69 24.62 14.15L407.74 208z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/card-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/card-outline.svg deleted file mode 100644 index b8729ef2141fb708e66285a611a67df5e0903c90..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/card-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Card</title><rect x="48" y="96" width="416" height="320" rx="56" ry="56" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linejoin="round" stroke-width="60" d="M48 192h416M128 300h48v20h-48z" class="ionicon-fill-none"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/card-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/card-sharp.svg deleted file mode 100644 index 7fa5894601e56e49e444c1934be6ac897af38f10..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/card-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Card</title><path d="M32 416a16 16 0 0016 16h416a16 16 0 0016-16V222H32zm66-138a8 8 0 018-8h92a8 8 0 018 8v64a8 8 0 01-8 8h-92a8 8 0 01-8-8zM464 80H48a16 16 0 00-16 16v66h448V96a16 16 0 00-16-16z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/card.svg b/ionic/platforms/android/app/src/main/assets/www/svg/card.svg deleted file mode 100644 index 7b41a0129029e9ddabc3655e0ac750d6eef56833..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/card.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Card</title><path d="M32 376a56 56 0 0056 56h336a56 56 0 0056-56V222H32zm66-76a30 30 0 0130-30h48a30 30 0 0130 30v20a30 30 0 01-30 30h-48a30 30 0 01-30-30zM424 80H88a56 56 0 00-56 56v26h448v-26a56 56 0 00-56-56z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/caret-back-circle-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/caret-back-circle-outline.svg deleted file mode 100644 index b300a291d313190075d0cc3b80a81dc16453bc28..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/caret-back-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Caret Back Circle</title><path d="M273.77 169.57l-89.09 74.13a16 16 0 000 24.6l89.09 74.13A16 16 0 00300 330.14V181.86a16 16 0 00-26.23-12.29z"/><path d="M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/caret-back-circle-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/caret-back-circle-sharp.svg deleted file mode 100644 index 80989f0cf1f24b9551664832dce2b4938bf8bf1e..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/caret-back-circle-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Caret Back Circle</title><path d="M48 256c0 114.87 93.13 208 208 208s208-93.13 208-208S370.87 48 256 48 48 141.13 48 256zm252 108.27L169.91 256 300 147.73z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/caret-back-circle.svg b/ionic/platforms/android/app/src/main/assets/www/svg/caret-back-circle.svg deleted file mode 100644 index a3285445c3b0e8cb3134743d5cd855a390f821e4..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/caret-back-circle.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Caret Back Circle</title><path d="M48 256c0 114.87 93.13 208 208 208s208-93.13 208-208S370.87 48 256 48 48 141.13 48 256zm252-74.14v148.28a16 16 0 01-26.23 12.29l-89.09-74.13a16 16 0 010-24.6l89.09-74.13A16 16 0 01300 181.86z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/caret-back-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/caret-back-outline.svg deleted file mode 100644 index 7643a259b97d33b0afa251647ee91e44a0ad6a75..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/caret-back-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Caret Back</title><path d="M321.94 98L158.82 237.78a24 24 0 000 36.44L321.94 414c15.57 13.34 39.62 2.28 39.62-18.22v-279.6c0-20.5-24.05-31.56-39.62-18.18z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/caret-back-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/caret-back-sharp.svg deleted file mode 100644 index 336179aa100b91fe7721ec80de8017682045123e..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/caret-back-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Caret Back</title><path d="M368 64L144 256l224 192V64z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/caret-back.svg b/ionic/platforms/android/app/src/main/assets/www/svg/caret-back.svg deleted file mode 100644 index 7643a259b97d33b0afa251647ee91e44a0ad6a75..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/caret-back.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Caret Back</title><path d="M321.94 98L158.82 237.78a24 24 0 000 36.44L321.94 414c15.57 13.34 39.62 2.28 39.62-18.22v-279.6c0-20.5-24.05-31.56-39.62-18.18z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/caret-down-circle-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/caret-down-circle-outline.svg deleted file mode 100644 index 76124c1ef06ec88fdb8fe9c214cd8b9efa991946..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/caret-down-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Caret Down Circle</title><path d="M342.43 238.23l-74.13 89.09a16 16 0 01-24.6 0l-74.13-89.09A16 16 0 01181.86 212h148.28a16 16 0 0112.29 26.23z"/><path d="M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/caret-down-circle-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/caret-down-circle-sharp.svg deleted file mode 100644 index 0083c2599a550925c4912e6526e4bb036ed00a87..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/caret-down-circle-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Caret Down Circle</title><path d="M464 256c0-114.87-93.13-208-208-208S48 141.13 48 256s93.13 208 208 208 208-93.13 208-208zm-99.73-44L256 342.09 147.73 212z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/caret-down-circle.svg b/ionic/platforms/android/app/src/main/assets/www/svg/caret-down-circle.svg deleted file mode 100644 index c26b020ae827261c8bcc23425a32e45a72480dbb..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/caret-down-circle.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Caret Down Circle</title><path d="M464 256c0-114.87-93.13-208-208-208S48 141.13 48 256s93.13 208 208 208 208-93.13 208-208zm-121.57-17.77l-74.13 89.09a16 16 0 01-24.6 0l-74.13-89.09A16 16 0 01181.86 212h148.28a16 16 0 0112.29 26.23z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/caret-down-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/caret-down-outline.svg deleted file mode 100644 index bfd5aec7b98cc3a03dd69640fa53e567f43a6298..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/caret-down-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Caret Down</title><path d="M98 190.06l139.78 163.12a24 24 0 0036.44 0L414 190.06c13.34-15.57 2.28-39.62-18.22-39.62h-279.6c-20.5 0-31.56 24.05-18.18 39.62z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/caret-down-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/caret-down-sharp.svg deleted file mode 100644 index 893af938adb8c447139236151249df08a7952045..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/caret-down-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Caret Down</title><path d="M64 144l192 224 192-224H64z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/caret-down.svg b/ionic/platforms/android/app/src/main/assets/www/svg/caret-down.svg deleted file mode 100644 index bfd5aec7b98cc3a03dd69640fa53e567f43a6298..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/caret-down.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Caret Down</title><path d="M98 190.06l139.78 163.12a24 24 0 0036.44 0L414 190.06c13.34-15.57 2.28-39.62-18.22-39.62h-279.6c-20.5 0-31.56 24.05-18.18 39.62z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/caret-forward-circle-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/caret-forward-circle-outline.svg deleted file mode 100644 index 7110e43a4d33201976741f36c794d5538bc227af..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/caret-forward-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Caret Forward Circle</title><path d="M238.23 342.43l89.09-74.13a16 16 0 000-24.6l-89.09-74.13A16 16 0 00212 181.86v148.28a16 16 0 0026.23 12.29z"/><path d="M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/caret-forward-circle-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/caret-forward-circle-sharp.svg deleted file mode 100644 index 03ca19071811023d0830f56df6032ebccc6ea297..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/caret-forward-circle-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Caret Forward Circle</title><path d="M464 256c0-114.87-93.13-208-208-208S48 141.13 48 256s93.13 208 208 208 208-93.13 208-208zM212 147.73L342.09 256 212 364.27z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/caret-forward-circle.svg b/ionic/platforms/android/app/src/main/assets/www/svg/caret-forward-circle.svg deleted file mode 100644 index e2bf87b4245a006456fa2da02f85770061cd8fd0..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/caret-forward-circle.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Caret Forward Circle</title><path d="M464 256c0-114.87-93.13-208-208-208S48 141.13 48 256s93.13 208 208 208 208-93.13 208-208zm-252 74.14V181.86a16 16 0 0126.23-12.29l89.09 74.13a16 16 0 010 24.6l-89.09 74.13A16 16 0 01212 330.14z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/caret-forward-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/caret-forward-outline.svg deleted file mode 100644 index 61bd003516753cda9ac83a4d3bc881adb07ae9a1..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/caret-forward-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Caret Forward</title><path d="M190.06 414l163.12-139.78a24 24 0 000-36.44L190.06 98c-15.57-13.34-39.62-2.28-39.62 18.22v279.6c0 20.5 24.05 31.56 39.62 18.18z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/caret-forward-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/caret-forward-sharp.svg deleted file mode 100644 index 0b695bea835547eddc38dace1e9894a9fdeab898..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/caret-forward-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Caret Forward</title><path d="M144 448l224-192L144 64v384z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/caret-forward.svg b/ionic/platforms/android/app/src/main/assets/www/svg/caret-forward.svg deleted file mode 100644 index 61bd003516753cda9ac83a4d3bc881adb07ae9a1..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/caret-forward.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Caret Forward</title><path d="M190.06 414l163.12-139.78a24 24 0 000-36.44L190.06 98c-15.57-13.34-39.62-2.28-39.62 18.22v279.6c0 20.5 24.05 31.56 39.62 18.18z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/caret-up-circle-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/caret-up-circle-outline.svg deleted file mode 100644 index 31daa53cc2efb4105f3b04775bd7a83412e38499..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/caret-up-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Caret Up Circle</title><path d="M342.43 273.77l-74.13-89.09a16 16 0 00-24.6 0l-74.13 89.09A16 16 0 00181.86 300h148.28a16 16 0 0012.29-26.23z"/><path d="M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/caret-up-circle-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/caret-up-circle-sharp.svg deleted file mode 100644 index 8143883f903f7837a9001cc2d933ccd42b2377dc..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/caret-up-circle-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Caret Up Circle</title><path d="M256 48C141.13 48 48 141.13 48 256s93.13 208 208 208 208-93.13 208-208S370.87 48 256 48zM147.73 300L256 169.91 364.27 300z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/caret-up-circle.svg b/ionic/platforms/android/app/src/main/assets/www/svg/caret-up-circle.svg deleted file mode 100644 index 5558194ff85fd9ef9a846c1035143a9d147e5814..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/caret-up-circle.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Caret Up Circle</title><path d="M256 48C141.13 48 48 141.13 48 256s93.13 208 208 208 208-93.13 208-208S370.87 48 256 48zm74.14 252H181.86a16 16 0 01-12.29-26.23l74.13-89.09a16 16 0 0124.6 0l74.13 89.09A16 16 0 01330.14 300z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/caret-up-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/caret-up-outline.svg deleted file mode 100644 index c4728347e4673e3b0a87a1bc3d10e9744f10148b..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/caret-up-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Caret Up</title><path d="M414 321.94L274.22 158.82a24 24 0 00-36.44 0L98 321.94c-13.34 15.57-2.28 39.62 18.22 39.62h279.6c20.5 0 31.56-24.05 18.18-39.62z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/caret-up-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/caret-up-sharp.svg deleted file mode 100644 index 1c8dca9d2337c85bc3b155d2c19e877009eef41e..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/caret-up-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Caret Up</title><path d="M448 368L256 144 64 368h384z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/caret-up.svg b/ionic/platforms/android/app/src/main/assets/www/svg/caret-up.svg deleted file mode 100644 index c4728347e4673e3b0a87a1bc3d10e9744f10148b..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/caret-up.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Caret Up</title><path d="M414 321.94L274.22 158.82a24 24 0 00-36.44 0L98 321.94c-13.34 15.57-2.28 39.62 18.22 39.62h279.6c20.5 0 31.56-24.05 18.18-39.62z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/cart-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/cart-outline.svg deleted file mode 100644 index 8b8c202c93b9b41e7ed62157bc33c71f48fd3730..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/cart-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Cart</title><circle cx="176" cy="416" r="16" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="400" cy="416" r="16" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-linejoin="round" d="M48 80h64l48 272h256" class="ionicon-fill-none ionicon-stroke-width"/><path d="M160 288h249.44a8 8 0 007.85-6.43l28.8-144a8 8 0 00-7.85-9.57H128" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/cart-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/cart-sharp.svg deleted file mode 100644 index 7aff5996bd50788008b22f4df8d600790a4d31ba..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/cart-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Cart</title><circle cx="176" cy="416" r="32"/><circle cx="400" cy="416" r="32"/><path d="M167.78 304h261.34l38.4-192H133.89l-8.47-48H32v32h66.58l48 272H432v-32H173.42l-5.64-32z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/cart.svg b/ionic/platforms/android/app/src/main/assets/www/svg/cart.svg deleted file mode 100644 index aec26b277f6d39a9c0a3a8791b7dc48db2d07fa0..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/cart.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Cart</title><circle cx="176" cy="416" r="32"/><circle cx="400" cy="416" r="32"/><path d="M456.8 120.78a23.92 23.92 0 00-18.56-8.78H133.89l-6.13-34.78A16 16 0 00112 64H48a16 16 0 000 32h50.58l45.66 258.78A16 16 0 00160 368h256a16 16 0 000-32H173.42l-5.64-32h241.66A24.07 24.07 0 00433 284.71l28.8-144a24 24 0 00-5-19.93z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/cash-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/cash-outline.svg deleted file mode 100644 index b8eed42f4e58734be693508af5e37a6de2bec4be..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/cash-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Cash</title><rect x="32" y="80" width="448" height="256" rx="16" ry="16" transform="rotate(180 256 208)" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-linejoin="round" d="M64 384h384M96 432h320" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="256" cy="208" r="80" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M480 160a80 80 0 01-80-80M32 160a80 80 0 0080-80M480 256a80 80 0 00-80 80M32 256a80 80 0 0180 80" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/cash-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/cash-sharp.svg deleted file mode 100644 index 46906964951000069c70c4ab2ff41d58b557646e..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/cash-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Cash</title><path d="M48 368h416v32H48zM80 416h352v32H80zM480 176a96.11 96.11 0 01-96-96V64H128v16a96.11 96.11 0 01-96 96H16v64h16a96.11 96.11 0 0196 96v16h256v-16a96.11 96.11 0 0196-96h16v-64zM256 304a96 96 0 1196-96 96.11 96.11 0 01-96 96z"/><path d="M96 80V64H16v80h16a64.07 64.07 0 0064-64zM32 272H16v80h80v-16a64.07 64.07 0 00-64-64zM480 144h16V64h-80v16a64.07 64.07 0 0064 64zM416 336v16h80v-80h-16a64.07 64.07 0 00-64 64z"/><circle cx="256" cy="208" r="64"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/cash.svg b/ionic/platforms/android/app/src/main/assets/www/svg/cash.svg deleted file mode 100644 index 1a6a19b66decc36baf889064074b77e0bd830893..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/cash.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Cash</title><path d="M448 400H64a16 16 0 010-32h384a16 16 0 010 32zM416 448H96a16 16 0 010-32h320a16 16 0 010 32zM32 272H16v48a32 32 0 0032 32h48v-16a64.07 64.07 0 00-64-64z"/><path d="M480 240h16v-64h-16a96.11 96.11 0 01-96-96V64H128v16a96.11 96.11 0 01-96 96H16v64h16a96.11 96.11 0 0196 96v16h256v-16a96.11 96.11 0 0196-96zm-224 64a96 96 0 1196-96 96.11 96.11 0 01-96 96z"/><circle cx="256" cy="208" r="64"/><path d="M416 336v16h48a32 32 0 0032-32v-48h-16a64.07 64.07 0 00-64 64zM480 144h16V96a32 32 0 00-32-32h-48v16a64.07 64.07 0 0064 64zM96 80V64H48a32 32 0 00-32 32v48h16a64.07 64.07 0 0064-64z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/cellular-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/cellular-outline.svg deleted file mode 100644 index 2173e19dc7a7701aa183b68697b724f76e7c963d..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/cellular-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Cellular</title><rect x="416" y="96" width="64" height="320" rx="8" ry="8" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><rect x="288" y="176" width="64" height="240" rx="8" ry="8" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><rect x="160" y="240" width="64" height="176" rx="8" ry="8" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><rect x="32" y="304" width="64" height="112" rx="8" ry="8" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/cellular-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/cellular-sharp.svg deleted file mode 100644 index 18a45a5863a3efa5a0002fd3b2a18004cde5c9ed..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/cellular-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Cellular</title><path d="M496 432h-96V80h96zM368 432h-96V160h96zM240 432h-96V224h96zM112 432H16V288h96z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/cellular.svg b/ionic/platforms/android/app/src/main/assets/www/svg/cellular.svg deleted file mode 100644 index 7386d0d39191e37c7b6bda464a1e4a77962e7559..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/cellular.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Cellular</title><path d="M472 432h-48a24 24 0 01-24-24V104a24 24 0 0124-24h48a24 24 0 0124 24v304a24 24 0 01-24 24zM344 432h-48a24 24 0 01-24-24V184a24 24 0 0124-24h48a24 24 0 0124 24v224a24 24 0 01-24 24zM216 432h-48a24 24 0 01-24-24V248a24 24 0 0124-24h48a24 24 0 0124 24v160a24 24 0 01-24 24zM88 432H40a24 24 0 01-24-24v-96a24 24 0 0124-24h48a24 24 0 0124 24v96a24 24 0 01-24 24z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/chatbox-ellipses-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/chatbox-ellipses-outline.svg deleted file mode 100644 index 7de26726fb7eb27b2b14fbab96875ea7ee72396a..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/chatbox-ellipses-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Chatbox Ellipses</title><path d="M408 64H104a56.16 56.16 0 00-56 56v192a56.16 56.16 0 0056 56h40v80l93.72-78.14a8 8 0 015.13-1.86H408a56.16 56.16 0 0056-56V120a56.16 56.16 0 00-56-56z" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="160" cy="216" r="32"/><circle cx="256" cy="216" r="32"/><circle cx="352" cy="216" r="32"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/chatbox-ellipses-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/chatbox-ellipses-sharp.svg deleted file mode 100644 index 0665f69b63fd3358836f1ff53ef5ed5cb0958234..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/chatbox-ellipses-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Chatbox Ellipses</title><path d="M456 48H56a24 24 0 00-24 24v288a24 24 0 0024 24h72v80l117.74-80H456a24 24 0 0024-24V72a24 24 0 00-24-24zM160 248a32 32 0 1132-32 32 32 0 01-32 32zm96 0a32 32 0 1132-32 32 32 0 01-32 32zm96 0a32 32 0 1132-32 32 32 0 01-32 32zM456 80z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/chatbox-ellipses.svg b/ionic/platforms/android/app/src/main/assets/www/svg/chatbox-ellipses.svg deleted file mode 100644 index 6ed661cb22b8a239587bd4675657735b489b7cdf..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/chatbox-ellipses.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Chatbox Ellipses</title><path d="M408 48H104a72.08 72.08 0 00-72 72v192a72.08 72.08 0 0072 72h24v64a16 16 0 0026.25 12.29L245.74 384H408a72.08 72.08 0 0072-72V120a72.08 72.08 0 00-72-72zM160 248a32 32 0 1132-32 32 32 0 01-32 32zm96 0a32 32 0 1132-32 32 32 0 01-32 32zm96 0a32 32 0 1132-32 32 32 0 01-32 32z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/chatbox-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/chatbox-outline.svg deleted file mode 100644 index afa46255ee05000ec5415c237e92173ef0a6a8a9..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/chatbox-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Chatbox</title><path d="M408 64H104a56.16 56.16 0 00-56 56v192a56.16 56.16 0 0056 56h40v80l93.72-78.14a8 8 0 015.13-1.86H408a56.16 56.16 0 0056-56V120a56.16 56.16 0 00-56-56z" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/chatbox-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/chatbox-sharp.svg deleted file mode 100644 index e38c6c2e9234f1e1080f3d482cca5364c335438a..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/chatbox-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Chatbox</title><path d="M128 464v-80H56a24 24 0 01-24-24V72a24 24 0 0124-24h400a24 24 0 0124 24v288a24 24 0 01-24 24H245.74zM456 80z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/chatbox.svg b/ionic/platforms/android/app/src/main/assets/www/svg/chatbox.svg deleted file mode 100644 index 07b93fbaea712df8402a9a83c2802cf043fb94fc..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/chatbox.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Chatbox</title><path d="M144 464a16 16 0 01-16-16v-64h-24a72.08 72.08 0 01-72-72V120a72.08 72.08 0 0172-72h304a72.08 72.08 0 0172 72v192a72.08 72.08 0 01-72 72H245.74l-91.49 76.29A16.05 16.05 0 01144 464z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/chatbubble-ellipses-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/chatbubble-ellipses-outline.svg deleted file mode 100644 index 737c1db426f08bb978ac5ac72e06793e5ec01152..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/chatbubble-ellipses-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Chatbubble Ellipses</title><path d="M87.48 380c1.2-4.38-1.43-10.47-3.94-14.86a42.63 42.63 0 00-2.54-3.8 199.81 199.81 0 01-33-110C47.64 139.09 140.72 48 255.82 48 356.2 48 440 117.54 459.57 209.85a199 199 0 014.43 41.64c0 112.41-89.49 204.93-204.59 204.93-18.31 0-43-4.6-56.47-8.37s-26.92-8.77-30.39-10.11a31.14 31.14 0 00-11.13-2.07 30.7 30.7 0 00-12.08 2.43L81.5 462.78a15.92 15.92 0 01-4.66 1.22 9.61 9.61 0 01-9.58-9.74 15.85 15.85 0 01.6-3.29z" stroke-linecap="round" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="160" cy="256" r="32"/><circle cx="256" cy="256" r="32"/><circle cx="352" cy="256" r="32"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/chatbubble-ellipses-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/chatbubble-ellipses-sharp.svg deleted file mode 100644 index cc049b3a138fb15c89ab931f32e146bcf7f03f30..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/chatbubble-ellipses-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Chatbubble Ellipses</title><path d="M475.22 206.52c-10.34-48.65-37.76-92.93-77.22-124.68A227.4 227.4 0 00255.82 32C194.9 32 138 55.47 95.46 98.09 54.35 139.33 31.82 193.78 32 251.37a215.66 215.66 0 0035.65 118.76l4.35 6.05L48 480l114.8-28.56s2.3.77 4 1.42 16.33 6.26 31.85 10.6c12.9 3.6 39.74 9 60.77 9 59.65 0 115.35-23.1 156.83-65.06C457.36 365.77 480 310.42 480 251.49a213.5 213.5 0 00-4.78-44.97zM160 288a32 32 0 1132-32 32 32 0 01-32 32zm96 0a32 32 0 1132-32 32 32 0 01-32 32zm96 0a32 32 0 1132-32 32 32 0 01-32 32z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/chatbubble-ellipses.svg b/ionic/platforms/android/app/src/main/assets/www/svg/chatbubble-ellipses.svg deleted file mode 100644 index 8d3077fa51f7d0e17a01e93646ac4bf2df15fb03..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/chatbubble-ellipses.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Chatbubble Ellipses</title><path d="M398 81.84A227.4 227.4 0 00255.82 32C194.9 32 138 55.47 95.46 98.09 54.35 139.33 31.82 193.78 32 251.37a215.66 215.66 0 0035.65 118.76l.19.27c.28.41.57.82.86 1.22s.65.92.73 1.05l.22.4c1.13 2 2 4.44 1.23 6.9l-18.42 66.66a29.13 29.13 0 00-1.2 7.63A25.69 25.69 0 0076.83 480a29.44 29.44 0 0010.45-2.29l67.49-24.36.85-.33a14.75 14.75 0 015.8-1.15 15.12 15.12 0 015.37 1c1.62.63 16.33 6.26 31.85 10.6 12.9 3.6 39.74 9 60.77 9 59.65 0 115.35-23.1 156.83-65.06C457.36 365.77 480 310.42 480 251.49a213.5 213.5 0 00-4.78-45c-10.34-48.62-37.76-92.9-77.22-124.65zM87.48 380zM160 288a32 32 0 1132-32 32 32 0 01-32 32zm96 0a32 32 0 1132-32 32 32 0 01-32 32zm96 0a32 32 0 1132-32 32 32 0 01-32 32z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/chatbubble-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/chatbubble-outline.svg deleted file mode 100644 index 0603af1c78f6002ee44d1ca28f9c90847ada6fc4..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/chatbubble-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Chatbubble</title><path d="M87.49 380c1.19-4.38-1.44-10.47-3.95-14.86a44.86 44.86 0 00-2.54-3.8 199.81 199.81 0 01-33-110C47.65 139.09 140.73 48 255.83 48 356.21 48 440 117.54 459.58 209.85a199 199 0 014.42 41.64c0 112.41-89.49 204.93-204.59 204.93-18.3 0-43-4.6-56.47-8.37s-26.92-8.77-30.39-10.11a31.09 31.09 0 00-11.12-2.07 30.71 30.71 0 00-12.09 2.43l-67.83 24.48a16 16 0 01-4.67 1.22 9.6 9.6 0 01-9.57-9.74 15.85 15.85 0 01.6-3.29z" stroke-linecap="round" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/chatbubble-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/chatbubble-sharp.svg deleted file mode 100644 index 20a69dbbd31d636100d11456de4a6c5a831652bb..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/chatbubble-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Chatbubble</title><path d="M475.22 206.52c-10.34-48.65-37.76-92.93-77.22-124.68A227.4 227.4 0 00255.82 32C194.9 32 138 55.47 95.46 98.09 54.35 139.33 31.82 193.78 32 251.37a215.66 215.66 0 0035.65 118.76l4.35 6.05L48 480l114.8-28.56s2.3.77 4 1.42 16.33 6.26 31.85 10.6c12.9 3.6 39.74 9 60.77 9 59.65 0 115.35-23.1 156.83-65.06C457.36 365.77 480 310.42 480 251.49a213.5 213.5 0 00-4.78-44.97z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/chatbubble.svg b/ionic/platforms/android/app/src/main/assets/www/svg/chatbubble.svg deleted file mode 100644 index 18edece3563f154f0acbfeee99c9037e4aed4510..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/chatbubble.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Chatbubble</title><path d="M76.83 480a25.69 25.69 0 01-25.57-25.74 29.13 29.13 0 011.2-7.63L70.88 380c.77-2.46-.1-4.94-1.23-6.9l-.22-.4c-.08-.13-.46-.66-.73-1.05s-.58-.81-.86-1.22l-.19-.27A215.66 215.66 0 0132 251.37c-.18-57.59 22.35-112 63.46-153.28C138 55.47 194.9 32 255.82 32A227.4 227.4 0 01398 81.84c39.45 31.75 66.87 76 77.21 124.68a213.5 213.5 0 014.78 45c0 58.93-22.64 114.28-63.76 155.87-41.48 42-97.18 65.06-156.83 65.06-21 0-47.87-5.36-60.77-9-15.52-4.34-30.23-10-31.85-10.6a15.12 15.12 0 00-5.37-1 14.75 14.75 0 00-5.8 1.15l-.85.33-67.48 24.38A29.44 29.44 0 0176.83 480zm-2-31.8zM87.48 380z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/chatbubbles-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/chatbubbles-outline.svg deleted file mode 100644 index f7839830fba5bf492cb0bc170eaebc850cb5fb49..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/chatbubbles-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Chatbubbles</title><path d="M431 320.6c-1-3.6 1.2-8.6 3.3-12.2a33.68 33.68 0 012.1-3.1A162 162 0 00464 215c.3-92.2-77.5-167-173.7-167-83.9 0-153.9 57.1-170.3 132.9a160.7 160.7 0 00-3.7 34.2c0 92.3 74.8 169.1 171 169.1 15.3 0 35.9-4.6 47.2-7.7s22.5-7.2 25.4-8.3a26.44 26.44 0 019.3-1.7 26 26 0 0110.1 2l56.7 20.1a13.52 13.52 0 003.9 1 8 8 0 008-8 12.85 12.85 0 00-.5-2.7z" stroke-linecap="round" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><path d="M66.46 232a146.23 146.23 0 006.39 152.67c2.31 3.49 3.61 6.19 3.21 8s-11.93 61.87-11.93 61.87a8 8 0 002.71 7.68A8.17 8.17 0 0072 464a7.26 7.26 0 002.91-.6l56.21-22a15.7 15.7 0 0112 .2c18.94 7.38 39.88 12 60.83 12A159.21 159.21 0 00284 432.11" stroke-linecap="round" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/chatbubbles-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/chatbubbles-sharp.svg deleted file mode 100644 index e080f5c0aca658e836f3ee754ff0d6c1ea1376fd..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/chatbubbles-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Chatbubbles</title><path d="M448 312.43c.77-1.11 1.51-2.26 2.27-3.34A174.55 174.55 0 00480 211.85C480.32 112.55 396.54 32 292.94 32c-90.36 0-165.74 61.49-183.4 143.12a172.81 172.81 0 00-4 36.83c0 99.4 80.56 182.11 184.16 182.11 16.47 0 38.66-4.95 50.83-8.29s24.23-7.75 27.35-8.94 8-2.41 11.89-1.29l77.42 22.38a4 4 0 005-4.86l-17.72-67.49c-1.23-5-1.39-5.94 3.53-13.14z"/><path d="M312.54 415.38a165.32 165.32 0 01-23.26 2.05c-42.43 0-82.5-11.2-115-32.2a184.09 184.09 0 01-53.09-49.32c-26.08-34.57-40.3-78.51-40.3-124.49 0-3.13.11-6.14.22-9.16a4.34 4.34 0 00-7.54-3.12 158.76 158.76 0 00-14.86 195.24c2.47 3.77 3.87 6.68 3.44 8.62l-14.09 72.26a4 4 0 005.22 4.53l68-24.24a16.85 16.85 0 0112.92.22c20.35 8 42.86 12.92 65.37 12.92a169.45 169.45 0 00116.63-46 4.29 4.29 0 00-3.66-7.31z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/chatbubbles.svg b/ionic/platforms/android/app/src/main/assets/www/svg/chatbubbles.svg deleted file mode 100644 index 5f4b0cdedd7523eae84214dc8f3bb2ecff261a1a..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/chatbubbles.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Chatbubbles</title><path d="M60.44 389.17c0 .07 0 .2-.08.38.03-.12.05-.25.08-.38zM439.9 405.6a26.77 26.77 0 01-9.59-2l-56.78-20.13-.42-.17a9.88 9.88 0 00-3.91-.76 10.32 10.32 0 00-3.62.66c-1.38.52-13.81 5.19-26.85 8.77-7.07 1.94-31.68 8.27-51.43 8.27-50.48 0-97.68-19.4-132.89-54.63A183.38 183.38 0 01100.3 215.1a175.9 175.9 0 014.06-37.58c8.79-40.62 32.07-77.57 65.55-104A194.76 194.76 0 01290.3 32c52.21 0 100.86 20 137 56.18 34.16 34.27 52.88 79.33 52.73 126.87a177.86 177.86 0 01-30.3 99.15l-.19.28-.74 1c-.17.23-.34.45-.5.68l-.15.27a21.63 21.63 0 00-1.08 2.09l15.74 55.94a26.42 26.42 0 011.12 7.11 24 24 0 01-24.03 24.03z"/><path d="M299.87 425.39a15.74 15.74 0 00-10.29-8.1c-5.78-1.53-12.52-1.27-17.67-1.65a201.78 201.78 0 01-128.82-58.75A199.21 199.21 0 0186.4 244.16C85 234.42 85 232 85 232a16 16 0 00-28-10.58s-7.88 8.58-11.6 17.19a162.09 162.09 0 0011 150.06C59 393 59 395 58.42 399.5c-2.73 14.11-7.51 39-10 51.91a24 24 0 008 22.92l.46.39A24.34 24.34 0 0072 480a23.42 23.42 0 009-1.79l53.51-20.65a8.05 8.05 0 015.72 0c21.07 7.84 43 12 63.78 12a176 176 0 0074.91-16.66c5.46-2.56 14-5.34 19-11.12a15 15 0 001.95-16.39z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/checkbox-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/checkbox-outline.svg deleted file mode 100644 index 3e0de3127e47d88572d37ef79bbb5ed625fd855b..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/checkbox-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Checkbox</title><path stroke-linecap="round" stroke-linejoin="round" d="M352 176L217.6 336 160 272" class="ionicon-fill-none ionicon-stroke-width"/><rect x="64" y="64" width="384" height="384" rx="48" ry="48" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/checkbox-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/checkbox-sharp.svg deleted file mode 100644 index e06077c24d000c288f1043eccf9bb1972fddb2e5..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/checkbox-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Checkbox</title><path d="M48 48v416h416V48zm170 312.38l-80.6-89.57 23.79-21.41 56 62.22L350 153.46 374.54 174z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/checkbox.svg b/ionic/platforms/android/app/src/main/assets/www/svg/checkbox.svg deleted file mode 100644 index de24e49acd842e79b35da749daa22291a6aad271..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/checkbox.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Checkbox</title><path d="M400 48H112a64.07 64.07 0 00-64 64v288a64.07 64.07 0 0064 64h288a64.07 64.07 0 0064-64V112a64.07 64.07 0 00-64-64zm-35.75 138.29l-134.4 160a16 16 0 01-12 5.71h-.27a16 16 0 01-11.89-5.3l-57.6-64a16 16 0 1123.78-21.4l45.29 50.32 122.59-145.91a16 16 0 0124.5 20.58z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/checkmark-circle-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/checkmark-circle-outline.svg deleted file mode 100644 index 0cc2dafbee9f3ba00c297e2479c96e813333affe..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/checkmark-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Checkmark Circle</title><path d="M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-linejoin="round" d="M352 176L217.6 336 160 272" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/checkmark-circle-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/checkmark-circle-sharp.svg deleted file mode 100644 index 8f2a94ea0a22093bb76c49211dae8a6940fd93e3..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/checkmark-circle-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Checkmark Circle</title><path d="M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm-38 312.38l-80.6-89.57 23.79-21.41 56 62.22L350 153.46 374.54 174z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/checkmark-circle.svg b/ionic/platforms/android/app/src/main/assets/www/svg/checkmark-circle.svg deleted file mode 100644 index 42d13ecb602886d2d67ca7006b899d8d6ec4163e..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/checkmark-circle.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Checkmark Circle</title><path d="M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm108.25 138.29l-134.4 160a16 16 0 01-12 5.71h-.27a16 16 0 01-11.89-5.3l-57.6-64a16 16 0 1123.78-21.4l45.29 50.32 122.59-145.91a16 16 0 0124.5 20.58z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/checkmark-done-circle-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/checkmark-done-circle-outline.svg deleted file mode 100644 index 140cf08abf29f346f0cc96fe9a45f275d98d445c..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/checkmark-done-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Checkmark Done Circle</title><path d="M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-linejoin="round" d="M368 192L256.13 320l-47.95-48M191.95 320L144 272M305.71 192l-51.55 59" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/checkmark-done-circle-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/checkmark-done-circle-sharp.svg deleted file mode 100644 index cd1663f9cab3519d2c35932a272993b025cf6842..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/checkmark-done-circle-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Checkmark Done Circle</title><path d="M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm48.19 121.42l24.1 21.06-73.61 84.1-24.1-23.06zM191.93 342.63L121.37 272 144 249.37 214.57 320zm65 .79L185.55 272l22.64-22.62 47.16 47.21 111.13-127.17 24.1 21.06z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/checkmark-done-circle.svg b/ionic/platforms/android/app/src/main/assets/www/svg/checkmark-done-circle.svg deleted file mode 100644 index 4b3214573310563209fb5fe047dc7602d1751c8d..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/checkmark-done-circle.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Checkmark Done Circle</title><path d="M258.9 48C141.92 46.42 46.42 141.92 48 258.9c1.56 112.19 92.91 203.54 205.1 205.1 117 1.6 212.48-93.9 210.88-210.88C462.44 140.91 371.09 49.56 258.9 48zm-16.79 192.47l51.55-59a16 16 0 0124.1 21.06l-51.55 59a16 16 0 11-24.1-21.06zm-38.86 90.85a16 16 0 01-22.62 0l-47.95-48a16 16 0 1122.64-22.62l48 48a16 16 0 01-.07 22.62zm176.8-128.79l-111.88 128a16 16 0 01-11.51 5.47h-.54a16 16 0 01-11.32-4.69l-47.94-48a16 16 0 1122.64-22.62l29.8 29.83a8 8 0 0011.68-.39l95-108.66a16 16 0 0124.1 21.06z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/checkmark-done-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/checkmark-done-outline.svg deleted file mode 100644 index 1f63dc85304c0da6fcf4da4aa85da65f2c7ca4f2..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/checkmark-done-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Checkmark Done</title><path stroke-linecap="round" stroke-linejoin="round" d="M464 128L240 384l-96-96M144 384l-96-96M368 128L232 284" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/checkmark-done-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/checkmark-done-sharp.svg deleted file mode 100644 index ce1bdcf01f27b5d6882b58d8af80bd3eae16eb46..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/checkmark-done-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Checkmark Done</title><path stroke-linecap="square" stroke-miterlimit="10" stroke-width="44" d="M465 127L241 384l-92-92M140 385l-93-93M363 127L236 273" class="ionicon-fill-none"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/checkmark-done.svg b/ionic/platforms/android/app/src/main/assets/www/svg/checkmark-done.svg deleted file mode 100644 index 1f63dc85304c0da6fcf4da4aa85da65f2c7ca4f2..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/checkmark-done.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Checkmark Done</title><path stroke-linecap="round" stroke-linejoin="round" d="M464 128L240 384l-96-96M144 384l-96-96M368 128L232 284" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/checkmark-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/checkmark-outline.svg deleted file mode 100644 index 7be902b2840336e05b8a67660eca2d0da0206af0..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/checkmark-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Checkmark</title><path stroke-linecap="round" stroke-linejoin="round" d="M416 128L192 384l-96-96" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/checkmark-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/checkmark-sharp.svg deleted file mode 100644 index 54185135610dfdbe9ab4580af9ca1e800a1173ee..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/checkmark-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Checkmark</title><path stroke-linecap="square" stroke-miterlimit="10" stroke-width="44" d="M416 128L192 384l-96-96" class="ionicon-fill-none"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/checkmark.svg b/ionic/platforms/android/app/src/main/assets/www/svg/checkmark.svg deleted file mode 100644 index 7be902b2840336e05b8a67660eca2d0da0206af0..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/checkmark.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Checkmark</title><path stroke-linecap="round" stroke-linejoin="round" d="M416 128L192 384l-96-96" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/chevron-back-circle-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/chevron-back-circle-outline.svg deleted file mode 100644 index c7fba6909997cb1f6a6523345af53edc40dd1828..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/chevron-back-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Chevron Back Circle</title><path d="M256 64C150 64 64 150 64 256s86 192 192 192 192-86 192-192S362 64 256 64z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-linejoin="round" d="M296 352l-96-96 96-96" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/chevron-back-circle-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/chevron-back-circle-sharp.svg deleted file mode 100644 index 391e51498e79f0a58de1c804d63cc4888e9e3a6a..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/chevron-back-circle-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Chevron Back Circle</title><path d="M256 48C141.13 48 48 141.13 48 256s93.13 208 208 208 208-93.13 208-208S370.87 48 256 48zm62.63 304L296 374.63 177.37 256 296 137.37 318.63 160l-96 96z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/chevron-back-circle.svg b/ionic/platforms/android/app/src/main/assets/www/svg/chevron-back-circle.svg deleted file mode 100644 index 9cc9a337c9bdffdaaea5129d25fba56c9b4f1051..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/chevron-back-circle.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Chevron Back Circle</title><path d="M256 48C141.13 48 48 141.13 48 256s93.13 208 208 208 208-93.13 208-208S370.87 48 256 48zm35.31 292.69a16 16 0 11-22.62 22.62l-96-96a16 16 0 010-22.62l96-96a16 16 0 0122.62 22.62L206.63 256z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/chevron-back-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/chevron-back-outline.svg deleted file mode 100644 index 2c3bf71b870d496949fed8096db7fc2954ff478b..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/chevron-back-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Chevron Back</title><path stroke-linecap="round" stroke-linejoin="round" stroke-width="48" d="M328 112L184 256l144 144" class="ionicon-fill-none"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/chevron-back-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/chevron-back-sharp.svg deleted file mode 100644 index fcf8b33382ce04a84aa5ed7d8bf3544061a1f827..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/chevron-back-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Chevron Back</title><path stroke-linecap="square" stroke-miterlimit="10" stroke-width="48" d="M328 112L184 256l144 144" class="ionicon-fill-none"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/chevron-back.svg b/ionic/platforms/android/app/src/main/assets/www/svg/chevron-back.svg deleted file mode 100644 index 2c3bf71b870d496949fed8096db7fc2954ff478b..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/chevron-back.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Chevron Back</title><path stroke-linecap="round" stroke-linejoin="round" stroke-width="48" d="M328 112L184 256l144 144" class="ionicon-fill-none"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/chevron-down-circle-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/chevron-down-circle-outline.svg deleted file mode 100644 index 1f10038f43ba3ac5586590a43a4f57dc0a3da460..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/chevron-down-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Chevron Down Circle</title><path d="M256 64C150 64 64 150 64 256s86 192 192 192 192-86 192-192S362 64 256 64z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-linejoin="round" d="M352 216l-96 96-96-96" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/chevron-down-circle-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/chevron-down-circle-sharp.svg deleted file mode 100644 index 4f9143014efbd07d937831fc8e0a24abb87b1153..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/chevron-down-circle-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Chevron Down Circle</title><path d="M256 464c114.87 0 208-93.13 208-208S370.87 48 256 48 48 141.13 48 256s93.13 208 208 208zm-96-270.63l96 96 96-96L374.63 216 256 334.63 137.37 216z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/chevron-down-circle.svg b/ionic/platforms/android/app/src/main/assets/www/svg/chevron-down-circle.svg deleted file mode 100644 index b63e7965c9baae0a1a7f55085e369dd3768fc918..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/chevron-down-circle.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Chevron Down Circle</title><path d="M464 256c0-114.87-93.13-208-208-208S48 141.13 48 256s93.13 208 208 208 208-93.13 208-208zm-100.69-28.69l-96 96a16 16 0 01-22.62 0l-96-96a16 16 0 0122.62-22.62L256 289.37l84.69-84.68a16 16 0 0122.62 22.62z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/chevron-down-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/chevron-down-outline.svg deleted file mode 100644 index 27d14d38eaf4a5fee5b23d71b11e38041cf98d9b..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/chevron-down-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Chevron Down</title><path stroke-linecap="round" stroke-linejoin="round" stroke-width="48" d="M112 184l144 144 144-144" class="ionicon-fill-none"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/chevron-down-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/chevron-down-sharp.svg deleted file mode 100644 index 05e084a96cd6421b7c52270f4ccdefb7c4c17f4c..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/chevron-down-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Chevron Down</title><path stroke-linecap="square" stroke-miterlimit="10" stroke-width="48" d="M112 184l144 144 144-144" class="ionicon-fill-none"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/chevron-down.svg b/ionic/platforms/android/app/src/main/assets/www/svg/chevron-down.svg deleted file mode 100644 index 27d14d38eaf4a5fee5b23d71b11e38041cf98d9b..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/chevron-down.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Chevron Down</title><path stroke-linecap="round" stroke-linejoin="round" stroke-width="48" d="M112 184l144 144 144-144" class="ionicon-fill-none"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/chevron-forward-circle-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/chevron-forward-circle-outline.svg deleted file mode 100644 index e22f116f3689a0e26acac2dd05b9b3f2aad8b1ba..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/chevron-forward-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Chevron Forward Circle</title><path d="M64 256c0 106 86 192 192 192s192-86 192-192S362 64 256 64 64 150 64 256z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-linejoin="round" d="M216 352l96-96-96-96" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/chevron-forward-circle-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/chevron-forward-circle-sharp.svg deleted file mode 100644 index affb50ee03828442fb2f5b08d14fe3533cc4a1e7..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/chevron-forward-circle-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Chevron Forward Circle</title><path d="M256 48C141.13 48 48 141.13 48 256s93.13 208 208 208 208-93.13 208-208S370.87 48 256 48zm-40 326.63L193.37 352l96-96-96-96L216 137.37 334.63 256z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/chevron-forward-circle.svg b/ionic/platforms/android/app/src/main/assets/www/svg/chevron-forward-circle.svg deleted file mode 100644 index 3383ca2358eee5550d9bf8fc40b35a10e0869af7..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/chevron-forward-circle.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Chevron Forward Circle</title><path d="M48 256c0 114.87 93.13 208 208 208s208-93.13 208-208S370.87 48 256 48 48 141.13 48 256zm257.37 0l-84.68-84.69a16 16 0 0122.62-22.62l96 96a16 16 0 010 22.62l-96 96a16 16 0 01-22.62-22.62z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/chevron-forward-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/chevron-forward-outline.svg deleted file mode 100644 index f4a8e5b7f9f35911e2098d341bb485995babb776..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/chevron-forward-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Chevron Forward</title><path stroke-linecap="round" stroke-linejoin="round" stroke-width="48" d="M184 112l144 144-144 144" class="ionicon-fill-none"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/chevron-forward-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/chevron-forward-sharp.svg deleted file mode 100644 index 05992cca91df0be2e1b09ad03ea4d3fa441875a7..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/chevron-forward-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Chevron Forward</title><path stroke-linecap="square" stroke-miterlimit="10" stroke-width="48" d="M184 112l144 144-144 144" class="ionicon-fill-none"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/chevron-forward.svg b/ionic/platforms/android/app/src/main/assets/www/svg/chevron-forward.svg deleted file mode 100644 index f4a8e5b7f9f35911e2098d341bb485995babb776..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/chevron-forward.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Chevron Forward</title><path stroke-linecap="round" stroke-linejoin="round" stroke-width="48" d="M184 112l144 144-144 144" class="ionicon-fill-none"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/chevron-up-circle-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/chevron-up-circle-outline.svg deleted file mode 100644 index 7f1930a9a33bff1231b112b085a114dffe75161c..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/chevron-up-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Chevron Up Circle</title><path stroke-linecap="round" stroke-linejoin="round" d="M352 296l-96-96-96 96" class="ionicon-fill-none ionicon-stroke-width"/><path d="M256 64C150 64 64 150 64 256s86 192 192 192 192-86 192-192S362 64 256 64z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/chevron-up-circle-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/chevron-up-circle-sharp.svg deleted file mode 100644 index 46d8a901d8deab74a2150826845f164385158d9b..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/chevron-up-circle-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Chevron Up Circle</title><path d="M256 48C141.13 48 48 141.13 48 256s93.13 208 208 208 208-93.13 208-208S370.87 48 256 48zm96 270.63l-96-96-96 96L137.37 296 256 177.37 374.63 296z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/chevron-up-circle.svg b/ionic/platforms/android/app/src/main/assets/www/svg/chevron-up-circle.svg deleted file mode 100644 index 6e7c78273d36dbb9dd280f6da3278016a612904b..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/chevron-up-circle.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Chevron Up Circle</title><path d="M256 48C141.13 48 48 141.13 48 256s93.13 208 208 208 208-93.13 208-208S370.87 48 256 48zm107.31 259.31a16 16 0 01-22.62 0L256 222.63l-84.69 84.68a16 16 0 01-22.62-22.62l96-96a16 16 0 0122.62 0l96 96a16 16 0 010 22.62z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/chevron-up-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/chevron-up-outline.svg deleted file mode 100644 index 731c4b8070f22e05e832f4671a7413c8316808c0..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/chevron-up-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Chevron Up</title><path stroke-linecap="round" stroke-linejoin="round" stroke-width="48" d="M112 328l144-144 144 144" class="ionicon-fill-none"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/chevron-up-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/chevron-up-sharp.svg deleted file mode 100644 index 4c9a30f125b7ee96fecb0b7f43b54f252718ace4..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/chevron-up-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Chevron Up</title><path stroke-linecap="square" stroke-miterlimit="10" stroke-width="48" d="M112 328l144-144 144 144" class="ionicon-fill-none"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/chevron-up.svg b/ionic/platforms/android/app/src/main/assets/www/svg/chevron-up.svg deleted file mode 100644 index 731c4b8070f22e05e832f4671a7413c8316808c0..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/chevron-up.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Chevron Up</title><path stroke-linecap="round" stroke-linejoin="round" stroke-width="48" d="M112 328l144-144 144 144" class="ionicon-fill-none"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/clipboard-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/clipboard-outline.svg deleted file mode 100644 index 400e26fc32ded3d77c3f6506ad0c91adf8738385..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/clipboard-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Clipboard</title><path d="M336 64h32a48 48 0 0148 48v320a48 48 0 01-48 48H144a48 48 0 01-48-48V112a48 48 0 0148-48h32" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><rect x="176" y="32" width="160" height="64" rx="26.13" ry="26.13" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/clipboard-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/clipboard-sharp.svg deleted file mode 100644 index 7424da13e0aefd970b62be1cc2a665df32bf7f7e..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/clipboard-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Clipboard</title><path d="M420 48h-68V28a12 12 0 00-12-12H172a12 12 0 00-12 12v20H92a12 12 0 00-12 12v424a12 12 0 0012 12h328a12 12 0 0012-12V60a12 12 0 00-12-12zm-84.13 64H176.13V80h159.74z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/clipboard.svg b/ionic/platforms/android/app/src/main/assets/www/svg/clipboard.svg deleted file mode 100644 index 886a8e1647f9cdebfae74de6a8900c10d73512c1..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/clipboard.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Clipboard</title><path d="M368 48h-11.41a8 8 0 01-7.44-5.08A42.18 42.18 0 00309.87 16H202.13a42.18 42.18 0 00-39.28 26.92 8 8 0 01-7.44 5.08H144a64 64 0 00-64 64v320a64 64 0 0064 64h224a64 64 0 0064-64V112a64 64 0 00-64-64zm-48.13 64H192.13a16 16 0 010-32h127.74a16 16 0 010 32z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/close-circle-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/close-circle-outline.svg deleted file mode 100644 index 1d7dc48b74cddbcfdeebc4d1a499c9d3a4a759c0..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/close-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Close Circle</title><path d="M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-linejoin="round" d="M320 320L192 192M192 320l128-128" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/close-circle-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/close-circle-sharp.svg deleted file mode 100644 index a3c9cd66a8ac88e79fb71078ca7827e7d7f9c894..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/close-circle-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Close Circle</title><path d="M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm86.63 272L320 342.63l-64-64-64 64L169.37 320l64-64-64-64L192 169.37l64 64 64-64L342.63 192l-64 64z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/close-circle.svg b/ionic/platforms/android/app/src/main/assets/www/svg/close-circle.svg deleted file mode 100644 index db84a60145de673ed878921660ff2a54a74f42d0..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/close-circle.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Close Circle</title><path d="M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm75.31 260.69a16 16 0 11-22.62 22.62L256 278.63l-52.69 52.68a16 16 0 01-22.62-22.62L233.37 256l-52.68-52.69a16 16 0 0122.62-22.62L256 233.37l52.69-52.68a16 16 0 0122.62 22.62L278.63 256z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/close-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/close-outline.svg deleted file mode 100644 index bc99d56ffd976e93acf9b1963197642c93ee8352..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/close-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Close</title><path stroke-linecap="round" stroke-linejoin="round" d="M368 368L144 144M368 144L144 368" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/close-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/close-sharp.svg deleted file mode 100644 index e4850bf230150b73333a7be21abc09445f6eff97..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/close-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Close</title><path d="M400 145.49L366.51 112 256 222.51 145.49 112 112 145.49 222.51 256 112 366.51 145.49 400 256 289.49 366.51 400 400 366.51 289.49 256 400 145.49z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/close.svg b/ionic/platforms/android/app/src/main/assets/www/svg/close.svg deleted file mode 100644 index 5e588650d8e52913eaf31c0a35048001c7940c39..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/close.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Close</title><path d="M289.94 256l95-95A24 24 0 00351 127l-95 95-95-95a24 24 0 00-34 34l95 95-95 95a24 24 0 1034 34l95-95 95 95a24 24 0 0034-34z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/cloud-circle-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/cloud-circle-outline.svg deleted file mode 100644 index bfffdf3313b5dfa7b5965cac532eb6536e9bfccd..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/cloud-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Cloud Circle</title><path d="M333.88 240.59a8 8 0 01-6.66-6.66C320.68 192.78 290.82 168 256 168c-32.37 0-53.93 21.22-62.48 43.58a7.92 7.92 0 01-6.16 5c-27.67 4.35-50.82 22.56-51.35 54.3-.52 31.53 25.51 57.11 57 57.11H326c27.5 0 50-13.72 50-44 0-27.22-22-40.41-42.12-43.4z"/><path d="M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/cloud-circle-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/cloud-circle-sharp.svg deleted file mode 100644 index e5698ee0506a8bc255a8095e80ae7f751bec0236..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/cloud-circle-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Cloud Circle</title><path d="M256 48C141.13 48 48 141.13 48 256s93.13 208 208 208 208-93.13 208-208S370.87 48 256 48zm70 280H196c-33 0-60-23-60-56 0-34.21 26-53 56-56 7.28-23.9 29.5-48 64-48 36.5 0 67.55 27.23 72 72 21.49 1.12 48 14.09 48 44 0 30.28-22.5 44-50 44z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/cloud-circle.svg b/ionic/platforms/android/app/src/main/assets/www/svg/cloud-circle.svg deleted file mode 100644 index a0c718b9757070a6ec44689bbc65611214355a6e..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/cloud-circle.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Cloud Circle</title><path d="M256 48C141.13 48 48 141.13 48 256s93.13 208 208 208 208-93.13 208-208S370.87 48 256 48zm70 280H193.05c-31.53 0-57.56-25.58-57-57.11.53-31.74 23.68-49.95 51.35-54.3a7.92 7.92 0 006.16-5C202.07 189.22 223.63 168 256 168c33.17 0 61.85 22.49 70.14 60.21a17.75 17.75 0 0013.18 13.43C357.79 246.05 376 259.21 376 284c0 30.28-22.5 44-50 44z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/cloud-done-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/cloud-done-outline.svg deleted file mode 100644 index f49c8b292b50d945e86a1782fc002f359dc31e36..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/cloud-done-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Cloud Done</title><path d="M400 240c-8.89-89.54-71-144-144-144-69 0-113.44 48.2-128 96-60 6-112 43.59-112 112 0 66 54 112 120 112h260c55 0 100-27.44 100-88 0-59.82-53-85.76-96-88z" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-linejoin="round" d="M317 208L209.2 336 163 284.8" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/cloud-done-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/cloud-done-sharp.svg deleted file mode 100644 index 1ffdcb7c0c04b318354600f033a9c6227d596b72..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/cloud-done-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Cloud Done</title><path d="M414.25 225.36c-6.52-41.18-24.05-76.4-51.11-102.46A153.57 153.57 0 00256 80c-35.5 0-68.24 11.69-94.68 33.8a156.42 156.42 0 00-45.22 63.61c-30.26 4.81-57.45 17.18-77.38 35.37C13.39 235.88 0 267.42 0 304c0 36 14.38 68.88 40.49 92.59C65.64 419.43 99.56 432 136 432h260c32.37 0 60.23-8.57 80.59-24.77C499.76 388.78 512 361.39 512 328c0-61.85-48.44-95.34-97.75-102.64zm-204.63 135l-69.22-76.7 23.76-21.44 44.62 49.46 106.29-126.2 24.47 20.61z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/cloud-done.svg b/ionic/platforms/android/app/src/main/assets/www/svg/cloud-done.svg deleted file mode 100644 index 481351444f43df6f4b0724fb1f0debd04809704d..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/cloud-done.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Cloud Done</title><path d="M424.44 227.25a16 16 0 01-12.12-12.39c-7.68-36.68-24.45-68.15-49.18-92A153.57 153.57 0 00256 80c-35.5 0-68.24 11.69-94.68 33.8a156.24 156.24 0 00-42 56 16 16 0 01-11.37 9.15c-27 5.62-51.07 17.34-69.18 33.87C13.39 235.88 0 267.42 0 304c0 36 14.38 68.88 40.49 92.59C65.64 419.43 99.56 432 136 432h260c32.37 0 60.23-8.57 80.59-24.77C499.76 388.78 512 361.39 512 328c0-57.57-42-90.58-87.56-100.75zm-95.2-8.94l-107.8 128a16 16 0 01-12 5.69h-.27a16 16 0 01-11.88-5.28l-45.9-50.87c-5.77-6.39-5.82-16.33.3-22.4a16 16 0 0123.16.63l33.9 37.58 96-114a16 16 0 1124.48 20.62z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/cloud-download-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/cloud-download-outline.svg deleted file mode 100644 index 0f11456b586b17d819168e3795fe1c80a146008c..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/cloud-download-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Cloud Download</title><path d="M320 336h76c55 0 100-21.21 100-75.6s-53-73.47-96-75.6C391.11 99.74 329 48 256 48c-69 0-113.44 45.79-128 91.2-60 5.7-112 35.88-112 98.4S70 336 136 336h56M192 400.1l64 63.9 64-63.9M256 224v224.03" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/cloud-download-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/cloud-download-sharp.svg deleted file mode 100644 index 7b33853894688289c223ef2cc8901b6f6ace1d45..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/cloud-download-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Cloud Download</title><path d="M472.7 189.5c-15.76-10-36.21-16.79-58.59-19.54-6.65-39.1-24.22-72.52-51.27-97.26C334.15 46.45 296.21 32 256 32c-35.35 0-68 11.08-94.37 32a149.7 149.7 0 00-45.29 60.42c-30.67 4.32-57 14.61-76.71 30C13.7 174.83 0 203.56 0 237.6 0 305 55.92 352 136 352h104V208h32v144h124c72.64 0 116-34.24 116-91.6 0-30.05-13.59-54.57-39.3-70.9zM240 419.42L191.98 371l-22.61 23L256 480l86.63-86-22.61-23L272 419.42V352h-32v67.42z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/cloud-download.svg b/ionic/platforms/android/app/src/main/assets/www/svg/cloud-download.svg deleted file mode 100644 index de2ef220f33fbd43f84f81e6fe376c9dbdcaf2df..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/cloud-download.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Cloud Download</title><path d="M472.7 189.5c-13.26-8.43-29.83-14.56-48.08-17.93A16 16 0 01412 159.28c-7.86-34.51-24.6-64.13-49.15-86.58C334.15 46.45 296.21 32 256 32c-35.35 0-68 11.08-94.37 32a150.13 150.13 0 00-41.95 52.83A16.05 16.05 0 01108 125.8c-27.13 4.9-50.53 14.68-68.41 28.7C13.7 174.83 0 203.56 0 237.6 0 305 55.93 352 136 352h104V224.45c0-8.61 6.62-16 15.23-16.43A16 16 0 01272 224v128h124c72.64 0 116-34.24 116-91.6 0-30.05-13.59-54.57-39.3-70.9zM240 425.42l-36.7-36.64a16 16 0 00-22.6 22.65l64 63.89a16 16 0 0022.6 0l64-63.89a16 16 0 00-22.6-22.65L272 425.42V352h-32z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/cloud-offline-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/cloud-offline-outline.svg deleted file mode 100644 index 6a029fedb0539cf5944c67ea150246ade5ab66ab..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/cloud-offline-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Cloud Offline</title><path d="M93.72 183.25C49.49 198.05 16 233.1 16 288c0 66 54 112 120 112h184.37M467.82 377.74C485.24 363.3 496 341.61 496 312c0-59.82-53-85.76-96-88-8.89-89.54-71-144-144-144-26.16 0-48.79 6.93-67.6 18.14" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-miterlimit="10" d="M448 448L64 64" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/cloud-offline-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/cloud-offline-sharp.svg deleted file mode 100644 index 17e631c01c90c386f66e9885e50dba7fae3ef5db..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/cloud-offline-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Cloud Offline</title><path d="M41.37 64l22.628-22.628L470.627 448l-22.628 22.627zM38.72 212.78C13.39 235.88 0 267.42 0 304c0 36 14.38 68.88 40.49 92.59C65.64 419.43 99.56 432 136 432h228.12L110.51 178.39c-28.01 5.39-53.09 17.33-71.79 34.39zM476.59 407.23C499.76 388.78 512 361.39 512 328c0-61.85-48.44-95.34-97.75-102.64-6.52-41.18-24.05-76.4-51.11-102.46A153.57 153.57 0 00256 80c-30.47 0-58.9 8.62-83.07 25l302.82 302.86c.25-.21.57-.41.84-.63z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/cloud-offline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/cloud-offline.svg deleted file mode 100644 index e1231f331605bd574df28211fb08b642b3d9e7ac..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/cloud-offline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Cloud Offline</title><path d="M448 464a15.92 15.92 0 01-11.31-4.69l-384-384a16 16 0 0122.62-22.62l384 384A16 16 0 01448 464zM38.72 196.78C13.39 219.88 0 251.42 0 288c0 36 14.38 68.88 40.49 92.59C65.64 403.43 99.56 416 136 416h192.8a8 8 0 005.66-13.66L100.88 168.76a8 8 0 00-8-2C72 173.15 53.4 183.38 38.72 196.78zM476.59 391.23C499.76 372.78 512 345.39 512 312c0-57.57-42-90.58-87.56-100.75a16 16 0 01-12.12-12.39c-7.68-36.68-24.45-68.15-49.18-92A153.57 153.57 0 00256 64c-31.12 0-60.12 9-84.62 26.1a8 8 0 00-1.14 12.26L461.68 393.8a8 8 0 0010.2.93q2.43-1.68 4.71-3.5z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/cloud-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/cloud-outline.svg deleted file mode 100644 index d07703df3dfc80f0962e9f757c1c7abf85bcfb81..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/cloud-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Cloud</title><path d="M400 240c-8.89-89.54-71-144-144-144-69 0-113.44 48.2-128 96-60 6-112 43.59-112 112 0 66 54 112 120 112h260c55 0 100-27.44 100-88 0-59.82-53-85.76-96-88z" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/cloud-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/cloud-sharp.svg deleted file mode 100644 index 35146205df6f03a1ed4a2f84339de0e675cbb290..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/cloud-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Cloud</title><path d="M396 432H136c-36.44 0-70.36-12.57-95.51-35.41C14.38 372.88 0 340 0 304c0-36.58 13.39-68.12 38.72-91.22 19.93-18.19 47.12-30.56 77.38-35.37a156.42 156.42 0 0145.22-63.61C187.76 91.69 220.5 80 256 80a153.57 153.57 0 01107.14 42.9c27.06 26.06 44.59 61.28 51.11 102.46C463.56 232.66 512 266.15 512 328c0 33.39-12.24 60.78-35.41 79.23C456.23 423.43 428.37 432 396 432z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/cloud-upload-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/cloud-upload-outline.svg deleted file mode 100644 index 8f47bee16a200b3da9c373cd34ee0441cccf0e13..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/cloud-upload-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Cloud Upload</title><path d="M320 367.79h76c55 0 100-29.21 100-83.6s-53-81.47-96-83.6c-8.89-85.06-71-136.8-144-136.8-69 0-113.44 45.79-128 91.2-60 5.7-112 43.88-112 106.4s54 106.4 120 106.4h56" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-linejoin="round" d="M320 255.79l-64-64-64 64M256 448.21V207.79" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/cloud-upload-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/cloud-upload-sharp.svg deleted file mode 100644 index a9865ad8bf4ac1b48d83f275b8ee04cc45c57c0d..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/cloud-upload-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Cloud Upload</title><path d="M473.66 210c-16.56-12.3-37.7-20.75-59.52-24-6.62-39.18-24.21-72.67-51.3-97.45-28.69-26.3-66.63-40.76-106.84-40.76-35.35 0-68 11.08-94.37 32.05a149.61 149.61 0 00-45.32 60.49c-29.94 4.6-57.12 16.68-77.39 34.55C13.46 197.33 0 227.24 0 261.39c0 34.52 14.49 66 40.79 88.76 25.12 21.69 58.94 33.64 95.21 33.64h104V230.42l-48 48-22.63-22.63L256 169.17l86.63 86.62L320 278.42l-48-48v153.37h124c31.34 0 59.91-8.8 80.45-24.77 23.26-18.1 35.55-44 35.55-74.83 0-29.94-13.26-55.61-38.34-74.19zM240 383.79h32v80.41h-32z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/cloud-upload.svg b/ionic/platforms/android/app/src/main/assets/www/svg/cloud-upload.svg deleted file mode 100644 index de03f6f82e15b0b5d8d27b0708c0b0bde89c4034..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/cloud-upload.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Cloud Upload</title><path d="M473.66 210c-14-10.38-31.2-18-49.36-22.11a16.11 16.11 0 01-12.19-12.22c-7.8-34.75-24.59-64.55-49.27-87.13C334.15 62.25 296.21 47.79 256 47.79c-35.35 0-68 11.08-94.37 32.05a150.07 150.07 0 00-42.06 53 16 16 0 01-11.31 8.87c-26.75 5.4-50.9 16.87-69.34 33.12C13.46 197.33 0 227.24 0 261.39c0 34.52 14.49 66 40.79 88.76 25.12 21.69 58.94 33.64 95.21 33.64h104V230.42l-36.69 36.69a16 16 0 01-23.16-.56c-5.8-6.37-5.24-16.3.85-22.39l63.69-63.68a16 16 0 0122.62 0L331 244.14c6.28 6.29 6.64 16.6.39 22.91a16 16 0 01-22.68.06L272 230.42v153.37h124c31.34 0 59.91-8.8 80.45-24.77 23.26-18.1 35.55-44 35.55-74.83 0-29.94-13.26-55.61-38.34-74.19zM240 448.21a16 16 0 1032 0v-64.42h-32z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/cloud.svg b/ionic/platforms/android/app/src/main/assets/www/svg/cloud.svg deleted file mode 100644 index 3d0d4adf0249fe34dae4c45e25e7783c3c7da1cf..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/cloud.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Cloud</title><path d="M396 432H136c-36.44 0-70.36-12.57-95.51-35.41C14.38 372.88 0 340 0 304c0-36.58 13.39-68.12 38.72-91.22 18.11-16.53 42.22-28.25 69.18-33.87a16 16 0 0011.37-9.15 156.24 156.24 0 0142.05-56C187.76 91.69 220.5 80 256 80a153.57 153.57 0 01107.14 42.9c24.73 23.81 41.5 55.28 49.18 92a16 16 0 0012.12 12.39C470 237.42 512 270.43 512 328c0 33.39-12.24 60.78-35.41 79.23C456.23 423.43 428.37 432 396 432z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/cloudy-night-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/cloudy-night-outline.svg deleted file mode 100644 index 4ea50d684d6893bd747a847b9d2a9f1c5f014bb5..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/cloudy-night-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Cloudy Night</title><path d="M388.31 272c47.75 0 89.77-27.77 107.69-68.92-14.21 6.18-30.9 8.61-47.38 8.61A116.31 116.31 0 01332.31 95.38c0-16.48 2.43-33.17 8.61-47.38C299.77 65.92 272 107.94 272 155.69a116.31 116.31 0 003.44 28.18" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M90.61 306.85A16.07 16.07 0 00104 293.6C116.09 220.17 169.63 176 232 176c57.93 0 96.62 37.75 112.2 77.74a15.84 15.84 0 0012.2 9.87c50 8.15 91.6 41.54 91.6 99.59 0 59.4-48.6 100.8-108 100.8H106c-49.5 0-90-24.7-90-79.2 0-48.47 38.67-72.22 74.61-77.95z" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/cloudy-night-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/cloudy-night-sharp.svg deleted file mode 100644 index d09a7d57f4739d0a6134b5e2cf641d5ffac495cb..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/cloudy-night-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Cloudy Night</title><path d="M340 480H106c-29.5 0-54.92-7.83-73.53-22.64C11.23 440.44 0 415.35 0 384.8c0-29.44 12.09-54.25 35-71.74 14.55-11.13 33.41-18.87 53.2-22 6.06-36.92 21.92-68.53 46.29-92A139.82 139.82 0 01232 160c32.33 0 62.15 10.65 86.24 30.79a142.41 142.41 0 0140.83 57.05c27.18 4.48 51.59 15.68 69.56 32.08C451.77 301 464 329.82 464 363.2c0 32.85-13.13 62.87-37 84.52-22.89 20.82-53.8 32.28-87 32.28zM381.55 219.93c26.5 6.93 50 19.32 68.65 36.34q3.89 3.56 7.47 7.34c25.41-18.4 45.47-44.92 54.33-71.38-16.24 7.07-35.31 9.85-54.15 9.85-73.42 0-115.93-42.51-115.93-115.93 0-18.84 2.78-37.91 9.85-54.15-40.41 13.53-81 53.19-92.52 98.13a162.61 162.61 0 0179.52 36.12 173 173 0 0142.78 53.68z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/cloudy-night.svg b/ionic/platforms/android/app/src/main/assets/www/svg/cloudy-night.svg deleted file mode 100644 index d3509da86d5d1ade027d526bd53584b025007c40..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/cloudy-night.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Cloudy Night</title><path d="M340 480H106c-29.5 0-54.92-7.83-73.53-22.64C11.23 440.44 0 415.35 0 384.8c0-29.44 12.09-54.25 35-71.74 12.1-9.26 27.2-16.17 43.33-20.05a16 16 0 0011.81-12.21c7.15-32.54 22.25-60.49 44.33-81.75A139.82 139.82 0 01232 160c32.33 0 62.15 10.65 86.24 30.79a142.22 142.22 0 0137.65 49.54 16.06 16.06 0 0011.12 9c24 5.22 45.42 15.78 61.62 30.56C451.77 301 464 329.82 464 363.2c0 32.85-13.13 62.87-37 84.52-22.89 20.82-53.8 32.28-87 32.28zM510.53 209.79a16.34 16.34 0 00-1.35-15.8 16 16 0 00-19.57-5.58c-10.7 4.65-24.48 7.17-39.92 7.28-55.3.4-101.38-45-101.38-100.31 0-15.75 2.48-29.84 7.18-40.76a16.3 16.3 0 00-1.85-16.33 16 16 0 00-19.1-5c-38.63 16.82-66.18 51.51-75.27 92.54a4 4 0 003.19 4.79 162.54 162.54 0 0176.31 35.59 172.58 172.58 0 0139.64 47.84 16.35 16.35 0 009.54 7.64c23.89 7.17 45.1 18.9 62.25 34.54q4.44 4.07 8.48 8.42a4 4 0 005.16.57 129.12 129.12 0 0046.69-55.43z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/cloudy-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/cloudy-outline.svg deleted file mode 100644 index 9f28cbdfbd2c6b29aee670c5144fbd3abfd7f270..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/cloudy-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Cloudy</title><path d="M100.18 241.19a15.93 15.93 0 0013.37-13.25C126.6 145.59 186.34 96 256 96c64.69 0 107.79 42.36 124.92 87a16.11 16.11 0 0012.53 10.18C449.36 202.06 496 239.21 496 304c0 66-54 112-120 112H116c-55 0-100-27.44-100-88 0-54.43 43.89-80.81 84.18-86.81z" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/cloudy-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/cloudy-sharp.svg deleted file mode 100644 index ec46b89d5fd1f02cc60f065241e4f3f821cbc4cd..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/cloudy-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Cloudy</title><path d="M376 432H116c-32.37 0-60.23-8.57-80.59-24.77C12.24 388.78 0 361.39 0 328c0-61.85 48.44-95.34 97.75-102.64 6.52-41.18 24-76.4 51.11-102.46A153.57 153.57 0 01256 80c35.5 0 68.24 11.69 94.68 33.8a156.42 156.42 0 0145.22 63.61c30.26 4.81 57.45 17.18 77.38 35.36C498.61 235.88 512 267.42 512 304c0 36-14.38 68.88-40.49 92.59C446.36 419.43 412.44 432 376 432z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/cloudy.svg b/ionic/platforms/android/app/src/main/assets/www/svg/cloudy.svg deleted file mode 100644 index 2a0ec630148300c5b08aa22909d91c05c8c6e04c..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/cloudy.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Cloudy</title><path d="M376 432H116c-32.37 0-60.23-8.57-80.59-24.77C12.24 388.78 0 361.39 0 328c0-57.57 42-90.58 87.56-100.75a16 16 0 0012.12-12.39c7.68-36.68 24.45-68.15 49.18-92A153.57 153.57 0 01256 80c35.5 0 68.24 11.69 94.68 33.8a156.24 156.24 0 0142.05 56 16 16 0 0011.37 9.16c27 5.61 51.07 17.33 69.18 33.85C498.61 235.88 512 267.42 512 304c0 36-14.38 68.88-40.49 92.59C446.36 419.43 412.44 432 376 432z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/code-download-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/code-download-outline.svg deleted file mode 100644 index 3dde232e4e92c314affe53f18fcb60696246e076..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/code-download-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Code Download</title><path stroke-linecap="round" stroke-linejoin="round" d="M160 368L32 256l128-112M352 368l128-112-128-112M192 288.1l64 63.9 64-63.9M256 160v176.03" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/code-download-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/code-download-sharp.svg deleted file mode 100644 index a8b3266880f809297dcbb5d42bf087baec338b86..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/code-download-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Code Download</title><path stroke-linecap="square" stroke-miterlimit="10" stroke-width="42" d="M160 368L32 256l128-112M352 368l128-112-128-112M192 288.1l64 63.9 64-63.9M256 160v176.03" class="ionicon-fill-none"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/code-download.svg b/ionic/platforms/android/app/src/main/assets/www/svg/code-download.svg deleted file mode 100644 index 61703132475e21171e645a59c0bf9aea21b03946..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/code-download.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Code Download</title><path stroke-linecap="round" stroke-linejoin="round" stroke-width="42" d="M160 368L32 256l128-112M352 368l128-112-128-112M192 288.1l64 63.9 64-63.9M256 160v176.03" class="ionicon-fill-none"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/code-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/code-outline.svg deleted file mode 100644 index ab012a3ddb8bc782e6cb9eba391c22211ea32719..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/code-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Code</title><path stroke-linecap="round" stroke-linejoin="round" d="M160 368L32 256l128-112M352 368l128-112-128-112" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/code-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/code-sharp.svg deleted file mode 100644 index 319aae7cdc93a880db4636ada4ecf85ffa7d9d98..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/code-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Code</title><path d="M161.98 397.63L0 256l161.98-141.63 27.65 31.61L64 256l125.63 110.02-27.65 31.61zM350.02 397.63l-27.65-31.61L448 256 322.37 145.98l27.65-31.61L512 256 350.02 397.63z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/code-slash-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/code-slash-outline.svg deleted file mode 100644 index fea31db282b1d66f53099847a62de8771085d6ad..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/code-slash-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Code Slash</title><path stroke-linecap="round" stroke-linejoin="round" d="M160 368L32 256l128-112M352 368l128-112-128-112M304 96l-96 320" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/code-slash-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/code-slash-sharp.svg deleted file mode 100644 index 9173680ff0fd9f58a2d2fbc8828fcf82412d11db..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/code-slash-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Code Slash</title><path d="M161.98 397.63L0 256l161.98-141.63 27.65 31.61L64 256l125.63 110.02-27.65 31.61zM350.02 397.63l-27.65-31.61L448 256 322.37 145.98l27.65-31.61L512 256 350.02 397.63zM222.15 442L182 430.08 289.85 70 330 81.92 222.15 442z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/code-slash.svg b/ionic/platforms/android/app/src/main/assets/www/svg/code-slash.svg deleted file mode 100644 index 8b25b64967a5bbc189268871e02416ed6764b468..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/code-slash.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Code Slash</title><path d="M160 389a20.91 20.91 0 01-13.82-5.2l-128-112a21 21 0 010-31.6l128-112a21 21 0 0127.66 31.61L63.89 256l109.94 96.19A21 21 0 01160 389zM352 389a21 21 0 01-13.84-36.81L448.11 256l-109.94-96.19a21 21 0 0127.66-31.61l128 112a21 21 0 010 31.6l-128 112A20.89 20.89 0 01352 389zM208 437a21 21 0 01-20.12-27l96-320a21 21 0 1140.23 12l-96 320A21 21 0 01208 437z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/code-working-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/code-working-outline.svg deleted file mode 100644 index b2e6f54618926021d140b68ee02c1bb1ae59d01a..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/code-working-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Code Working</title><circle cx="256" cy="256" r="26"/><circle cx="346" cy="256" r="26"/><circle cx="166" cy="256" r="26"/><path stroke-linecap="round" stroke-linejoin="round" d="M160 368L32 256l128-112M352 368l128-112-128-112" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/code-working-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/code-working-sharp.svg deleted file mode 100644 index 22f30f9adeff1c3a1f55c3b30b0356f1e63d7986..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/code-working-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Code Working</title><circle cx="256" cy="256" r="26" stroke-linecap="square" stroke-miterlimit="10" stroke-width="10"/><circle cx="346" cy="256" r="26" stroke-linecap="square" stroke-miterlimit="10" stroke-width="10"/><circle cx="166" cy="256" r="26" stroke-linecap="square" stroke-miterlimit="10" stroke-width="10"/><path stroke-linecap="square" stroke-miterlimit="10" stroke-width="42" d="M160 368L32 256l128-112M352 368l128-112-128-112" class="ionicon-fill-none"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/code-working.svg b/ionic/platforms/android/app/src/main/assets/www/svg/code-working.svg deleted file mode 100644 index 6505ea71f140562031a70cdddf438ffd92bc259d..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/code-working.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Code Working</title><circle cx="256" cy="256" r="26" stroke-miterlimit="10" stroke-width="10"/><circle cx="346" cy="256" r="26" stroke-miterlimit="10" stroke-width="10"/><circle cx="166" cy="256" r="26" stroke-miterlimit="10" stroke-width="10"/><path stroke-linecap="round" stroke-linejoin="round" stroke-width="42" d="M160 368L32 256l128-112M352 368l128-112-128-112" class="ionicon-fill-none"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/code.svg b/ionic/platforms/android/app/src/main/assets/www/svg/code.svg deleted file mode 100644 index a21ee1b2ca12dbfdae753d9e325e7049cea4d4f6..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/code.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Code</title><path d="M160 389a20.91 20.91 0 01-13.82-5.2l-128-112a21 21 0 010-31.6l128-112a21 21 0 0127.66 31.61L63.89 256l109.94 96.19A21 21 0 01160 389zM352 389a21 21 0 01-13.84-36.81L448.11 256l-109.94-96.19a21 21 0 0127.66-31.61l128 112a21 21 0 010 31.6l-128 112A20.89 20.89 0 01352 389z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/cog-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/cog-outline.svg deleted file mode 100644 index 6844f0b3b77d9f852d071d249a7b7251eec824f0..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/cog-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Cog</title><path d="M456.7 242.27l-26.08-4.2a8 8 0 01-6.6-6.82c-.5-3.2-1-6.41-1.7-9.51a8.08 8.08 0 013.9-8.62l23.09-12.82a8.05 8.05 0 003.9-9.92l-4-11a7.94 7.94 0 00-9.4-5l-25.89 5a8 8 0 01-8.59-4.11q-2.25-4.2-4.8-8.41a8.16 8.16 0 01.7-9.52l17.29-19.94a8 8 0 00.3-10.62l-7.49-9a7.88 7.88 0 00-10.5-1.51l-22.69 13.63a8 8 0 01-9.39-.9c-2.4-2.11-4.9-4.21-7.4-6.22a8 8 0 01-2.5-9.11l9.4-24.75A8 8 0 00365 78.77l-10.2-5.91a8 8 0 00-10.39 2.21l-16.64 20.84a7.15 7.15 0 01-8.5 2.5s-5.6-2.3-9.8-3.71A8 8 0 01304 87l.4-26.45a8.07 8.07 0 00-6.6-8.42l-11.59-2a8.07 8.07 0 00-9.1 5.61l-8.6 25.05a8 8 0 01-7.79 5.41h-9.8a8.07 8.07 0 01-7.79-5.41l-8.6-25.05a8.07 8.07 0 00-9.1-5.61l-11.59 2a8.07 8.07 0 00-6.6 8.42l.4 26.45a8 8 0 01-5.49 7.71c-2.3.9-7.3 2.81-9.7 3.71-2.8 1-6.1.2-8.8-2.91l-16.51-20.34A8 8 0 00156.75 73l-10.2 5.91a7.94 7.94 0 00-3.3 10.09l9.4 24.75a8.06 8.06 0 01-2.5 9.11c-2.5 2-5 4.11-7.4 6.22a8 8 0 01-9.39.9L111 116.14a8 8 0 00-10.5 1.51l-7.49 9a8 8 0 00.3 10.62l17.29 19.94a8 8 0 01.7 9.52q-2.55 4-4.8 8.41a8.11 8.11 0 01-8.59 4.11l-25.89-5a8 8 0 00-9.4 5l-4 11a8.05 8.05 0 003.9 9.92L85.58 213a7.94 7.94 0 013.9 8.62c-.6 3.2-1.2 6.31-1.7 9.51a8.08 8.08 0 01-6.6 6.82l-26.08 4.2a8.09 8.09 0 00-7.1 7.92v11.72a7.86 7.86 0 007.1 7.92l26.08 4.2a8 8 0 016.6 6.82c.5 3.2 1 6.41 1.7 9.51a8.08 8.08 0 01-3.9 8.62L62.49 311.7a8.05 8.05 0 00-3.9 9.92l4 11a7.94 7.94 0 009.4 5l25.89-5a8 8 0 018.59 4.11q2.25 4.2 4.8 8.41a8.16 8.16 0 01-.7 9.52l-17.29 19.96a8 8 0 00-.3 10.62l7.49 9a7.88 7.88 0 0010.5 1.51l22.69-13.63a8 8 0 019.39.9c2.4 2.11 4.9 4.21 7.4 6.22a8 8 0 012.5 9.11l-9.4 24.75a8 8 0 003.3 10.12l10.2 5.91a8 8 0 0010.39-2.21l16.79-20.64c2.1-2.6 5.5-3.7 8.2-2.6 3.4 1.4 5.7 2.2 9.9 3.61a8 8 0 015.49 7.71l-.4 26.45a8.07 8.07 0 006.6 8.42l11.59 2a8.07 8.07 0 009.1-5.61l8.6-25a8 8 0 017.79-5.41h9.8a8.07 8.07 0 017.79 5.41l8.6 25a8.07 8.07 0 009.1 5.61l11.59-2a8.07 8.07 0 006.6-8.42l-.4-26.45a8 8 0 015.49-7.71c4.2-1.41 7-2.51 9.6-3.51s5.8-1 8.3 2.1l17 20.94A8 8 0 00355 439l10.2-5.91a7.93 7.93 0 003.3-10.12l-9.4-24.75a8.08 8.08 0 012.5-9.12c2.5-2 5-4.1 7.4-6.21a8 8 0 019.39-.9L401 395.66a8 8 0 0010.5-1.51l7.49-9a8 8 0 00-.3-10.62l-17.29-19.94a8 8 0 01-.7-9.52q2.55-4.05 4.8-8.41a8.11 8.11 0 018.59-4.11l25.89 5a8 8 0 009.4-5l4-11a8.05 8.05 0 00-3.9-9.92l-23.09-12.82a7.94 7.94 0 01-3.9-8.62c.6-3.2 1.2-6.31 1.7-9.51a8.08 8.08 0 016.6-6.82l26.08-4.2a8.09 8.09 0 007.1-7.92V250a8.25 8.25 0 00-7.27-7.73zM256 112a143.82 143.82 0 01139.38 108.12A16 16 0 01379.85 240H274.61a16 16 0 01-13.91-8.09l-52.1-91.71a16 16 0 019.85-23.39A146.94 146.94 0 01256 112zM112 256a144 144 0 0143.65-103.41 16 16 0 0125.17 3.47L233.06 248a16 16 0 010 15.87l-52.67 91.7a16 16 0 01-25.18 3.36A143.94 143.94 0 01112 256zm144 144a146.9 146.9 0 01-38.19-4.95 16 16 0 01-9.76-23.44l52.58-91.55a16 16 0 0113.88-8H379.9a16 16 0 0115.52 19.88A143.84 143.84 0 01256 400z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/cog-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/cog-sharp.svg deleted file mode 100644 index 36ab7735817c46aec25d65d6792110cfe38f16dc..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/cog-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Cog</title><path d="M464 249.93a10.58 10.58 0 00-9.36-9.94L429 235.84a5.42 5.42 0 01-4.5-4.67c-.49-3.15-1-6.42-1.7-9.52a5.52 5.52 0 012.63-5.85l22.78-12.65a10.35 10.35 0 005-12.83l-3.95-10.9a10.32 10.32 0 00-12.13-6.51l-25.55 5a5.5 5.5 0 01-5.82-2.81c-1.49-2.79-3.11-5.63-4.8-8.42a5.6 5.6 0 01.44-6.5l17-19.63a10.44 10.44 0 00.39-13.77l-7.42-8.91a10.24 10.24 0 00-13.58-2l-22.37 13.43a5.39 5.39 0 01-6.39-.63c-2.47-2.17-4.95-4.26-7.37-6.19a5.45 5.45 0 01-1.72-6.21l9.26-24.4a10.35 10.35 0 00-4.31-13.07l-10.08-5.85a10.31 10.31 0 00-13.46 2.83L325 96.28a4.58 4.58 0 01-5.6 1.72c-.62-.25-5.77-2.36-9.78-3.7a5.42 5.42 0 01-3.74-5.23l.39-26.07a10.48 10.48 0 00-8.57-10.88l-11.45-2a10.45 10.45 0 00-11.75 7.17L266 82.1a5.42 5.42 0 01-5.36 3.65h-9.75a5.53 5.53 0 01-5.3-3.67l-8.46-24.67a10.46 10.46 0 00-11.77-7.25l-11.46 2a10.46 10.46 0 00-8.57 10.79l.4 26.16a5.45 5.45 0 01-3.86 5.25c-2.28.89-7.26 2.78-9.51 3.63-2 .72-4.19-.07-6-2.1l-16.26-20A10.3 10.3 0 00156.69 73l-10.06 5.83A10.36 10.36 0 00142.31 92l9.25 24.34a5.54 5.54 0 01-1.7 6.23c-2.43 2-4.92 4-7.4 6.22a5.38 5.38 0 01-6.35.64L114 115.74a10.39 10.39 0 00-13.61 2l-7.4 8.9a10.32 10.32 0 00.37 13.76l17.09 19.6a5.42 5.42 0 01.45 6.45c-1.71 2.72-3.34 5.58-4.82 8.44a5.53 5.53 0 01-5.86 2.82l-25.51-4.93a10.34 10.34 0 00-12.14 6.51l-4 10.88a10.37 10.37 0 005 12.85l22.78 12.65a5.39 5.39 0 012.65 5.92l-.23 1.24c-.53 2.8-1 5.45-1.47 8.27a5.48 5.48 0 01-4.46 4.64l-25.7 4.15A10.42 10.42 0 0048 250.16v11.58A10.26 10.26 0 0057.16 272l25.68 4.14a5.41 5.41 0 014.5 4.67c.49 3.16 1 6.42 1.7 9.52a5.52 5.52 0 01-2.63 5.85l-22.77 12.67a10.35 10.35 0 00-5 12.83l4 10.9a10.33 10.33 0 0012.13 6.51l25.55-4.95a5.5 5.5 0 015.82 2.81c1.5 2.8 3.12 5.64 4.8 8.42a5.58 5.58 0 01-.44 6.5l-17 19.64a10.41 10.41 0 00-.5 13.76l7.41 8.91a10.24 10.24 0 0013.58 2l22.37-13.43a5.39 5.39 0 016.39.63c2.48 2.17 5 4.26 7.37 6.19a5.45 5.45 0 011.72 6.21l-9.26 24.4a10.35 10.35 0 004.31 13.07l10.11 5.84a10.3 10.3 0 0013.45-2.82L187 415.92c1.39-1.73 3.6-2.5 5.24-1.84 3.47 1.44 5.8 2.25 9.93 3.63a5.44 5.44 0 013.75 5.23l-.4 26.05a10.5 10.5 0 008.57 10.88l11.45 2a10.44 10.44 0 0011.75-7.17l8.5-24.77a5.48 5.48 0 015.36-3.65h9.75a5.52 5.52 0 015.3 3.67l8.47 24.67a10.48 10.48 0 0010 7.41 9.74 9.74 0 001.78-.16l11.47-2a10.46 10.46 0 008.56-10.79l-.4-26.16a5.43 5.43 0 013.75-5.2c3.84-1.29 6.53-2.33 8.91-3.24l.6-.24c3.06-1.06 4.53.14 5.47 1.31l16.75 20.63A10.3 10.3 0 00355 439l10.07-5.83a10.35 10.35 0 004.31-13.1l-9.24-24.34a5.52 5.52 0 011.69-6.23c2.43-2 4.92-4 7.4-6.22a5.39 5.39 0 016.38-.62l22.39 13.4a10.39 10.39 0 0013.61-2l7.4-8.9a10.31 10.31 0 00-.37-13.75l-17.06-19.67a5.42 5.42 0 01-.45-6.45c1.71-2.71 3.34-5.57 4.82-8.44a5.56 5.56 0 015.86-2.82l25.48 4.97a10.34 10.34 0 0012.14-6.51l3.95-10.88a10.36 10.36 0 00-5-12.84l-22.8-12.67a5.4 5.4 0 01-2.61-5.89l.23-1.25c.53-2.8 1-5.44 1.47-8.26a5.48 5.48 0 014.46-4.64l25.7-4.14a10.43 10.43 0 009.17-10.28v-11.71zM171.59 361.27a135.12 135.12 0 01.5-210.94l60 105.61zM256 391.11a133.75 133.75 0 01-48.49-9.05L268 276.79h121.22C379.21 341.45 323.29 391.11 256 391.11zm12.06-155.9l-59.95-105.5a133.87 133.87 0 0147.89-8.82c67.29 0 123.21 49.66 133.22 114.32z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/cog.svg b/ionic/platforms/android/app/src/main/assets/www/svg/cog.svg deleted file mode 100644 index 10c3c4fda32557c1a7c7a4bb74f7118de9a460d1..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/cog.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Cog</title><path d="M464 249.93a10.58 10.58 0 00-9.36-9.94L429 235.84a5.42 5.42 0 01-4.5-4.67c-.49-3.15-1-6.42-1.7-9.52a5.52 5.52 0 012.63-5.85l22.78-12.65a10.35 10.35 0 005-12.83l-3.95-10.9a10.32 10.32 0 00-12.13-6.51l-25.55 5a5.51 5.51 0 01-5.82-2.81c-1.49-2.79-3.11-5.63-4.8-8.42a5.6 5.6 0 01.44-6.5l17-19.64a10.42 10.42 0 00.39-13.76l-7.42-8.91a10.24 10.24 0 00-13.58-2l-22.37 13.43a5.39 5.39 0 01-6.39-.63c-2.47-2.17-5-4.26-7.37-6.19a5.45 5.45 0 01-1.72-6.21l9.26-24.4a10.35 10.35 0 00-4.31-13.07l-10.09-5.89a10.3 10.3 0 00-13.45 2.83L325 96.28a4.6 4.6 0 01-5.6 1.72c-.61-.25-5.77-2.36-9.78-3.7a5.42 5.42 0 01-3.74-5.23l.39-26.07a10.48 10.48 0 00-8.57-10.88l-11.45-2a10.45 10.45 0 00-11.75 7.17L266 82.1a5.46 5.46 0 01-5.36 3.65h-9.75a5.5 5.5 0 01-5.3-3.67l-8.46-24.67a10.46 10.46 0 00-11.77-7.25l-11.47 2a10.46 10.46 0 00-8.56 10.79l.4 26.16a5.45 5.45 0 01-3.86 5.25c-2.29.89-7.26 2.79-9.52 3.63-2 .72-4.18-.07-5.94-2.1l-16.26-20A10.3 10.3 0 00156.69 73l-10.06 5.83A10.36 10.36 0 00142.31 92l9.25 24.34a5.54 5.54 0 01-1.7 6.23c-2.43 2-4.92 4-7.4 6.22a5.38 5.38 0 01-6.35.64L114 115.74a10.4 10.4 0 00-13.61 2L93 126.63a10.31 10.31 0 00.37 13.75L110.45 160a5.42 5.42 0 01.45 6.45c-1.71 2.72-3.34 5.58-4.82 8.44a5.53 5.53 0 01-5.86 2.82l-25.51-4.93a10.34 10.34 0 00-12.14 6.51l-4 10.88a10.38 10.38 0 005 12.85l22.78 12.65a5.39 5.39 0 012.65 5.92l-.24 1.27c-.52 2.79-1 5.43-1.46 8.24a5.48 5.48 0 01-4.46 4.64l-25.69 4.15A10.42 10.42 0 0048 250.16v11.58A10.26 10.26 0 0057.16 272l25.68 4.14a5.41 5.41 0 014.5 4.67c.49 3.16 1 6.42 1.7 9.52a5.52 5.52 0 01-2.63 5.85l-22.77 12.67a10.35 10.35 0 00-5 12.83l4 10.9a10.33 10.33 0 0012.13 6.51l25.55-4.95a5.49 5.49 0 015.82 2.81c1.5 2.8 3.11 5.63 4.8 8.42a5.58 5.58 0 01-.44 6.5l-17 19.63a10.41 10.41 0 00-.5 13.77l7.41 8.91a10.23 10.23 0 0013.58 2l22.37-13.43a5.39 5.39 0 016.39.63c2.48 2.17 5 4.26 7.37 6.19a5.47 5.47 0 011.73 6.21l-9.27 24.4a10.35 10.35 0 004.31 13.07l10.11 5.84a10.3 10.3 0 0013.45-2.82L187 415.92c1.4-1.73 3.6-2.5 5.23-1.84 3.48 1.44 5.81 2.25 9.94 3.63a5.44 5.44 0 013.75 5.23l-.4 26.05a10.5 10.5 0 008.57 10.88l11.45 2a10.43 10.43 0 0011.75-7.17l8.5-24.77a5.45 5.45 0 015.36-3.65h9.75a5.49 5.49 0 015.3 3.67l8.47 24.67a10.48 10.48 0 0010 7.41 9.74 9.74 0 001.78-.16l11.47-2a10.46 10.46 0 008.56-10.79l-.4-26.16a5.43 5.43 0 013.75-5.2c3.84-1.29 6.54-2.33 8.91-3.25l.6-.23c3.1-1.07 4.6.23 5.47 1.31l16.75 20.63A10.3 10.3 0 00355 439l10.07-5.83a10.35 10.35 0 004.31-13.1l-9.24-24.34a5.52 5.52 0 011.69-6.23c2.43-2 4.92-4 7.4-6.22a5.39 5.39 0 016.38-.62l22.39 13.4a10.39 10.39 0 0013.61-2l7.4-8.9a10.31 10.31 0 00-.37-13.75l-17.06-19.67a5.42 5.42 0 01-.45-6.45c1.71-2.71 3.34-5.57 4.82-8.44a5.55 5.55 0 015.86-2.82l25.48 4.97a10.34 10.34 0 0012.14-6.51l3.95-10.88a10.37 10.37 0 00-5-12.84l-22.8-12.67a5.4 5.4 0 01-2.61-5.89l.24-1.27c.52-2.79 1-5.43 1.46-8.24a5.48 5.48 0 014.46-4.64l25.69-4.14a10.43 10.43 0 009.18-10.28v-11.71zm-282.45 94a15.8 15.8 0 01-25.47 2.66 135.06 135.06 0 01.42-181.65 15.81 15.81 0 0125.5 2.77l45.65 80.35a15.85 15.85 0 010 15.74zM256 391.11a134.75 134.75 0 01-28.31-3 15.81 15.81 0 01-10.23-23.36l46-80a15.79 15.79 0 0113.7-7.93h92.14a15.8 15.8 0 0115.1 20.53c-17.49 54.32-68.4 93.76-128.4 93.76zm7.51-163.9L218 147.07a15.81 15.81 0 0110.31-23.3 134 134 0 0127.69-2.88c60 0 110.91 39.44 128.37 93.79a15.8 15.8 0 01-15.1 20.53h-92a15.78 15.78 0 01-13.76-8z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/color-fill-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/color-fill-outline.svg deleted file mode 100644 index ed9c40be43d329296a0e8b593fe99d6d3a73de2b..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/color-fill-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Color Fill</title><path d="M419.1 337.45a3.94 3.94 0 00-6.1 0c-10.5 12.4-45 46.55-45 77.66 0 27 21.5 48.89 48 48.89h0c26.5 0 48-22 48-48.89 0-31.11-34.3-65.26-44.9-77.66zM387 287.9L155.61 58.36a36 36 0 00-51 0l-5.15 5.15a36 36 0 000 51l52.89 52.89 57-57L56.33 263.2a28 28 0 00.3 40l131.2 126a28.05 28.05 0 0038.9-.1c37.8-36.6 118.3-114.5 126.7-122.9 5.8-5.8 18.2-7.1 28.7-7.1h.3a6.53 6.53 0 004.57-11.2z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/color-fill-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/color-fill-sharp.svg deleted file mode 100644 index c414052b3c3558d27435fead119dfe1b47bcb1c2..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/color-fill-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Color Fill</title><path d="M416 320s-64 48-64 99.84c0 33.28 28.67 60.16 64 60.16s64-27 64-60.16C480 368 416 320 416 320zM144 32l-76 76 70 70L32 280l176 184 152.8-148.3L416 304zm24 116l-39.6-41 15.88-15.89L184 132z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/color-fill.svg b/ionic/platforms/android/app/src/main/assets/www/svg/color-fill.svg deleted file mode 100644 index 2fb46b421ee7891bef0c27966094860f4af3ba1a..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/color-fill.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Color Fill</title><path d="M416 480c-35.29 0-64-29.11-64-64.88 0-33.29 28.67-65.4 44.08-82.64 1.87-2.1 3.49-3.91 4.68-5.31a19.94 19.94 0 0130.55 0c1.13 1.31 2.63 3 4.36 4.93 15.5 17.3 44.33 49.51 44.33 83.05 0 35.74-28.71 64.85-64 64.85zM398.23 276.64L166.89 47.22a52.1 52.1 0 00-73.6 0l-4.51 4.51a53.2 53.2 0 00-15.89 37.33A51.66 51.66 0 0088.14 126l41.51 41.5L45 252a44.52 44.52 0 00-13 32 42.81 42.81 0 0013.5 30.84l131.24 126a44 44 0 0061.08-.18l124.11-120.28a15.6 15.6 0 018.23-4.29 69.21 69.21 0 0111.93-.86h.3a22.53 22.53 0 0015.84-38.59zM152.29 144.85l-41.53-41.52a20 20 0 010-28.34l5.16-5.15a20.07 20.07 0 0128.39 0L186 111.21z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/color-filter-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/color-filter-outline.svg deleted file mode 100644 index 8856f65bf7fb58b5ff912fca7169b062111fc178..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/color-filter-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Color Filter</title><circle cx="256" cy="184" r="120" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="344" cy="328" r="120" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="168" cy="328" r="120" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/color-filter-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/color-filter-sharp.svg deleted file mode 100644 index a6c1871c6db0bdff8f484db9dc521cc4b722e1a0..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/color-filter-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Color Filter</title><path d="M256 185a167.85 167.85 0 01134.9-18.28C382.36 99.83 325.12 48 256 48S129.64 99.83 121.1 166.67A167.85 167.85 0 01256 185zM336 331.73a167.51 167.51 0 01-52.37 118.08A135 135 0 00344 464c75 0 136-61 136-136a136 136 0 00-59.06-112.08A168.53 168.53 0 01336 331.73zM283.58 206.19a167.87 167.87 0 0149.36 89.89 136.14 136.14 0 0058.06-95.7 135.87 135.87 0 00-107.43 5.81zM176.05 331.73a168.53 168.53 0 01-85-115.81A136 136 0 0032 328c0 75 61 136 136 136a135 135 0 0060.42-14.19 167.51 167.51 0 01-52.37-118.08zM179.06 296.08a167.87 167.87 0 0149.36-89.89A135.87 135.87 0 00121 200.38a136.14 136.14 0 0058.06 95.7zM302.9 345.33a168.22 168.22 0 01-93.8 0A135.9 135.9 0 00256 431.6a135.9 135.9 0 0046.9-86.27zM209 311.62a136 136 0 0094 0 135.93 135.93 0 00-47-87.22 135.93 135.93 0 00-47 87.22z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/color-filter.svg b/ionic/platforms/android/app/src/main/assets/www/svg/color-filter.svg deleted file mode 100644 index a55f0dfd7ea7aff7ffa7f53cfe101c1b9f7fa43f..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/color-filter.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Color Filter</title><path d="M253.72 202.53a4 4 0 004.56 0 151.88 151.88 0 01128.44-20.41 4 4 0 005.15-4C388.8 105.86 329 48 256 48s-132.8 57.86-135.87 130.15a4 4 0 005.15 4 151.88 151.88 0 01128.44 20.41zM405.31 212.56a152.53 152.53 0 01-83.08 108.23 4 4 0 00-2.28 3.69c0 1.17.05 2.34.05 3.52a151.58 151.58 0 01-47.15 109.94 4 4 0 00.64 6.31A135.24 135.24 0 00344 464c72.07 0 134.1-60.28 136-132.34a136.07 136.07 0 00-68.76-121.87 4 4 0 00-5.93 2.77z"/><path d="M390.57 203.67a4 4 0 00-2.69-4.4 135.84 135.84 0 00-114.4 12.49 4 4 0 00-.64 6.29 151.92 151.92 0 0144.47 81.4 4 4 0 005.94 2.72 136.29 136.29 0 0067.32-98.5zM192 328c0-1.18 0-2.35.05-3.52a4 4 0 00-2.28-3.69 152.53 152.53 0 01-83.08-108.23 4 4 0 00-5.88-2.77 136.07 136.07 0 00-68.76 121.87C34 403.72 96 464 168.05 464a135.24 135.24 0 0070.46-19.75 4 4 0 00.64-6.31A151.58 151.58 0 01192 328z"/><path d="M168 192a135.34 135.34 0 00-43.88 7.27 4 4 0 00-2.69 4.4 136.29 136.29 0 0067.32 98.5 4 4 0 005.94-2.72 151.92 151.92 0 0144.47-81.4 4 4 0 00-.64-6.29A135.18 135.18 0 00168 192zM256 336a151.44 151.44 0 01-42.72-6.12 4 4 0 00-5.15 4 135.69 135.69 0 0045.18 95.4 4 4 0 005.38 0 135.69 135.69 0 0045.18-95.4 4 4 0 00-5.15-4A151.44 151.44 0 01256 336zM302.57 308.33a135.94 135.94 0 00-43.87-81.58 4.06 4.06 0 00-5.4 0 135.94 135.94 0 00-43.87 81.58 4 4 0 002.69 4.4 136.06 136.06 0 0087.76 0 4 4 0 002.69-4.4z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/color-palette-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/color-palette-outline.svg deleted file mode 100644 index 9d81bb6ed0f2a939c164f87f44cb92c19e506608..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/color-palette-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Color Palette</title><path d="M430.11 347.9c-6.6-6.1-16.3-7.6-24.6-9-11.5-1.9-15.9-4-22.6-10-14.3-12.7-14.3-31.1 0-43.8l30.3-26.9c46.4-41 46.4-108.2 0-149.2-34.2-30.1-80.1-45-127.8-45-55.7 0-113.9 20.3-158.8 60.1-83.5 73.8-83.5 194.7 0 268.5 41.5 36.7 97.5 55 152.9 55.4h1.7c55.4 0 110-17.9 148.8-52.4 14.4-12.7 11.99-36.6.1-47.7z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="144" cy="208" r="32"/><circle cx="152" cy="311" r="32"/><circle cx="224" cy="144" r="32"/><circle cx="256" cy="367" r="48"/><circle cx="328" cy="144" r="32"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/color-palette-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/color-palette-sharp.svg deleted file mode 100644 index 324b80f63b28ab0f2584be851bcb9d5ef65dc37a..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/color-palette-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Color Palette</title><path d="M416 352c-12.6-.84-21-4-28-12-14-16-14-36 5.49-52.48l32.82-29.14c50.27-44.41 50.27-117.21 0-161.63C389.26 64.14 339.54 48 287.86 48c-60.34 0-123.39 22-172 65.11-90.46 80-90.46 210.92 0 290.87 45 39.76 105.63 59.59 165.64 60h1.84c60 0 119.07-19.5 161.2-56.77C464 390 464 385 444.62 355.56 440 348 431 353 416 352zM112 208a32 32 0 1132 32 32 32 0 01-32-32zm40 135a32 32 0 1132-32 32 32 0 01-32 32zm40-199a32 32 0 1132 32 32 32 0 01-32-32zm64 271a48 48 0 1148-48 48 48 0 01-48 48zm72-239a32 32 0 1132-32 32 32 0 01-32 32z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/color-palette.svg b/ionic/platforms/android/app/src/main/assets/www/svg/color-palette.svg deleted file mode 100644 index 02e0137c9082be26c89a00ef39de8d65450b1c0e..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/color-palette.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Color Palette</title><path d="M441 336.2l-.06-.05c-9.93-9.18-22.78-11.34-32.16-12.92l-.69-.12c-9.05-1.49-10.48-2.5-14.58-6.17-2.44-2.17-5.35-5.65-5.35-9.94s2.91-7.77 5.34-9.94l30.28-26.87c25.92-22.91 40.2-53.66 40.2-86.59s-14.25-63.68-40.2-86.6c-35.89-31.59-85-49-138.37-49C223.72 48 162 71.37 116 112.11c-43.87 38.77-68 90.71-68 146.24s24.16 107.47 68 146.23c21.75 19.24 47.49 34.18 76.52 44.42a266.17 266.17 0 0086.87 15h1.81c61 0 119.09-20.57 159.39-56.4 9.7-8.56 15.15-20.83 15.34-34.56.21-14.17-5.37-27.95-14.93-36.84zM112 208a32 32 0 1132 32 32 32 0 01-32-32zm40 135a32 32 0 1132-32 32 32 0 01-32 32zm40-199a32 32 0 1132 32 32 32 0 01-32-32zm64 271a48 48 0 1148-48 48 48 0 01-48 48zm72-239a32 32 0 1132-32 32 32 0 01-32 32z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/color-wand-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/color-wand-outline.svg deleted file mode 100644 index 1167a47405fc21f0bc91e8640783ea14d4868f74..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/color-wand-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Color Wand</title><rect stroke-miterlimit="10" x="280.48" y="122.9" width="63.03" height="378.2" rx="31.52" transform="rotate(-45 312.002 311.994)" class="ionicon-fill-none ionicon-stroke-width"/><path d="M178.38 178.38a31.64 31.64 0 000 44.75L223.25 268 268 223.25l-44.87-44.87a31.64 31.64 0 00-44.75 0z"/><path stroke-miterlimit="10" stroke-linecap="round" d="M48 192h48M90.18 90.18l33.94 33.94M192 48v48M293.82 90.18l-33.94 33.94M124.12 259.88l-33.94 33.94" class="ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/color-wand-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/color-wand-sharp.svg deleted file mode 100644 index 12cb4c328e0afc121e7c47e8db626a0e601bf280..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/color-wand-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Color Wand</title><path d="M133.441 200.647l67.197-67.196 78.142 78.142-67.196 67.196zM301.41 234.21l-67.19 67.2L412 480l68-68-178.59-177.79zM32 176h80v32H32zM67.624 90.25l22.627-22.628 56.569 56.569-22.627 22.627zM176 32h32v80h-32zM237.32 124.195l56.569-56.569 22.627 22.627-56.569 56.569zM67.62 293.887l56.569-56.569 22.627 22.627-56.569 56.569z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/color-wand.svg b/ionic/platforms/android/app/src/main/assets/www/svg/color-wand.svg deleted file mode 100644 index e6c3fe8503e4008ce6214f7dfe5f089b2dfc0071..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/color-wand.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Color Wand</title><path d="M96 208H48c-8.8 0-16-7.2-16-16s7.2-16 16-16h48c8.8 0 16 7.2 16 16s-7.2 16-16 16zM124.1 140.1c-4.2 0-8.3-1.7-11.3-4.7l-33.9-33.9c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l33.9 33.9c6.3 6.2 6.3 16.4 0 22.6-3 3-7 4.7-11.3 4.7zM192 112c-8.8 0-16-7.2-16-16V48c0-8.8 7.2-16 16-16s16 7.2 16 16v48c0 8.8-7.2 16-16 16zM259.9 140.1c-8.8 0-16-7.2-16-16 0-4.2 1.7-8.3 4.7-11.3l33.9-33.9c6.2-6.2 16.4-6.2 22.6 0 6.2 6.2 6.2 16.4 0 22.6l-33.9 33.9c-3 3-7.1 4.7-11.3 4.7zM90.2 309.8c-8.8 0-16-7.2-16-16 0-4.2 1.7-8.3 4.7-11.3l33.9-33.9c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6l-33.9 33.9c-3 3-7.1 4.7-11.3 4.7zM234.2 167c-18.4-18.7-48.5-19-67.2-.7s-19 48.5-.7 67.2l.7.7 39.5 39.5c3.1 3.1 8.2 3.1 11.3 0l55.9-55.9c3.1-3.1 3.1-8.2 0-11.3L234.2 167zM457 389.8L307.6 240.4c-3.1-3.1-8.2-3.1-11.3 0l-55.9 55.9c-3.1 3.1-3.1 8.2 0 11.3L389.8 457c18.4 18.7 48.5 19 67.2.7 18.7-18.4 19-48.5.7-67.2-.2-.2-.4-.5-.7-.7z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/compass-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/compass-outline.svg deleted file mode 100644 index 23ed8fabe82a58dcde963f5d276b4240ae2f8445..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/compass-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Compass</title><path d="M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><path d="M350.67 150.93l-117.2 46.88a64 64 0 00-35.66 35.66l-46.88 117.2a8 8 0 0010.4 10.4l117.2-46.88a64 64 0 0035.66-35.66l46.88-117.2a8 8 0 00-10.4-10.4zM256 280a24 24 0 1124-24 24 24 0 01-24 24z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/compass-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/compass-sharp.svg deleted file mode 100644 index d039130014db3d29d3db1409b3d43746a2fa41a4..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/compass-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Compass</title><circle cx="256" cy="256" r="24"/><path d="M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm48 256l-160 64 64-160 160-64z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/compass.svg b/ionic/platforms/android/app/src/main/assets/www/svg/compass.svg deleted file mode 100644 index f389b79cc1e34ae53e16ffa07e7ae98bebb79378..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/compass.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Compass</title><circle cx="256" cy="256" r="24"/><path d="M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm105.07 113.33l-46.88 117.2a64 64 0 01-35.66 35.66l-117.2 46.88a8 8 0 01-10.4-10.4l46.88-117.2a64 64 0 0135.66-35.66l117.2-46.88a8 8 0 0110.4 10.4z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/construct-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/construct-outline.svg deleted file mode 100644 index 163871805b00db9e9625390877cd6511642a39cc..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/construct-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Construct</title><path d="M436.67 184.11a27.17 27.17 0 01-38.3 0l-22.48-22.49a27.15 27.15 0 010-38.29l50.89-50.89a.85.85 0 00-.26-1.38C393.68 57 351.09 64.15 324.05 91c-25.88 25.69-27.35 64.27-17.87 98a27 27 0 01-7.67 27.14l-173 160.76a40.76 40.76 0 1057.57 57.54l162.15-173.3a27 27 0 0126.77-7.7c33.46 8.94 71.49 7.26 97.07-17.94 27.49-27.08 33.42-74.94 20.1-102.33a.85.85 0 00-1.36-.22z" stroke-linecap="round" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><path d="M224 284c-17.48-17-25.49-24.91-31-30.29a18.24 18.24 0 01-3.33-21.35 20.76 20.76 0 013.5-4.62l15.68-15.29a18.66 18.66 0 015.63-3.87 18.11 18.11 0 0120 3.62c5.45 5.29 15.43 15 33.41 32.52M317.07 291.3c40.95 38.1 90.62 83.27 110 99.41a13.46 13.46 0 01.94 19.92L394.63 444a14 14 0 01-20.29-.76c-16.53-19.18-61.09-67.11-99.27-107" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M17.34 193.5l29.41-28.74a4.71 4.71 0 013.41-1.35 4.85 4.85 0 013.41 1.35h0a9.86 9.86 0 008.19 2.77c3.83-.42 7.92-1.6 10.57-4.12 6-5.8-.94-17.23 4.34-24.54a207 207 0 0119.78-22.6c6-5.88 29.84-28.32 69.9-44.45A107.31 107.31 0 01206.67 64c22.59 0 40 10 46.26 15.67a89.54 89.54 0 0110.28 11.64 78.92 78.92 0 00-9.21-2.77 68.82 68.82 0 00-20-1.26c-13.33 1.09-29.41 7.26-38 14-13.9 11-19.87 25.72-20.81 44.71-.68 14.12 2.72 22.1 36.1 55.49a6.6 6.6 0 01-.34 9.16l-18.22 18a6.88 6.88 0 01-9.54.09c-21.94-21.94-36.65-33.09-45-38.16s-15.07-6.5-18.3-6.85a30.85 30.85 0 00-18.27 3.87 11.39 11.39 0 00-2.64 2 14.14 14.14 0 00.42 20.08l1.71 1.6a4.63 4.63 0 010 6.64L71.73 246.6a4.71 4.71 0 01-3.41 1.4 4.86 4.86 0 01-3.41-1.35l-47.57-46.43a4.88 4.88 0 010-6.72z" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/construct-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/construct-sharp.svg deleted file mode 100644 index c95c70f70ae78c096009043c00827ad6440bae13..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/construct-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Construct</title><path d="M497.14 111.38l-81.09 80.84-48.58-48.41L448.56 63c-45.22-22-108.65-22.09-146.2 15.35-35.32 35.2-39.73 90.61-22.54 134.2L99.57 391.37a12 12 0 000 17l52.27 52.11a12 12 0 0017 0l180-180.5c43.16 16.21 98 11.64 132.74-23 37.5-37.45 37.42-100.34 15.56-145.6z"/><path d="M365.45 308.62l-71.83 72 75.53 79.92a10.88 10.88 0 0015.65.21l60-60.46a11 11 0 00-.24-15.69zM119 212c0-4.87-4-9.33-7.45-12.78l-.25-.24-1.54-1.47a1.06 1.06 0 01-.26-.8 16.16 16.16 0 019.52-2c1.27.13 5.91.9 12.4 4.91 3.38 2.09 32.63 30.23 43.93 40.7a11 11 0 00.14 15.35l7.43 7.86 65.66-65.17-8.25-7.84a10.87 10.87 0 00-15.31-.06c-23-24.68-29-35.45-31-42.45-4.42-15.47 4.14-28 14-36 5.84-4.62 17.88-8.08 29-9a52.72 52.72 0 0111.61.6c3.47.5 6.3 1.14 7.39 1.4a68.51 68.51 0 0111 4l12-19a88.38 88.38 0 00-13.4-17.7 115.05 115.05 0 00-5.19-5.1c-7.78-7.15-28-19.2-54.59-19.2a117.38 117.38 0 00-44.77 8.82c-37.44 15.34-61.88 36.25-73.11 47.35l-.07.07A219.55 219.55 0 0067 128.56c-5.35 7.53-4.77 15.84-4.38 21.34 0 .32 0 .67.07 1a18.41 18.41 0 00-10.78-3.5A18 18 0 0039 152.73L2 189.62a6.79 6.79 0 000 9.6L65 262a6.72 6.72 0 009.5 0l37.06-37c3.44-3.44 7.44-8.14 7.44-13z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/construct.svg b/ionic/platforms/android/app/src/main/assets/www/svg/construct.svg deleted file mode 100644 index 4b52b67940e5089295aefbb33ceef8737737a689..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/construct.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Construct</title><path d="M503.58 126.2a16.85 16.85 0 00-27.07-4.55l-51.15 51.15a11.15 11.15 0 01-15.66 0l-22.48-22.48a11.17 11.17 0 010-15.67l50.88-50.89a16.85 16.85 0 00-5.27-27.4c-39.71-17-89.08-7.45-120 23.29-26.81 26.61-34.83 68-22 113.7a11 11 0 01-3.16 11.1L114.77 365.1a56.76 56.76 0 1080.14 80.18L357 272.08a11 11 0 0110.9-3.17c45 12 86 4 112.43-22 15.2-15 25.81-36.17 29.89-59.71 3.83-22.2 1.41-44.44-6.64-61z"/><path d="M437.33 378.41c-13.94-11.59-43.72-38.4-74.07-66.22l-66.07 70.61c28.24 30 53.8 57.85 65 70.88l.07.08A30 30 0 00383.72 464h1.1a30.11 30.11 0 0021-8.62l.07-.07 33.43-33.37a29.46 29.46 0 00-2-43.53zM118.54 214.55a20.48 20.48 0 00-3-10.76 2.76 2.76 0 012.62-4.22h.06c.84.09 5.33.74 11.7 4.61 4.73 2.87 18.23 12.08 41.73 35.54a34.23 34.23 0 007.22 22.12l66.23-61.55a33.73 33.73 0 00-21.6-9.2 2.65 2.65 0 01-.21-.26l-.65-.69-24.54-33.84a28.45 28.45 0 01-4-26.11 35.23 35.23 0 0111.78-16.35c5.69-4.41 18.53-9.72 29.44-10.62a52.92 52.92 0 0115.19.94 65.57 65.57 0 017.06 2.13 15.46 15.46 0 002.15.63 16 16 0 0016.38-25.06c-.26-.35-1.32-1.79-2.89-3.73a91.85 91.85 0 00-9.6-10.36c-8.15-7.36-29.27-19.77-57-19.77a123.13 123.13 0 00-46.3 9c-38.37 15.45-63.47 36.58-75.01 47.79l-.09.09A222.14 222.14 0 0063.7 129.5a27 27 0 00-4.7 11.77 7.33 7.33 0 01-7.71 6.17H50.2a20.65 20.65 0 00-14.59 5.9L6.16 182.05l-.32.32a20.89 20.89 0 00-.24 28.72c.19.2.37.39.57.58L53.67 258a21 21 0 0014.65 6 20.65 20.65 0 0014.59-5.9l29.46-28.79a20.51 20.51 0 006.17-14.76z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/contract-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/contract-outline.svg deleted file mode 100644 index d5b8559b001471b64fed6a2ecb6b31cecc6f0728..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/contract-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Contract</title><path stroke-linecap="round" stroke-linejoin="round" d="M304 416V304h112M314.2 314.23L432 432M208 96v112H96M197.8 197.77L80 80M416 208H304V96M314.23 197.8L432 80M96 304h112v112M197.77 314.2L80 432" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/contract-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/contract-sharp.svg deleted file mode 100644 index 86ed686fd64aa908aa2f45b8c435a78b94b14b23..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/contract-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Contract</title><path stroke-linecap="square" stroke-miterlimit="10" d="M304 416V304h112M314.2 314.23L432 432M208 96v112H96M197.8 197.77L80 80M416 208H304V96M314.23 197.8L432 80M96 304h112v112M197.77 314.2L80 432" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/contract.svg b/ionic/platforms/android/app/src/main/assets/www/svg/contract.svg deleted file mode 100644 index d5b8559b001471b64fed6a2ecb6b31cecc6f0728..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/contract.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Contract</title><path stroke-linecap="round" stroke-linejoin="round" d="M304 416V304h112M314.2 314.23L432 432M208 96v112H96M197.8 197.77L80 80M416 208H304V96M314.23 197.8L432 80M96 304h112v112M197.77 314.2L80 432" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/contrast-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/contrast-outline.svg deleted file mode 100644 index 909d646472082c37712d1b8777f6af3c8fda3d61..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/contrast-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Contrast</title><circle cx="256" cy="256" r="208" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M256 464c-114.88 0-208-93.12-208-208S141.12 48 256 48z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/contrast-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/contrast-sharp.svg deleted file mode 100644 index e9eb77c38f1d571101118a674a3665a86140f2e2..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/contrast-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Contrast</title><path d="M256 32C132.29 32 32 132.29 32 256s100.29 224 224 224 224-100.29 224-224S379.71 32 256 32zM128.72 383.28A180 180 0 01256 76v360a178.82 178.82 0 01-127.28-52.72z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/contrast.svg b/ionic/platforms/android/app/src/main/assets/www/svg/contrast.svg deleted file mode 100644 index 2af01d9cbfc1025c7df94fb5f3cfabd613e10560..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/contrast.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Contrast</title><path d="M256 32A224 224 0 0097.61 414.39 224 224 0 10414.39 97.61 222.53 222.53 0 00256 32zM64 256c0-105.87 86.13-192 192-192v384c-105.87 0-192-86.13-192-192z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/copy-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/copy-outline.svg deleted file mode 100644 index 24c2c350d92967b417e5354222848c90bdb7a3f4..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/copy-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Copy</title><rect x="128" y="128" width="336" height="336" rx="57" ry="57" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M383.5 128l.5-24a56.16 56.16 0 00-56-56H112a64.19 64.19 0 00-64 64v216a56.16 56.16 0 0056 56h24" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/copy-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/copy-sharp.svg deleted file mode 100644 index d4095443ce419b887ba18b47396cf17d978135a0..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/copy-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Copy</title><path d="M456 480H136a24 24 0 01-24-24V128a16 16 0 0116-16h328a24 24 0 0124 24v320a24 24 0 01-24 24z"/><path d="M112 80h288V56a24 24 0 00-24-24H60a28 28 0 00-28 28v316a24 24 0 0024 24h24V112a32 32 0 0132-32z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/copy.svg b/ionic/platforms/android/app/src/main/assets/www/svg/copy.svg deleted file mode 100644 index 4f8ff95c127fe14ec0cc1530a825c2cbe95a0c1b..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/copy.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Copy</title><path d="M408 480H184a72 72 0 01-72-72V184a72 72 0 0172-72h224a72 72 0 0172 72v224a72 72 0 01-72 72z"/><path d="M160 80h235.88A72.12 72.12 0 00328 32H104a72 72 0 00-72 72v224a72.12 72.12 0 0048 67.88V160a80 80 0 0180-80z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/create-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/create-outline.svg deleted file mode 100644 index 563a2cf5c4b737bc307f2ea803d4858a5b93a655..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/create-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Create</title><path d="M384 224v184a40 40 0 01-40 40H104a40 40 0 01-40-40V168a40 40 0 0140-40h167.48" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M459.94 53.25a16.06 16.06 0 00-23.22-.56L424.35 65a8 8 0 000 11.31l11.34 11.32a8 8 0 0011.34 0l12.06-12c6.1-6.09 6.67-16.01.85-22.38zM399.34 90L218.82 270.2a9 9 0 00-2.31 3.93L208.16 299a3.91 3.91 0 004.86 4.86l24.85-8.35a9 9 0 003.93-2.31L422 112.66a9 9 0 000-12.66l-9.95-10a9 9 0 00-12.71 0z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/create-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/create-sharp.svg deleted file mode 100644 index 89940aa0516f7d67a2b340425cdc63041a59e490..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/create-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Create</title><path d="M464.37 49.2a22.07 22.07 0 00-31.88-.76l-18.31 18.25 31.18 31.1 18-17.91a22.16 22.16 0 001.01-30.68zM252.76 336H176V259.24l9.4-9.38L323.54 112H48v352h352V188.46L262.14 326.6l-9.38 9.4zM400 143.16l32.79-32.86-31.09-31.09L368.85 112H400v31.16z"/><path d="M208 304h31.49L400 143.16V112h-31.15L208 272.51V304z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/create.svg b/ionic/platforms/android/app/src/main/assets/www/svg/create.svg deleted file mode 100644 index b7239933d5f1936ce847df21308f10eccca6883b..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/create.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Create</title><path d="M459.94 53.25a16.06 16.06 0 00-23.22-.56L424.35 65a8 8 0 000 11.31l11.34 11.32a8 8 0 0011.34 0l12.06-12c6.1-6.09 6.67-16.01.85-22.38zM399.34 90L218.82 270.2a9 9 0 00-2.31 3.93L208.16 299a3.91 3.91 0 004.86 4.86l24.85-8.35a9 9 0 003.93-2.31L422 112.66a9 9 0 000-12.66l-9.95-10a9 9 0 00-12.71 0z"/><path d="M386.34 193.66L264.45 315.79A41.08 41.08 0 01247.58 326l-25.9 8.67a35.92 35.92 0 01-44.33-44.33l8.67-25.9a41.08 41.08 0 0110.19-16.87l122.13-121.91a8 8 0 00-5.65-13.66H104a56 56 0 00-56 56v240a56 56 0 0056 56h240a56 56 0 0056-56V199.31a8 8 0 00-13.66-5.65z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/crop-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/crop-outline.svg deleted file mode 100644 index a3bda386f067cdc555039afba25130e7c100f774..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/crop-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Crop</title><path d="M144 48v272a48 48 0 0048 48h272" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M368 304V192a48 48 0 00-48-48H208M368 368v96M144 144H48" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/crop-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/crop-sharp.svg deleted file mode 100644 index 68f5508444a57a1f5bfbaea77fdaf781dfbadfaa..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/crop-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Crop</title><path d="M166 346V32h-44v90H32v44h90v224h224v90h44v-90h90v-44H166z"/><path d="M346 320h44V122H192v44h154v154z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/crop.svg b/ionic/platforms/android/app/src/main/assets/www/svg/crop.svg deleted file mode 100644 index 32cb327e4baadb614bbc4ed128329e05b7d20c86..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/crop.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Crop</title><path d="M458 346H192a26 26 0 01-26-26V54a22 22 0 00-44 0v68H54a22 22 0 000 44h68v154a70.08 70.08 0 0070 70h154v68a22 22 0 0044 0v-68h68a22 22 0 000-44z"/><path d="M214 166h106a26 26 0 0126 26v106a22 22 0 0044 0V192a70.08 70.08 0 00-70-70H214a22 22 0 000 44z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/cube-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/cube-outline.svg deleted file mode 100644 index deba79ce576a3d9a239cab0dd4ab7df4448cb60c..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/cube-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Cube</title><path d="M448 341.37V170.61A32 32 0 00432.11 143l-152-88.46a47.94 47.94 0 00-48.24 0L79.89 143A32 32 0 0064 170.61v170.76A32 32 0 0079.89 369l152 88.46a48 48 0 0048.24 0l152-88.46A32 32 0 00448 341.37z" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-linejoin="round" d="M69 153.99l187 110 187-110M256 463.99v-200" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/cube-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/cube-sharp.svg deleted file mode 100644 index e5b3cdbb6866a8c5e43c0acc08675c6e71e4ea77..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/cube-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Cube</title><path d="M48 170v196.92L240 480V284L48 170zM272 480l192-113.08V170L272 284zm176-122.36zM448 144L256 32 64 144l192 112 192-112z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/cube.svg b/ionic/platforms/android/app/src/main/assets/www/svg/cube.svg deleted file mode 100644 index 84a8568160b628adb5bbee3521e91f44fe853e87..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/cube.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Cube</title><path d="M440.9 136.3a4 4 0 000-6.91L288.16 40.65a64.14 64.14 0 00-64.33 0L71.12 129.39a4 4 0 000 6.91L254 243.88a4 4 0 004.06 0zM54 163.51a4 4 0 00-6 3.49v173.89a48 48 0 0023.84 41.39L234 479.51a4 4 0 006-3.46V274.3a4 4 0 00-2-3.46zM272 275v201a4 4 0 006 3.46l162.15-97.23A48 48 0 00464 340.89V167a4 4 0 00-6-3.45l-184 108a4 4 0 00-2 3.45z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/cut-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/cut-outline.svg deleted file mode 100644 index e842817d4540a3d88bf2717417a433126dcfe2cb..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/cut-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Cut</title><circle cx="104" cy="152" r="56" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="104" cy="360" r="56" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M157 175l-11 15 37 15s3.46-6.42 7-10z" stroke-linecap="square" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><path d="M154.17 334.43L460 162c-2.5-6.7-28-12-64-4-29.12 6.47-121.16 29.05-159.16 56.05C205.85 236.06 227 272 192 298c-25.61 19-44.43 22.82-44.43 22.82zM344.47 278.24L295 306.67c14.23 6.74 65.54 33.27 117 36.33 14.92.89 30 .39 39-6z" stroke-linecap="round" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="256" cy="240" r="32" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/cut-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/cut-sharp.svg deleted file mode 100644 index 94a8a0d136db9bb92641802eb311ec6a00df2d88..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/cut-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Cut</title><path d="M480 128h-48l-198.94 70.46-59.13-31.59a72.16 72.16 0 10-25.69 41.47l52.2 31.72L192 277l-43.64 26.76a71.74 71.74 0 1024.79 38L480 160zm-376.52 64a40 40 0 1140-40 40 40 0 01-40 40zm0 208a40 40 0 1140-40 40 40 0 01-40 40zm152-144a16 16 0 1116-16 16 16 0 01-16 16z"/><path d="M343.79 259.87l-83.74 48.18L432 368h47.99l.01-32-136.21-76.13z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/cut.svg b/ionic/platforms/android/app/src/main/assets/www/svg/cut.svg deleted file mode 100644 index 89e30018334b5f4c288aa0a32c67c178f225a863..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/cut.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Cut</title><path d="M103.48 224a71.64 71.64 0 0044.76-15.66l41.5 16.89 6.82-12.63a39.15 39.15 0 014.32-6.37l14.22-14.42-41.17-24.94A72 72 0 10103.48 224zm0-112a40 40 0 11-40 40 40 40 0 0140-40z"/><path d="M480 169l-5.52-12.58c-4.48-10.42-14.74-16-32.78-17.85-10.12-1-26.95-1.24-49.69 3.81-20 4.45-122.14 28.2-164.95 58.62-20.25 14.39-24.06 33.67-27.06 49.16-2.78 14.14-5 25.31-18 35-15 11.14-27.27 16.38-33.58 18.6a71.74 71.74 0 1024.79 38zm-224.52 87a16 16 0 1116-16 16 16 0 01-16 16zm-152 144a40 40 0 1140-40 40 40 0 01-40 40z"/><path d="M343.79 259.87l-83.74 48.18 27.63 13.08 3.62 1.74C310 331.92 359.74 356 410.53 359c3.89.23 7.47.34 10.78.34C442 359.31 453 354 459.75 350L480 336z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/desktop-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/desktop-outline.svg deleted file mode 100644 index cf37a41746330b1fe043299660da24c44af12ae1..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/desktop-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Desktop</title><rect x="32" y="64" width="448" height="320" rx="32" ry="32" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-linejoin="round" d="M304 448l-8-64h-80l-8 64h96z" class="ionicon-stroke-width"/><path stroke-linecap="round" stroke-linejoin="round" d="M368 448H144" class="ionicon-fill-none ionicon-stroke-width"/><path d="M32 304v48a32.09 32.09 0 0032 32h384a32.09 32.09 0 0032-32v-48zm224 64a16 16 0 1116-16 16 16 0 01-16 16z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/desktop-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/desktop-sharp.svg deleted file mode 100644 index 420049d7d5b06a3ef0ed6ee5bfb83b95bf2a51a4..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/desktop-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Desktop</title><path d="M480 48H32a16 16 0 00-16 16v320a16 16 0 0016 16h168v32h-72v32h256v-32h-72v-32h168a16 16 0 0016-16V64a16 16 0 00-16-16zm-20 36v216H52V84zM240.13 354.08a16 16 0 1113.79 13.79 16 16 0 01-13.79-13.79z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/desktop.svg b/ionic/platforms/android/app/src/main/assets/www/svg/desktop.svg deleted file mode 100644 index 6c5ade523ead9cfbd9a6f3c232e5d90353ac62ae..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/desktop.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Desktop</title><path d="M16 352a48.05 48.05 0 0048 48h133.88l-4 32H144a16 16 0 000 32h224a16 16 0 000-32h-49.88l-4-32H448a48.05 48.05 0 0048-48v-48H16zm240-16a16 16 0 11-16 16 16 16 0 0116-16zM496 96a48.05 48.05 0 00-48-48H64a48.05 48.05 0 00-48 48v192h480z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/dice-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/dice-outline.svg deleted file mode 100644 index 76e8ebb4fd1796f2d5cabf78420e9320b5a47cf5..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/dice-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Dice</title><path stroke-linecap="round" stroke-linejoin="round" d="M448 341.37V170.61A32 32 0 00432.11 143l-152-88.46a47.94 47.94 0 00-48.24 0L79.89 143A32 32 0 0064 170.61v170.76A32 32 0 0079.89 369l152 88.46a48 48 0 0048.24 0l152-88.46A32 32 0 00448 341.37z" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-linejoin="round" d="M69 153.99l187 110 187-110M256 463.99v-200" class="ionicon-fill-none ionicon-stroke-width"/><ellipse cx="256" cy="152" rx="24" ry="16"/><ellipse cx="208" cy="296" rx="16" ry="24"/><ellipse cx="112" cy="328" rx="16" ry="24"/><ellipse cx="304" cy="296" rx="16" ry="24"/><ellipse cx="400" cy="240" rx="16" ry="24"/><ellipse cx="304" cy="384" rx="16" ry="24"/><ellipse cx="400" cy="328" rx="16" ry="24"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/dice-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/dice-sharp.svg deleted file mode 100644 index 0b6f93a2a0375a74b82c004629321e061ddc2e01..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/dice-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Dice</title><path d="M48 366.92L240 480V284L48 170zM192 288c8.84 0 16 10.75 16 24s-7.16 24-16 24-16-10.75-16-24 7.16-24 16-24zm-96 32c8.84 0 16 10.75 16 24s-7.16 24-16 24-16-10.75-16-24 7.16-24 16-24zM272 284v196l192-113.08V170zm48 140c-8.84 0-16-10.75-16-24s7.16-24 16-24 16 10.75 16 24-7.16 24-16 24zm0-88c-8.84 0-16-10.75-16-24s7.16-24 16-24 16 10.75 16 24-7.16 24-16 24zm96 32c-8.84 0-16-10.75-16-24s7.16-24 16-24 16 10.75 16 24-7.16 24-16 24zm0-88c-8.84 0-16-10.75-16-24s7.16-24 16-24 16 10.75 16 24-7.16 24-16 24zm32 77.64zM256 32L64 144l192 112 192-112zm0 120c-13.25 0-24-7.16-24-16s10.75-16 24-16 24 7.16 24 16-10.75 16-24 16z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/dice.svg b/ionic/platforms/android/app/src/main/assets/www/svg/dice.svg deleted file mode 100644 index 1b8e3590ae6950fa31727dc2b40f41fa1f8c9dc3..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/dice.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Dice</title><path d="M440.88 129.37L288.16 40.62a64.14 64.14 0 00-64.33 0L71.12 129.37a4 4 0 000 6.9L254 243.85a4 4 0 004.06 0L440.9 136.27a4 4 0 00-.02-6.9zM256 152c-13.25 0-24-7.16-24-16s10.75-16 24-16 24 7.16 24 16-10.75 16-24 16zM238 270.81L54 163.48a4 4 0 00-6 3.46v173.92a48 48 0 0023.84 41.39L234 479.48a4 4 0 006-3.46V274.27a4 4 0 00-2-3.46zM96 368c-8.84 0-16-10.75-16-24s7.16-24 16-24 16 10.75 16 24-7.16 24-16 24zm96-32c-8.84 0-16-10.75-16-24s7.16-24 16-24 16 10.75 16 24-7.16 24-16 24zM458 163.51L274 271.56a4 4 0 00-2 3.45V476a4 4 0 006 3.46l162.15-97.23A48 48 0 00464 340.86V167a4 4 0 00-6-3.49zM320 424c-8.84 0-16-10.75-16-24s7.16-24 16-24 16 10.75 16 24-7.16 24-16 24zm0-88c-8.84 0-16-10.75-16-24s7.16-24 16-24 16 10.75 16 24-7.16 24-16 24zm96 32c-8.84 0-16-10.75-16-24s7.16-24 16-24 16 10.75 16 24-7.16 24-16 24zm0-88c-8.84 0-16-10.75-16-24s7.16-24 16-24 16 10.75 16 24-7.16 24-16 24z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/disc-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/disc-outline.svg deleted file mode 100644 index 31eccc954bb7376d60044d6a5167e630022a6f4b..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/disc-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Disc</title><circle cx="256" cy="256" r="208" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="256" cy="256" r="96" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="256" cy="256" r="32"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/disc-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/disc-sharp.svg deleted file mode 100644 index 077b42fdd261a40cbf3650706f5bce97d7abb81a..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/disc-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Disc</title><circle cx="256" cy="256" r="32"/><path d="M414.39 97.61A224 224 0 1097.61 414.39 224 224 0 10414.39 97.61zM256 336a80 80 0 1180-80 80.09 80.09 0 01-80 80z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/disc.svg b/ionic/platforms/android/app/src/main/assets/www/svg/disc.svg deleted file mode 100644 index 14adf1994d07795e54d3c1b2cc474f59e2bc5d9c..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/disc.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Disc</title><path d="M256 176a80 80 0 1080 80 80.09 80.09 0 00-80-80zm0 112a32 32 0 1132-32 32 32 0 01-32 32z"/><path d="M414.39 97.61A224 224 0 1097.61 414.39 224 224 0 10414.39 97.61zM256 368a112 112 0 11112-112 112.12 112.12 0 01-112 112z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/document-attach-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/document-attach-outline.svg deleted file mode 100644 index 74d24123ea53ea58f145dd8bbd77beb899ae15e7..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/document-attach-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Document Attach</title><path d="M208 64h66.75a32 32 0 0122.62 9.37l141.26 141.26a32 32 0 019.37 22.62V432a48 48 0 01-48 48H192a48 48 0 01-48-48V304" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M288 72v120a32 32 0 0032 32h120" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M160 80v152a23.69 23.69 0 01-24 24c-12 0-24-9.1-24-24V88c0-30.59 16.57-56 48-56s48 24.8 48 55.38v138.75c0 43-27.82 77.87-72 77.87s-72-34.86-72-77.87V144" stroke-linecap="round" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/document-attach-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/document-attach-sharp.svg deleted file mode 100644 index 24d2046507be72970be1cecb79ef629e2b608302..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/document-attach-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Document Attach</title><path d="M280 240a8 8 0 01-8-8V48h-57.25a65.42 65.42 0 00-6.5-9.81C196.72 23.88 179.59 16 160 16c-37.68 0-64 29.61-64 72v144c0 25 20.34 40 40 40a39.57 39.57 0 0040-40V80h-32v152a7.75 7.75 0 01-8 8c-2.23 0-8-1.44-8-8V88c0-19.34 8.41-40 32-40 29.69 0 32 30.15 32 39.38v138.75c0 17.45-5.47 33.23-15.41 44.46C166.5 282 152.47 288 136 288s-30.5-6-40.59-17.41C85.47 259.36 80 243.58 80 226.13V144H48v82.13c0 51.51 33.19 89.63 80 93.53V468a12 12 0 0012 12h312a12 12 0 0012-12V240z"/><path d="M308 208h146.31a2 2 0 001.42-3.41L307.41 56.27a2 2 0 00-3.41 1.42V204a4 4 0 004 4z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/document-attach.svg b/ionic/platforms/android/app/src/main/assets/www/svg/document-attach.svg deleted file mode 100644 index 40ec7aa516b9da030f2fd915d93ad17fe7c8e4a0..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/document-attach.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Document Attach</title><path d="M460 240H320a48 48 0 01-48-48V52a4 4 0 00-4-4h-53.25a65.42 65.42 0 00-6.5-9.81C196.72 23.88 179.59 16 160 16c-37.68 0-64 29.61-64 72v144c0 25 20.34 40 40 40a39.57 39.57 0 0040-40V80a16 16 0 00-32 0v152a7.75 7.75 0 01-8 8c-2.23 0-8-1.44-8-8V88c0-19.34 8.41-40 32-40 29.69 0 32 30.15 32 39.38v138.75c0 17.45-5.47 33.23-15.41 44.46C166.5 282 152.47 288 136 288s-30.5-6-40.59-17.41C85.47 259.36 80 243.58 80 226.13V144a16 16 0 00-32 0v82.13c0 51.51 33.19 89.63 80 93.53V432a64 64 0 0064 64h208a64 64 0 0064-64V244a4 4 0 00-4-4z"/><path d="M320 208h129.81a2 2 0 001.41-3.41L307.41 60.78a2 2 0 00-3.41 1.41V192a16 16 0 0016 16z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/document-lock-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/document-lock-outline.svg deleted file mode 100644 index d7f28a46ebe33c2afdb6b184258a0e97d5a8ab8b..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/document-lock-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Document Lock</title><path d="M288 304v-18c0-16.63-14.26-30-32-30s-32 13.37-32 30v18" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M304 416h-96a32 32 0 01-32-32v-48a32 32 0 0132-32h96a32 32 0 0132 32v48a32 32 0 01-32 32z"/><path d="M416 221.25V416a48 48 0 01-48 48H144a48 48 0 01-48-48V96a48 48 0 0148-48h98.75a32 32 0 0122.62 9.37l141.26 141.26a32 32 0 019.37 22.62z" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M256 50.88V176a32 32 0 0032 32h125.12" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/document-lock-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/document-lock-sharp.svg deleted file mode 100644 index 9036c9b0623fee90d47c9d4ef7e993cd024f3927..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/document-lock-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Document Lock</title><path d="M276 192h146.31a2 2 0 001.42-3.41L275.41 40.27a2 2 0 00-3.41 1.42V188a4 4 0 004 4zM256 272c-8.82 0-16 6.28-16 14v18h32v-18c0-7.72-7.18-14-16-14z"/><path d="M248 224a8 8 0 01-8-8V32H92a12 12 0 00-12 12v424a12 12 0 0012 12h328a12 12 0 0012-12V224zm88 175.91A16.1 16.1 0 01319.91 416H192.09A16.1 16.1 0 01176 399.91V320c0-10 7-16 16-16h16v-18c0-25.36 21.53-46 48-46s48 20.64 48 46v18h16a15.8 15.8 0 0116 16z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/document-lock.svg b/ionic/platforms/android/app/src/main/assets/www/svg/document-lock.svg deleted file mode 100644 index 35ce8738164d2f5d29151d5bf6dfb7e4b7812deb..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/document-lock.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Document Lock</title><path d="M288 192h129.81a2 2 0 001.41-3.41L275.41 44.78a2 2 0 00-3.41 1.41V176a16 16 0 0016 16zM256 272c-8.82 0-16 6.28-16 14v18h32v-18c0-7.72-7.18-14-16-14z"/><path d="M428 224H288a48 48 0 01-48-48V36a4 4 0 00-4-4h-92a64 64 0 00-64 64v320a64 64 0 0064 64h224a64 64 0 0064-64V228a4 4 0 00-4-4zm-92 160a32 32 0 01-32 32h-96a32 32 0 01-32-32v-48a32 32 0 0132-32v-18c0-25.36 21.53-46 48-46s48 20.64 48 46v18a32 32 0 0132 32z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/document-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/document-outline.svg deleted file mode 100644 index c3bf502b91042c0a392faa76899dd0c2ce06fdad..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/document-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Document</title><path d="M416 221.25V416a48 48 0 01-48 48H144a48 48 0 01-48-48V96a48 48 0 0148-48h98.75a32 32 0 0122.62 9.37l141.26 141.26a32 32 0 019.37 22.62z" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M256 56v120a32 32 0 0032 32h120" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/document-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/document-sharp.svg deleted file mode 100644 index 9c83a50b6f6f45a0a5de3f90bebccfc227567185..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/document-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Document</title><path d="M240 216V32H92a12 12 0 00-12 12v424a12 12 0 0012 12h328a12 12 0 0012-12V224H248a8 8 0 01-8-8z"/><path d="M272 41.69V188a4 4 0 004 4h146.31a2 2 0 001.42-3.41L275.41 40.27a2 2 0 00-3.41 1.42z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/document-text-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/document-text-outline.svg deleted file mode 100644 index b3b5702efd1c3902b8498004a907df5551732e5c..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/document-text-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Document Text</title><path d="M416 221.25V416a48 48 0 01-48 48H144a48 48 0 01-48-48V96a48 48 0 0148-48h98.75a32 32 0 0122.62 9.37l141.26 141.26a32 32 0 019.37 22.62z" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M256 56v120a32 32 0 0032 32h120M176 288h160M176 368h160" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/document-text-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/document-text-sharp.svg deleted file mode 100644 index d369134e3ffe724eca9695ef1d2d5ed8da1987c7..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/document-text-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Document Text</title><path d="M272 41.69V188a4 4 0 004 4h146.31a2 2 0 001.42-3.41L275.41 40.27a2 2 0 00-3.41 1.42z"/><path d="M248 224a8 8 0 01-8-8V32H92a12 12 0 00-12 12v424a12 12 0 0012 12h328a12 12 0 0012-12V224zm104 160H160v-32h192zm0-80H160v-32h192z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/document-text.svg b/ionic/platforms/android/app/src/main/assets/www/svg/document-text.svg deleted file mode 100644 index 4b8b5a9300c6544b97b3567fa4d15e0a210d7774..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/document-text.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Document Text</title><path d="M428 224H288a48 48 0 01-48-48V36a4 4 0 00-4-4h-92a64 64 0 00-64 64v320a64 64 0 0064 64h224a64 64 0 0064-64V228a4 4 0 00-4-4zm-92 160H176a16 16 0 010-32h160a16 16 0 010 32zm0-80H176a16 16 0 010-32h160a16 16 0 010 32z"/><path d="M419.22 188.59L275.41 44.78a2 2 0 00-3.41 1.41V176a16 16 0 0016 16h129.81a2 2 0 001.41-3.41z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/document.svg b/ionic/platforms/android/app/src/main/assets/www/svg/document.svg deleted file mode 100644 index fc4aca9bf30c75e5adc616b774cc40526028f867..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/document.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Document</title><path d="M428 224H288a48 48 0 01-48-48V36a4 4 0 00-4-4h-92a64 64 0 00-64 64v320a64 64 0 0064 64h224a64 64 0 0064-64V228a4 4 0 00-4-4z"/><path d="M419.22 188.59L275.41 44.78a2 2 0 00-3.41 1.41V176a16 16 0 0016 16h129.81a2 2 0 001.41-3.41z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/documents-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/documents-outline.svg deleted file mode 100644 index 66a6e79a9fb3a9ef6cc23fde243509eb0b8b74b2..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/documents-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Documents</title><path d="M336 264.13V436c0 24.3-19.05 44-42.95 44H107c-23.95 0-43-19.7-43-44V172a44.26 44.26 0 0144-44h94.12a24.55 24.55 0 0117.49 7.36l109.15 111a25.4 25.4 0 017.24 17.77z" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M200 128v108a28.34 28.34 0 0028 28h108" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M176 128V76a44.26 44.26 0 0144-44h94a24.83 24.83 0 0117.61 7.36l109.15 111A25.09 25.09 0 01448 168v172c0 24.3-19.05 44-42.95 44H344" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M312 32v108a28.34 28.34 0 0028 28h108" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/documents-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/documents-sharp.svg deleted file mode 100644 index 2bff9e121e790a3cf8b4dabfd0d374d835e4d34b..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/documents-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Documents</title><path d="M307.94 248L216 154.52V242a6 6 0 006 6z"/><path d="M184 268V144H60a12 12 0 00-12 12v328a12 12 0 0012 12h248a12 12 0 0012-12V280H196a12 12 0 01-12-12zM366 120h85.94L360 26.52V114a6 6 0 006 6z"/><path d="M340 152a12 12 0 01-12-12V16H172a12 12 0 00-12 12v84h42.12A40.81 40.81 0 01231 124.14l109.16 111a41.11 41.11 0 0111.83 29V400H452a12 12 0 0012-12V152z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/documents.svg b/ionic/platforms/android/app/src/main/assets/www/svg/documents.svg deleted file mode 100644 index 8362c694f895a617d697f06a5ff9d436ef547a36..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/documents.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Documents</title><path d="M298.39 248a4 4 0 002.86-6.8l-78.4-79.72a4 4 0 00-6.85 2.81V236a12 12 0 0012 12z"/><path d="M197 267a43.67 43.67 0 01-13-31v-92h-72a64.19 64.19 0 00-64 64v224a64 64 0 0064 64h144a64 64 0 0064-64V280h-92a43.61 43.61 0 01-31-13zM372 120h70.39a4 4 0 002.86-6.8l-78.4-79.72a4 4 0 00-6.85 2.81V108a12 12 0 0012 12z"/><path d="M372 152a44.34 44.34 0 01-44-44V16H220a60.07 60.07 0 00-60 60v36h42.12A40.81 40.81 0 01231 124.14l109.16 111a41.11 41.11 0 0111.83 29V400h53.05c32.51 0 58.95-26.92 58.95-60V152z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/download-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/download-outline.svg deleted file mode 100644 index 9d2ca9938e7184f924f311ce4b07de417637005a..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/download-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Download</title><path d="M336 176h40a40 40 0 0140 40v208a40 40 0 01-40 40H136a40 40 0 01-40-40V216a40 40 0 0140-40h40" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-linejoin="round" d="M176 272l80 80 80-80M256 48v288" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/download-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/download-sharp.svg deleted file mode 100644 index 6305e54ea64fdfd3d672d4f0447490fe86704bb1..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/download-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Download</title><path d="M272 160v147.37l64-64L358.63 266 256 368.63 153.37 266 176 243.37l64 64V160H92a12 12 0 00-12 12v296a12 12 0 0012 12h328a12 12 0 0012-12V172a12 12 0 00-12-12zM240 32h32v128h-32z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/download.svg b/ionic/platforms/android/app/src/main/assets/www/svg/download.svg deleted file mode 100644 index da8f71bf3e45cb0c034537d106ff07e710ce1e5f..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/download.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Download</title><path d="M376 160H272v153.37l52.69-52.68a16 16 0 0122.62 22.62l-80 80a16 16 0 01-22.62 0l-80-80a16 16 0 0122.62-22.62L240 313.37V160H136a56.06 56.06 0 00-56 56v208a56.06 56.06 0 0056 56h240a56.06 56.06 0 0056-56V216a56.06 56.06 0 00-56-56zM272 48a16 16 0 00-32 0v112h32z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/duplicate-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/duplicate-outline.svg deleted file mode 100644 index 893ca727be752f9a63f979fb4910566eef78b161..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/duplicate-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Duplicate</title><rect x="128" y="128" width="336" height="336" rx="57" ry="57" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M383.5 128l.5-24a56.16 56.16 0 00-56-56H112a64.19 64.19 0 00-64 64v216a56.16 56.16 0 0056 56h24M296 216v160M376 296H216" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/duplicate-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/duplicate-sharp.svg deleted file mode 100644 index decea130afc758a3809f4332d03d4ff5f409a4f3..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/duplicate-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Duplicate</title><path d="M112 80h288V56a24 24 0 00-24-24H66a34 34 0 00-34 34v310a24 24 0 0024 24h24V112a32 32 0 0132-32z"/><path d="M456 112H136a24 24 0 00-24 24v320a24 24 0 0024 24h320a24 24 0 0024-24V136a24 24 0 00-24-24zm-64 200h-80v80h-32v-80h-80v-32h80v-80h32v80h80z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/duplicate.svg b/ionic/platforms/android/app/src/main/assets/www/svg/duplicate.svg deleted file mode 100644 index 92242812885247ed856a4033ebdb51d4dd7cebad..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/duplicate.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Duplicate</title><path d="M408 112H184a72 72 0 00-72 72v224a72 72 0 0072 72h224a72 72 0 0072-72V184a72 72 0 00-72-72zm-32.45 200H312v63.55c0 8.61-6.62 16-15.23 16.43A16 16 0 01280 376v-64h-63.55c-8.61 0-16-6.62-16.43-15.23A16 16 0 01216 280h64v-63.55c0-8.61 6.62-16 15.23-16.43A16 16 0 01312 216v64h64a16 16 0 0116 16.77c-.42 8.61-7.84 15.23-16.45 15.23z"/><path d="M395.88 80A72.12 72.12 0 00328 32H104a72 72 0 00-72 72v224a72.12 72.12 0 0048 67.88V160a80 80 0 0180-80z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/ear-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/ear-outline.svg deleted file mode 100644 index 566778ec543d68bfe6c0e3ece2d745a68fded416..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/ear-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Ear</title><path d="M335.72 330.76C381.73 299.5 416 251.34 416 192a160 160 0 00-320 0v206.57c0 44.26 35.74 81.43 80 81.43h0c44.26 0 66.83-25.94 77.29-40 14.77-19.81 41.71-81.56 82.43-109.24z" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M160 304V184c0-48.4 43.2-88 96-88h0c52.8 0 96 39.6 96 88" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M160 239c25-18 79.82-15 79.82-15 26 0 41.17 29.42 26 50.6 0 0-36.86 42.4-41.86 61.4" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/ear-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/ear-sharp.svg deleted file mode 100644 index cab723c3fdd44dd3096cf8dbf40e73f5edebc367..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/ear-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Ear</title><path d="M380.48 68.09C347.09 34.5 302.88 16 256 16 159 16 80 95 80 192v206.57a97.59 97.59 0 0028 68.49A94.49 94.49 0 00176 496c19.93 0 41.06-7.69 62.8-22.87a181.46 181.46 0 0025.88-21.86C327.37 390.16 432 288.06 432 192c0-46.49-18.29-90.49-51.52-123.91zM368 200h-32v-16c0-39.7-35.89-72-80-72s-80 32.3-80 72v30.41c27.5-7.84 59.89-6.62 64.26-6.41a48 48 0 0138.62 75.9c-.3.41-.61.81-.95 1.2-16.55 19-36 45.49-38.46 55l-4.07 15.47-30.94-8.14 4.07-15.47c5.51-20.94 36.93-58.2 44.66-67.15A16 16 0 00239.82 240h-.88c-10.67-.58-42.66-.25-62.12 8l-.82.35V320h-32V184c0-57.35 50.24-104 112-104s112 46.65 112 104z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/ear.svg b/ionic/platforms/android/app/src/main/assets/www/svg/ear.svg deleted file mode 100644 index 5327dfa2ab56c79b1c67cecbd8627f669d4e0c18..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/ear.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Ear</title><path d="M256 16C159 16 80 95 80 192v206.57a97.59 97.59 0 0028 68.49A94.51 94.51 0 00176 496c36.86 0 67.18-15.62 90.12-46.42 4.48-6 9.55-14.74 15.42-24.85 15.32-26.37 36.29-62.47 63.17-80.74 25.77-17.51 47.23-39.54 62-63.72C423.51 252.94 432 223.24 432 192c0-97-78.95-176-176-176zm96 184a16 16 0 01-16-16c0-39.7-35.89-72-80-72s-80 32.3-80 72v30.42c27.19-7.84 58.4-6.72 64.28-6.42a48 48 0 0138.6 75.9c-.3.41-.61.81-.95 1.2-16.55 19-36 45.48-38.46 55a16 16 0 01-30.94-8.14c5.51-20.94 36.93-58.2 44.66-67.15A16 16 0 00239.82 240h-.88c-16.6-.89-45.89.8-62.94 8.31V304a16 16 0 01-32 0V184c0-57.35 50.24-104 112-104s112 46.65 112 104a16 16 0 01-16 16z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/earth-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/earth-outline.svg deleted file mode 100644 index 1092a6793b7eacf705cf19c509b7950c5b76d1d0..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/earth-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Earth</title><path d="M464 256c0-114.87-93.13-208-208-208S48 141.13 48 256s93.13 208 208 208 208-93.13 208-208z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><path d="M445.57 172.14c-16.06.1-14.48 29.73-34.49 15.75-7.43-5.18-12-12.71-21.33-15-8.15-2-16.5.08-24.55 1.47-9.15 1.58-20 2.29-26.94 9.22-6.71 6.67-10.26 15.62-17.4 22.33-13.81 13-19.64 27.19-10.7 45.57 8.6 17.67 26.59 27.26 46 26 19.07-1.27 38.88-12.33 38.33 15.38-.2 9.8 1.85 16.6 4.86 25.71 2.79 8.4 2.6 16.54 3.24 25.21 1.18 16.2 4.16 34.36 12.2 48.67l15-21.16c1.85-2.62 5.72-6.29 6.64-9.38 1.63-5.47-1.58-14.87-1.95-21s-.19-12.34-1.13-18.47c-1.32-8.59-6.4-16.64-7.1-25.13-1.29-15.81 1.6-28.43-10.58-41.65-11.76-12.75-29-15.81-45.47-13.22-8.3 1.3-41.71 6.64-28.3-12.33 2.65-3.73 7.28-6.79 10.26-10.34 2.59-3.09 4.84-8.77 7.88-11.18s17-5.18 21-3.95 8.17 7 11.64 9.56a49.89 49.89 0 0021.81 9.36c13.66 2 42.22-5.94 42-23.46-.04-8.4-7.84-20.1-10.92-27.96zM287.45 316.3c-5.33-22.44-35.82-29.94-52.26-42.11-9.45-7-17.86-17.81-30.27-18.69-5.72-.41-10.51.83-16.18-.64-5.2-1.34-9.28-4.14-14.82-3.41-10.35 1.36-16.88 12.42-28 10.92-10.55-1.42-21.42-13.76-23.82-23.81-3.08-12.92 7.14-17.11 18.09-18.26 4.57-.48 9.7-1 14.09.67 5.78 2.15 8.51 7.81 13.7 10.67 9.73 5.33 11.7-3.19 10.21-11.83-2.23-12.94-4.83-18.22 6.71-27.12 8-6.14 14.84-10.58 13.56-21.61-.76-6.48-4.31-9.41-1-15.86 2.51-4.91 9.4-9.34 13.89-12.27 11.59-7.56 49.65-7 34.1-28.16-4.57-6.21-13-17.31-21-18.83-10-1.89-14.44 9.27-21.41 14.19-7.2 5.09-21.22 10.87-28.43 3-9.7-10.59 6.43-14.07 10-21.46s-8.27-21.36-14.61-24.9l-29.81 33.43a41.52 41.52 0 008.34 31.86c5.93 7.63 15.37 10.08 15.8 20.5.42 10-1.14 15.12-7.68 22.15-2.83 3-4.83 7.26-7.71 10.07-3.53 3.43-2.22 2.38-7.73 3.32-10.36 1.75-19.18 4.45-29.19 7.21C95.34 199.94 93.8 172.69 86.2 162l-25 20.19c-.27 3.31 4.1 9.4 5.29 13 6.83 20.57 20.61 36.48 29.51 56.16 9.37 20.84 34.53 15.06 45.64 33.32 9.86 16.2-.67 36.71 6.71 53.67 5.36 12.31 18 15 26.72 24 8.91 9.09 8.72 21.53 10.08 33.36a305.22 305.22 0 007.45 41.28c1.21 4.69 2.32 10.89 5.53 14.76 2.2 2.66 9.75 4.95 6.7 5.83 4.26.7 11.85 4.68 15.4 1.76 4.68-3.84 3.43-15.66 4.24-21 2.43-15.9 10.39-31.45 21.13-43.35 10.61-11.74 25.15-19.69 34.11-33 8.73-12.98 11.36-30.49 7.74-45.68zm-33.39 26.32c-6 10.71-19.36 17.88-27.95 26.39-2.33 2.31-7.29 10.31-10.21 8.58-2.09-1.24-2.8-11.62-3.57-14a61.17 61.17 0 00-21.71-29.95c-3.13-2.37-10.89-5.45-12.68-8.7-2-3.53-.2-11.86-.13-15.7.11-5.6-2.44-14.91-1.06-20 1.6-5.87-1.48-2.33 3.77-3.49 2.77-.62 14.21 1.39 17.66 2.11 5.48 1.14 8.5 4.55 12.82 8 11.36 9.11 23.87 16.16 36.6 23.14 9.86 5.46 12.76 12.37 6.46 23.62zM184.46 67.09c4.74 4.63 9.2 10.11 16.27 10.57 6.69.45 13-3.17 18.84 1.38 6.48 5 11.15 11.33 19.75 12.89 8.32 1.51 17.13-3.35 19.19-11.86 2-8.11-2.31-16.93-2.57-25.07 0-1.13.61-6.15-.17-7-.58-.64-5.42.08-6.16.1q-8.13.24-16.22 1.12a207.1 207.1 0 00-57.18 14.65c2.43 1.68 5.48 2.35 8.25 3.22zM356.4 123.27c8.49 0 17.11-3.8 14.37-13.62-2.3-8.23-6.22-17.16-15.76-12.72-6.07 2.82-14.67 10-15.38 17.12-.81 8.08 11.11 9.22 16.77 9.22zM349.62 166.24c8.67 5.19 21.53 2.75 28.07-4.66 5.11-5.8 8.12-15.87 17.31-15.86a15.4 15.4 0 0110.82 4.41c3.8 3.93 3.05 7.62 3.86 12.54 1.81 11.05 13.66.63 16.75-3.65 2-2.79 4.71-6.93 3.8-10.56-.84-3.39-4.8-7-6.56-10.11-5.14-9-9.37-19.47-17.07-26.74-7.41-7-16.52-6.19-23.55 1.08-5.76 6-12.45 10.75-16.39 18.05-2.78 5.13-5.91 7.58-11.54 8.91-3.1.73-6.64 1-9.24 3.08-7.24 5.7-3.12 19.39 3.74 23.51z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/earth-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/earth-sharp.svg deleted file mode 100644 index 77306e34ea0e02ba27778bbdd9e3399eab56e72b..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/earth-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Earth</title><path d="M267 474l-.8-.13a.85.85 0 00.8.13zM448.9 187.78a5.51 5.51 0 00-10.67-.63A5.52 5.52 0 01433 191h-15.47a5.48 5.48 0 01-2.84-.79l-22.38-13.42a5.48 5.48 0 00-2.84-.79h-35.8a5.48 5.48 0 00-3.06.93l-44.15 29.43A5.52 5.52 0 00304 211v41.74a5.51 5.51 0 002.92 4.87l57.89 30.9a5.55 5.55 0 012.92 4.8l.27 23.49a5.53 5.53 0 002.85 4.75l23.26 12.87a5.54 5.54 0 012.85 4.83v48.6a5.52 5.52 0 009.17 4.14c9.38-8.26 22.83-20.32 24.62-23.08q4.44-6.87 8.33-14.07a207.39 207.39 0 0013.6-31c12.68-36.71 2.66-102.7-3.78-136.06zM286.4 302.8l-61.33-46a4 4 0 00-2.4-.8h-29.1a3.78 3.78 0 01-2.68-1.11l-13.72-13.72a4 4 0 00-2.83-1.17h-53.19a3.79 3.79 0 01-2.68-6.47l8.42-8.42a3.78 3.78 0 012.68-1.11h32.37a8 8 0 007.7-5.83l6.89-24.5a4 4 0 012-2.47L206 177.06a3.79 3.79 0 002.05-3.37v-12.5a3.82 3.82 0 01.68-2.17l14.6-21.02a3.75 3.75 0 011.78-1.38l20.43-7.67a3.79 3.79 0 002.46-3.55V114a3.8 3.8 0 00-1.69-3.16l-20.48-13.62A3.83 3.83 0 00222 97l-27.88 13.94a3.78 3.78 0 01-4-.41l-13.22-10.45a3.8 3.8 0 01.1-6l10.74-7.91a3.78 3.78 0 00-.09-6.16l-16.73-11.67a3.78 3.78 0 00-4-.22c-6.05 3.31-23.8 13.11-30.1 17.52a209.48 209.48 0 00-68.16 80c-1.82 3.76-4.07 7.59-4.29 11.72s-3.46 13.35-4.81 17.08a3.78 3.78 0 00.24 3.1l35.69 65.58a3.74 3.74 0 001.38 1.44l37.55 22.54a3.78 3.78 0 011.81 2.73l7.52 54.54a3.82 3.82 0 001.61 2.61l29.3 20.14a4 4 0 011.65 2.48l15.54 73.8a3.6 3.6 0 00.49 1.22c1.46 2.36 7.28 11 14.3 12.28-.65.18-1.23.59-1.88.78a47.63 47.63 0 015 1.16c2 .54 4 1 6 1.43 3.13.62 3.44 1.1 4.94-1.68 2-3.72 4.29-5 6-5.46a3.85 3.85 0 002.89-2.9l10.07-46.68a4 4 0 011.6-2.42l45-31.9a4 4 0 001.69-3.27V306a4 4 0 00-1.55-3.2z"/><path d="M262 48s-3.65.21-4.39.23q-8.13.24-16.22 1.12A207.45 207.45 0 00184.21 64c2.43 1.68-1.75 3.22-1.75 3.22L189 80h35l24 12 21-12zM354.23 120.06l16.11-14a4 4 0 00-.94-6.65l-18.81-8.73a4 4 0 00-5.3 1.9l-7.75 16.21a4 4 0 001.49 5.11l10.46 6.54a4 4 0 004.74-.38zM429.64 140.67l-5.83-9c-.09-.14-.17-.28-.25-.43-1.05-2.15-9.74-19.7-17-26.51-5.45-5.15-7-3.67-7.43-2.53a3.77 3.77 0 01-1.19 1.6l-28.84 23.31a4 4 0 01-2.51.89h-14.93a4 4 0 00-2.83 1.17l-12 12a4 4 0 000 5.66l12 12a4 4 0 002.83 1.17h75.17a4 4 0 004-4.17l-.55-13.15a4 4 0 00-.64-2.01z"/><path d="M256 72a184 184 0 11-130.1 53.9A182.77 182.77 0 01256 72m0-40C132.3 32 32 132.3 32 256s100.3 224 224 224 224-100.3 224-224S379.7 32 256 32z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/earth.svg b/ionic/platforms/android/app/src/main/assets/www/svg/earth.svg deleted file mode 100644 index 84057a2c3e5cdf7c387cafa3cb8e61e581bdd8cf..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/earth.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Earth</title><path d="M414.39 97.74A224 224 0 1097.61 414.52 224 224 0 10414.39 97.74zM64 256.13a191.63 191.63 0 016.7-50.31c7.34 15.8 18 29.45 25.25 45.66 9.37 20.84 34.53 15.06 45.64 33.32 9.86 16.21-.67 36.71 6.71 53.67 5.36 12.31 18 15 26.72 24 8.91 9.08 8.72 21.52 10.08 33.36a305.36 305.36 0 007.45 41.27c0 .1 0 .21.08.31C117.8 411.13 64 339.8 64 256.13zm192 192a193.12 193.12 0 01-32-2.68c.11-2.71.16-5.24.43-7 2.43-15.9 10.39-31.45 21.13-43.35 10.61-11.74 25.15-19.68 34.11-33 8.78-13 11.41-30.5 7.79-45.69-5.33-22.44-35.82-29.93-52.26-42.1-9.45-7-17.86-17.82-30.27-18.7-5.72-.4-10.51.83-16.18-.63-5.2-1.35-9.28-4.15-14.82-3.42-10.35 1.36-16.88 12.42-28 10.92-10.55-1.41-21.42-13.76-23.82-23.81-3.08-12.92 7.14-17.11 18.09-18.26 4.57-.48 9.7-1 14.09.68 5.78 2.14 8.51 7.8 13.7 10.66 9.73 5.34 11.7-3.19 10.21-11.83-2.23-12.94-4.83-18.21 6.71-27.12 8-6.14 14.84-10.58 13.56-21.61-.76-6.48-4.31-9.41-1-15.86 2.51-4.91 9.4-9.34 13.89-12.27 11.59-7.56 49.65-7 34.1-28.16-4.57-6.21-13-17.31-21-18.83-10-1.89-14.44 9.27-21.41 14.19-7.2 5.09-21.22 10.87-28.43 3-9.7-10.59 6.43-14.06 10-21.46 1.65-3.45 0-8.24-2.78-12.75q5.41-2.28 11-4.23a15.6 15.6 0 008 3c6.69.44 13-3.18 18.84 1.38 6.48 5 11.15 11.32 19.75 12.88 8.32 1.51 17.13-3.34 19.19-11.86 1.25-5.18 0-10.65-1.2-16a190.83 190.83 0 01105 32.21c-2-.76-4.39-.67-7.34.7-6.07 2.82-14.67 10-15.38 17.12-.81 8.08 11.11 9.22 16.77 9.22 8.5 0 17.11-3.8 14.37-13.62-1.19-4.26-2.81-8.69-5.42-11.37a193.27 193.27 0 0118 14.14c-.09.09-.18.17-.27.27-5.76 6-12.45 10.75-16.39 18.05-2.78 5.14-5.91 7.58-11.54 8.91-3.1.73-6.64 1-9.24 3.08-7.24 5.7-3.12 19.4 3.74 23.51 8.67 5.19 21.53 2.75 28.07-4.66 5.11-5.8 8.12-15.87 17.31-15.86a15.4 15.4 0 0110.82 4.41c3.8 3.94 3.05 7.62 3.86 12.54 1.43 8.74 9.14 4 13.83-.41a192.12 192.12 0 019.24 18.77c-5.16 7.43-9.26 15.53-21.67 6.87-7.43-5.19-12-12.72-21.33-15.06-8.15-2-16.5.08-24.55 1.47-9.15 1.59-20 2.29-26.94 9.22-6.71 6.68-10.26 15.62-17.4 22.33-13.81 13-19.64 27.19-10.7 45.57 8.6 17.67 26.59 27.26 46 26 19.07-1.27 38.88-12.33 38.33 15.38-.2 9.81 1.85 16.6 4.86 25.71 2.79 8.4 2.6 16.54 3.24 25.21a158 158 0 004.74 30.07A191.75 191.75 0 01256 448.13z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/easel-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/easel-outline.svg deleted file mode 100644 index 7acde1257b644dbc150466c6c1d940182a93389b..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/easel-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Easel</title><rect x="48" y="80" width="416" height="272" rx="32" ry="32" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-linejoin="round" d="M256 416v-64M256 80V48M400 464l-32-112M112 464l32-112" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/easel-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/easel-sharp.svg deleted file mode 100644 index ea6e1fba8c75553685ff6c7e51a2dd6d34782926..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/easel-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Easel</title><path d="M468 64H278V32h-44v32H44a12 12 0 00-12 12v280a12 12 0 0012 12h78.19L89.93 470.46l36.53 9.61L161.74 368H234v64h44v-64h71.84l31 111.7 36.83-8.57L389.05 368H468a12 12 0 0012-12V76a12 12 0 00-12-12zm-26 266H70V102h372z"/><path d="M88 120h336v192H88z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/easel.svg b/ionic/platforms/android/app/src/main/assets/www/svg/easel.svg deleted file mode 100644 index 729911f218e3fad0bdbd25160802d9479d662b53..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/easel.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Easel</title><rect x="80" y="112" width="352" height="208" rx="12" ry="12"/><path d="M432 64H272V48a16 16 0 00-32 0v16H80a48.05 48.05 0 00-48 48v208a48.05 48.05 0 0048 48h42.79l-26.17 91.6a16 16 0 1030.76 8.8L156.07 368H240v48a16 16 0 0032 0v-48h83.93l28.69 100.4a16 16 0 1030.76-8.8L389.21 368H432a48.05 48.05 0 0048-48V112a48.05 48.05 0 00-48-48zm16 256a16 16 0 01-16 16H80a16 16 0 01-16-16V112a16 16 0 0116-16h352a16 16 0 0116 16z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/egg-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/egg-outline.svg deleted file mode 100644 index f4944c4cf6524d3ad7cb61c4951916d9e06a98c1..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/egg-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Egg</title><path d="M256 48C192 48 96 171.69 96 286.55S160 464 256 464s160-62.59 160-177.45S320 48 256 48z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/egg-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/egg-sharp.svg deleted file mode 100644 index 41f5e5555dbdbf1d7adcd142e4dce57c7b7ffda0..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/egg-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Egg</title><path d="M418.39 381.05c-8.08 21.68-19.76 40.1-34.72 54.75-14.38 14.07-32.1 24.95-52.67 32.34C309.08 476 283.85 480 256 480s-53.08-4-75-11.86c-20.57-7.39-38.29-18.27-52.67-32.34-15-14.65-26.64-33.07-34.72-54.75C84.58 356.82 80 328.53 80 296.94c0-30.28 6.68-62.57 19.86-96A371 371 0 01151 111.42C195.78 53.56 241 32 256 32s62.67 22.4 105 79.42c18.33 24.71 38.87 58.34 51.17 89.54 13.18 33.41 19.86 65.7 19.86 96-.03 31.57-4.61 59.86-13.64 84.09z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/egg.svg b/ionic/platforms/android/app/src/main/assets/www/svg/egg.svg deleted file mode 100644 index 34b49953dbbc2e31e41c4eaedab7bc93d6896ace..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/egg.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Egg</title><path d="M256 480c-52.57 0-96.72-17.54-127.7-50.73C96.7 395.4 80 346.05 80 286.55 80 230.5 101.48 168 138.93 115 175.65 63 219.41 32 256 32s80.35 31 117.07 83C410.52 168 432 230.5 432 286.55c0 59.5-16.7 108.85-48.3 142.72C352.72 462.46 308.57 480 256 480z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/ellipse-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/ellipse-outline.svg deleted file mode 100644 index 954b044e98afdc8fad5af5dc973513bf03425279..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/ellipse-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Ellipse</title><circle cx="256" cy="256" r="192" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/ellipse-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/ellipse-sharp.svg deleted file mode 100644 index 093441a01b55b766d566aafd1d67e4fecf803375..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/ellipse-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Ellipse</title><path d="M256 464c-114.69 0-208-93.31-208-208S141.31 48 256 48s208 93.31 208 208-93.31 208-208 208z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/ellipse.svg b/ionic/platforms/android/app/src/main/assets/www/svg/ellipse.svg deleted file mode 100644 index 093441a01b55b766d566aafd1d67e4fecf803375..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/ellipse.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Ellipse</title><path d="M256 464c-114.69 0-208-93.31-208-208S141.31 48 256 48s208 93.31 208 208-93.31 208-208 208z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/ellipsis-horizontal-circle-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/ellipsis-horizontal-circle-outline.svg deleted file mode 100644 index a85839eecd2183a6c6a3e949b8959426dd7de340..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/ellipsis-horizontal-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Ellipsis Horizontal Circle</title><circle cx="256" cy="256" r="26"/><circle cx="346" cy="256" r="26"/><circle cx="166" cy="256" r="26"/><path d="M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/ellipsis-horizontal-circle-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/ellipsis-horizontal-circle-sharp.svg deleted file mode 100644 index f7a636a27cd25976a095283a2f615246731c9ca5..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/ellipsis-horizontal-circle-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Ellipsis Horizontal Circle</title><path d="M256 48C141.13 48 48 141.13 48 256s93.13 208 208 208 208-93.13 208-208S370.87 48 256 48zm-90 234a26 26 0 1126-26 26 26 0 01-26 26zm90 0a26 26 0 1126-26 26 26 0 01-26 26zm90 0a26 26 0 1126-26 26 26 0 01-26 26z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/ellipsis-horizontal-circle.svg b/ionic/platforms/android/app/src/main/assets/www/svg/ellipsis-horizontal-circle.svg deleted file mode 100644 index a85839eecd2183a6c6a3e949b8959426dd7de340..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/ellipsis-horizontal-circle.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Ellipsis Horizontal Circle</title><circle cx="256" cy="256" r="26"/><circle cx="346" cy="256" r="26"/><circle cx="166" cy="256" r="26"/><path d="M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/ellipsis-horizontal-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/ellipsis-horizontal-outline.svg deleted file mode 100644 index e544dbf947d85eb481b4579d663572d871df83bb..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/ellipsis-horizontal-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Ellipsis Horizontal</title><circle cx="256" cy="256" r="32" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="416" cy="256" r="32" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="96" cy="256" r="32" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/ellipsis-horizontal-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/ellipsis-horizontal-sharp.svg deleted file mode 100644 index dc879bec7b36744b8f9f7940e874ea25570d42cd..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/ellipsis-horizontal-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Ellipsis Horizontal</title><circle cx="256" cy="256" r="48"/><circle cx="416" cy="256" r="48"/><circle cx="96" cy="256" r="48"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/ellipsis-horizontal.svg b/ionic/platforms/android/app/src/main/assets/www/svg/ellipsis-horizontal.svg deleted file mode 100644 index dc879bec7b36744b8f9f7940e874ea25570d42cd..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/ellipsis-horizontal.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Ellipsis Horizontal</title><circle cx="256" cy="256" r="48"/><circle cx="416" cy="256" r="48"/><circle cx="96" cy="256" r="48"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/ellipsis-vertical-circle-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/ellipsis-vertical-circle-outline.svg deleted file mode 100644 index e6c1cf3dc451c5d60ba073a033baffe256b0a0f6..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/ellipsis-vertical-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Ellipsis Vertical Circle</title><circle cx="256" cy="256" r="26"/><circle cx="256" cy="346" r="26"/><circle cx="256" cy="166" r="26"/><path d="M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/ellipsis-vertical-circle-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/ellipsis-vertical-circle-sharp.svg deleted file mode 100644 index 83de879d8f8fa83b890089d0d5132cd17c69d1ba..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/ellipsis-vertical-circle-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Ellipsis Vertical Circle</title><path d="M464 256c0-114.87-93.13-208-208-208S48 141.13 48 256s93.13 208 208 208 208-93.13 208-208zm-234-90a26 26 0 1126 26 26 26 0 01-26-26zm0 90a26 26 0 1126 26 26 26 0 01-26-26zm0 90a26 26 0 1126 26 26 26 0 01-26-26z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/ellipsis-vertical-circle.svg b/ionic/platforms/android/app/src/main/assets/www/svg/ellipsis-vertical-circle.svg deleted file mode 100644 index e6c1cf3dc451c5d60ba073a033baffe256b0a0f6..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/ellipsis-vertical-circle.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Ellipsis Vertical Circle</title><circle cx="256" cy="256" r="26"/><circle cx="256" cy="346" r="26"/><circle cx="256" cy="166" r="26"/><path d="M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/ellipsis-vertical-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/ellipsis-vertical-outline.svg deleted file mode 100644 index fa608f03962ff2d6eee4c809177b707614c9d188..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/ellipsis-vertical-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Ellipsis Vertical</title><circle cx="256" cy="256" r="32" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="256" cy="416" r="32" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="256" cy="96" r="32" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/ellipsis-vertical-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/ellipsis-vertical-sharp.svg deleted file mode 100644 index 2142fee390827feb8736876fe8a051953394e567..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/ellipsis-vertical-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Ellipsis Vertical</title><circle cx="256" cy="256" r="48"/><circle cx="256" cy="416" r="48"/><circle cx="256" cy="96" r="48"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/ellipsis-vertical.svg b/ionic/platforms/android/app/src/main/assets/www/svg/ellipsis-vertical.svg deleted file mode 100644 index 2142fee390827feb8736876fe8a051953394e567..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/ellipsis-vertical.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Ellipsis Vertical</title><circle cx="256" cy="256" r="48"/><circle cx="256" cy="416" r="48"/><circle cx="256" cy="96" r="48"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/enter-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/enter-outline.svg deleted file mode 100644 index 85f5f8e4420021739f1d1d1feb518b9e63f15e66..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/enter-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Enter</title><path d="M176 176v-40a40 40 0 0140-40h208a40 40 0 0140 40v240a40 40 0 01-40 40H216a40 40 0 01-40-40v-40" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-linejoin="round" d="M272 336l80-80-80-80M48 256h288" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/enter-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/enter-sharp.svg deleted file mode 100644 index 4de34fb72a84396f8d856363d4e585530a461a6c..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/enter-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Enter</title><path d="M160 240h147.37l-64-64L266 153.37 368.63 256 266 358.63 243.37 336l64-64H160v148a12 12 0 0012 12h296a12 12 0 0012-12V92a12 12 0 00-12-12H172a12 12 0 00-12 12zM32 240h128v32H32z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/enter.svg b/ionic/platforms/android/app/src/main/assets/www/svg/enter.svg deleted file mode 100644 index e3ff5856885635869d5c9c8aefb54c1fc1778ee6..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/enter.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Enter</title><path d="M160 136v104h153.37l-52.68-52.69a16 16 0 0122.62-22.62l80 80a16 16 0 010 22.62l-80 80a16 16 0 01-22.62-22.62L313.37 272H160v104a56.06 56.06 0 0056 56h208a56.06 56.06 0 0056-56V136a56.06 56.06 0 00-56-56H216a56.06 56.06 0 00-56 56zM48 240a16 16 0 000 32h112v-32z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/exit-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/exit-outline.svg deleted file mode 100644 index 6e861a976a890765077788c6cb9d7479dbd2b25a..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/exit-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Exit</title><path d="M320 176v-40a40 40 0 00-40-40H88a40 40 0 00-40 40v240a40 40 0 0040 40h192a40 40 0 0040-40v-40M384 176l80 80-80 80M191 256h273" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/exit-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/exit-sharp.svg deleted file mode 100644 index 78c8b05c10569541cf36ca007e32a50c80865b23..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/exit-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Exit</title><path d="M335.69 272h-161v-32h161V92a12 12 0 00-12-12h-280a12 12 0 00-12 12v328a12 12 0 0012 12h280a12 12 0 0012-12zM419.06 272l-64 64 22.63 22.63L480.31 256 377.69 153.37 355.06 176l64 64h-83.37v32h83.37z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/exit.svg b/ionic/platforms/android/app/src/main/assets/www/svg/exit.svg deleted file mode 100644 index fa070846c3a7ab0bf269a22efedbbec9e4c38844..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/exit.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Exit</title><path d="M336 376V272H191a16 16 0 010-32h145V136a56.06 56.06 0 00-56-56H88a56.06 56.06 0 00-56 56v240a56.06 56.06 0 0056 56h192a56.06 56.06 0 0056-56zM425.37 272l-52.68 52.69a16 16 0 0022.62 22.62l80-80a16 16 0 000-22.62l-80-80a16 16 0 00-22.62 22.62L425.37 240H336v32z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/expand-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/expand-outline.svg deleted file mode 100644 index df266edcbfeaf969d2da7d01cb79b8d5fe2692f9..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/expand-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Expand</title><path stroke-linecap="round" stroke-linejoin="round" d="M432 320v112H320M421.8 421.77L304 304M80 192V80h112M90.2 90.23L208 208M320 80h112v112M421.77 90.2L304 208M192 432H80V320M90.23 421.8L208 304" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/expand-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/expand-sharp.svg deleted file mode 100644 index 97bde7254ca59b51aa212dcd8942844a32745f33..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/expand-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Expand</title><path stroke-linecap="square" stroke-miterlimit="10" d="M432 320v112H320M421.8 421.77L304 304M80 192V80h112M90.2 90.23L208 208M320 80h112v112M421.77 90.2L304 208M192 432H80V320M90.23 421.8L208 304" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/expand.svg b/ionic/platforms/android/app/src/main/assets/www/svg/expand.svg deleted file mode 100644 index df266edcbfeaf969d2da7d01cb79b8d5fe2692f9..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/expand.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Expand</title><path stroke-linecap="round" stroke-linejoin="round" d="M432 320v112H320M421.8 421.77L304 304M80 192V80h112M90.2 90.23L208 208M320 80h112v112M421.77 90.2L304 208M192 432H80V320M90.23 421.8L208 304" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/extension-puzzle-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/extension-puzzle-outline.svg deleted file mode 100644 index 1282436b5139f76b11693f5f67d626b39bc9f336..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/extension-puzzle-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Extension Puzzle</title><path stroke-linecap="round" stroke-linejoin="round" d="M413.66 246.1H386a2 2 0 01-2-2v-77.24A38.86 38.86 0 00345.14 128H267.9a2 2 0 01-2-2V98.34c0-27.14-21.5-49.86-48.64-50.33a49.53 49.53 0 00-50.4 49.51V126a2 2 0 01-2 2H87.62A39.74 39.74 0 0048 167.62V238a2 2 0 002 2h26.91c29.37 0 53.68 25.48 54.09 54.85.42 29.87-23.51 57.15-53.29 57.15H50a2 2 0 00-2 2v70.38A39.74 39.74 0 0087.62 464H158a2 2 0 002-2v-20.93c0-30.28 24.75-56.35 55-57.06 30.1-.7 57 20.31 57 50.28V462a2 2 0 002 2h71.14A38.86 38.86 0 00384 425.14v-78a2 2 0 012-2h28.48c27.63 0 49.52-22.67 49.52-50.4s-23.2-48.64-50.34-48.64z" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/extension-puzzle-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/extension-puzzle-sharp.svg deleted file mode 100644 index 1385459be79318b81fbf016f680ba90331ddb63c..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/extension-puzzle-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Extension Puzzle</title><path d="M345.14 480H256v-45.71a31.3 31.3 0 00-9.59-22.65c-7.67-7.56-18.83-11.81-30.57-11.64a44.38 44.38 0 00-28.45 10.67c-5.2 4.6-11.39 12.56-11.39 24.42V480H87.62A55.68 55.68 0 0132 424.38V336h45.71c9.16 0 18.07-3.92 25.09-11a42.06 42.06 0 0012.2-29.92C114.7 273.89 97.26 256 76.91 256H32v-89.34a53.77 53.77 0 0116.53-39A55.88 55.88 0 0187.62 112h63.24V97.52A65.53 65.53 0 01217.54 32c35.49.62 64.36 30.38 64.36 66.33V112h63.24A54.28 54.28 0 01400 166.86v63.24h13.66c36.58 0 66.34 29 66.34 64.64 0 36.61-29.39 66.4-65.52 66.4H400v63.24c0 30.67-24.61 55.62-54.86 55.62z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/extension-puzzle.svg b/ionic/platforms/android/app/src/main/assets/www/svg/extension-puzzle.svg deleted file mode 100644 index 6a1c23ca2f1fd8afbdf7684c059487e3399163a0..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/extension-puzzle.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Extension Puzzle</title><path d="M345.14 480H274a18 18 0 01-18-18v-27.71a31.32 31.32 0 00-9.71-22.77c-7.78-7.59-19.08-11.8-30.89-11.51-21.36.5-39.4 19.3-39.4 41.06V462a18 18 0 01-18 18H87.62A55.62 55.62 0 0132 424.38V354a18 18 0 0118-18h27.71c9.16 0 18.07-3.92 25.09-11a42.06 42.06 0 0012.2-29.92C114.7 273.89 97.26 256 76.91 256H50a18 18 0 01-18-18v-70.38A55.62 55.62 0 0187.62 112h55.24a8 8 0 008-8v-6.48A65.53 65.53 0 01217.54 32c35.49.62 64.36 30.38 64.36 66.33V104a8 8 0 008 8h55.24A54.86 54.86 0 01400 166.86v55.24a8 8 0 008 8h5.66c36.58 0 66.34 29 66.34 64.64 0 36.61-29.39 66.4-65.52 66.4H408a8 8 0 00-8 8v56A54.86 54.86 0 01345.14 480z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/eye-off-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/eye-off-outline.svg deleted file mode 100644 index 99722506dcfb3214163b13bf7eadb7b8d2b0f044..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/eye-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Eye Off</title><path d="M432 448a15.92 15.92 0 01-11.31-4.69l-352-352a16 16 0 0122.62-22.62l352 352A16 16 0 01432 448zM255.66 384c-41.49 0-81.5-12.28-118.92-36.5-34.07-22-64.74-53.51-88.7-91v-.08c19.94-28.57 41.78-52.73 65.24-72.21a2 2 0 00.14-2.94L93.5 161.38a2 2 0 00-2.71-.12c-24.92 21-48.05 46.76-69.08 76.92a31.92 31.92 0 00-.64 35.54c26.41 41.33 60.4 76.14 98.28 100.65C162 402 207.9 416 255.66 416a239.13 239.13 0 0075.8-12.58 2 2 0 00.77-3.31l-21.58-21.58a4 4 0 00-3.83-1 204.8 204.8 0 01-51.16 6.47zM490.84 238.6c-26.46-40.92-60.79-75.68-99.27-100.53C349 110.55 302 96 255.66 96a227.34 227.34 0 00-74.89 12.83 2 2 0 00-.75 3.31l21.55 21.55a4 4 0 003.88 1 192.82 192.82 0 0150.21-6.69c40.69 0 80.58 12.43 118.55 37 34.71 22.4 65.74 53.88 89.76 91a.13.13 0 010 .16 310.72 310.72 0 01-64.12 72.73 2 2 0 00-.15 2.95l19.9 19.89a2 2 0 002.7.13 343.49 343.49 0 0068.64-78.48 32.2 32.2 0 00-.1-34.78z"/><path d="M256 160a95.88 95.88 0 00-21.37 2.4 2 2 0 00-1 3.38l112.59 112.56a2 2 0 003.38-1A96 96 0 00256 160zM165.78 233.66a2 2 0 00-3.38 1 96 96 0 00115 115 2 2 0 001-3.38z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/eye-off-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/eye-off-sharp.svg deleted file mode 100644 index 04e2f788809a50548e4b5fac77fb0a640e941eda..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/eye-off-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Eye Off</title><path d="M63.998 86.004l21.998-21.998L448 426.01l-21.998 21.998zM259.34 192.09l60.57 60.57a64.07 64.07 0 00-60.57-60.57zM252.66 319.91l-60.57-60.57a64.07 64.07 0 0060.57 60.57z"/><path d="M256 352a96 96 0 01-92.6-121.34l-69.07-69.08C66.12 187.42 39.24 221.14 16 256c26.42 44 62.56 89.24 100.2 115.18C159.38 400.92 206.33 416 255.76 416A233.47 233.47 0 00335 402.2l-53.61-53.6A95.84 95.84 0 01256 352zM256 160a96 96 0 0192.6 121.34L419.26 352c29.15-26.25 56.07-61.56 76.74-96-26.38-43.43-62.9-88.56-101.18-114.82C351.1 111.2 304.31 96 255.76 96a222.92 222.92 0 00-78.21 14.29l53.11 53.11A95.84 95.84 0 01256 160z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/eye-off.svg b/ionic/platforms/android/app/src/main/assets/www/svg/eye-off.svg deleted file mode 100644 index b41a760a2dadbef14abd72406a0fac367c422ecc..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/eye-off.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Eye Off</title><path d="M432 448a15.92 15.92 0 01-11.31-4.69l-352-352a16 16 0 0122.62-22.62l352 352A16 16 0 01432 448zM248 315.85l-51.79-51.79a2 2 0 00-3.39 1.69 64.11 64.11 0 0053.49 53.49 2 2 0 001.69-3.39zM264 196.15L315.87 248a2 2 0 003.4-1.69 64.13 64.13 0 00-53.55-53.55 2 2 0 00-1.72 3.39z"/><path d="M491 273.36a32.2 32.2 0 00-.1-34.76c-26.46-40.92-60.79-75.68-99.27-100.53C349 110.55 302 96 255.68 96a226.54 226.54 0 00-71.82 11.79 4 4 0 00-1.56 6.63l47.24 47.24a4 4 0 003.82 1.05 96 96 0 01116 116 4 4 0 001.05 3.81l67.95 68a4 4 0 005.4.24 343.81 343.81 0 0067.24-77.4zM256 352a96 96 0 01-93.3-118.63 4 4 0 00-1.05-3.81l-66.84-66.87a4 4 0 00-5.41-.23c-24.39 20.81-47 46.13-67.67 75.72a31.92 31.92 0 00-.64 35.54c26.41 41.33 60.39 76.14 98.28 100.65C162.06 402 207.92 416 255.68 416a238.22 238.22 0 0072.64-11.55 4 4 0 001.61-6.64l-47.47-47.46a4 4 0 00-3.81-1.05A96 96 0 01256 352z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/eye-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/eye-outline.svg deleted file mode 100644 index eae73abe649872f11b22844e6ab19afe9cb73592..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/eye-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Eye</title><path d="M255.66 112c-77.94 0-157.89 45.11-220.83 135.33a16 16 0 00-.27 17.77C82.92 340.8 161.8 400 255.66 400c92.84 0 173.34-59.38 221.79-135.25a16.14 16.14 0 000-17.47C428.89 172.28 347.8 112 255.66 112z" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="256" cy="256" r="80" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/eye-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/eye-sharp.svg deleted file mode 100644 index 3013bda1bc9a340c1e830c6e7076f8c0d3880e8c..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/eye-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Eye</title><circle cx="256" cy="256" r="64"/><path d="M394.82 141.18C351.1 111.2 304.31 96 255.76 96c-43.69 0-86.28 13-126.59 38.48C88.52 160.23 48.67 207 16 256c26.42 44 62.56 89.24 100.2 115.18C159.38 400.92 206.33 416 255.76 416c49 0 95.85-15.07 139.3-44.79C433.31 345 469.71 299.82 496 256c-26.38-43.43-62.9-88.56-101.18-114.82zM256 352a96 96 0 1196-96 96.11 96.11 0 01-96 96z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/eye.svg b/ionic/platforms/android/app/src/main/assets/www/svg/eye.svg deleted file mode 100644 index bf01194e03c108755a3bf9be101decb025ff02ca..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/eye.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Eye</title><circle cx="256" cy="256" r="64"/><path d="M490.84 238.6c-26.46-40.92-60.79-75.68-99.27-100.53C349 110.55 302 96 255.66 96c-42.52 0-84.33 12.15-124.27 36.11-40.73 24.43-77.63 60.12-109.68 106.07a31.92 31.92 0 00-.64 35.54c26.41 41.33 60.4 76.14 98.28 100.65C162 402 207.9 416 255.66 416c46.71 0 93.81-14.43 136.2-41.72 38.46-24.77 72.72-59.66 99.08-100.92a32.2 32.2 0 00-.1-34.76zM256 352a96 96 0 1196-96 96.11 96.11 0 01-96 96z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/eyedrop-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/eyedrop-outline.svg deleted file mode 100644 index 4f59841c6334d50e8bf5cfb02c3391b047c29707..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/eyedrop-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Eyedrop</title><path d="M262.51 204.22L70 396.69C57.56 409.15 48 464 48 464s54.38-9.09 67.31-22L307.8 249.51" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><rect x="211.72" y="172.19" width="192.15" height="64.05" rx="32.03" ry="32.03" transform="rotate(45 307.788 204.2)" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M289.91 141s20.57 8.57 37.22-8.08l54.67-70.63c18.5-19.41 49.26-18.69 67.94 0h0c18.68 18.68 19.34 48.81 0 67.93l-70.68 54.67c-15.65 15.65-8.08 37.22-8.08 37.22M115.31 442s-26.48 17.34-44.56-.73-.75-44.58-.75-44.58" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/eyedrop-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/eyedrop-sharp.svg deleted file mode 100644 index 26547a4ec84d78f04768b0c36cdb50d828e60e7e..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/eyedrop-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Eyedrop</title><path d="M480 96.22a63.84 63.84 0 00-18.95-45.61 65 65 0 00-45.71-19h-.76a61.78 61.78 0 00-44.22 19.09l-74.88 74.88-33.88-33.86-34.07 33.91-33.85 34 44 44L32 409.37V480h70.63l205.7-205.71L352 317.94l11.31-11.19c.11-.1 10.42-10.31 22.79-22.68l33.85-34-33.89-33.89L461 141.23a63.18 63.18 0 0019-45.01zM245 292.35L219.65 267l40.68-40.69 25.38 25.38z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/eyedrop.svg b/ionic/platforms/android/app/src/main/assets/www/svg/eyedrop.svg deleted file mode 100644 index a80893cf4cfa80452d56d4ecf98c3b6d2f1b5ed6..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/eyedrop.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Eyedrop</title><path d="M461.05 51a65 65 0 00-45.71-19h-.76a61.81 61.81 0 00-44.36 19.25 12.81 12.81 0 00-1.07 1.25l-54 69.76c-5.62 7.1-12.74 8.68-16.78 4.64l-1.9-1.9a48 48 0 00-67.92 67.92l9.91 9.91a2 2 0 010 2.83L58.7 385.38C54 390.05 46.9 399.85 38.85 431c-4.06 15.71-6.51 29.66-6.61 30.24A16 16 0 0048 480a15.68 15.68 0 002.64-.22c.58-.1 14.44-2.43 30.13-6.44 31.07-7.94 41.05-15.24 45.85-20l179.77-179.79a2 2 0 012.82 0l9.92 9.92a48 48 0 0067.92-67.93l-1.59-1.54c-5-5-2.52-12.11 4.32-17.14l69.75-53.94a17.82 17.82 0 001.47-1.32 63.2 63.2 0 0019-45A63.88 63.88 0 00461.05 51zM250.78 283.9c-2.92 2.92-16.18 7.92-23.39.71s-2.24-20.42.69-23.35l33-33a2 2 0 012.83 0l19.84 19.83a2 2 0 010 2.83z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/fast-food-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/fast-food-outline.svg deleted file mode 100644 index 8a29ae240a1f4e866a28039c631a3dbb62dd3a25..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/fast-food-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Fast Food</title><path d="M322 416c0 35.35-20.65 64-56 64H134c-35.35 0-56-28.65-56-64M336 336c17.67 0 32 17.91 32 40h0c0 22.09-14.33 40-32 40H64c-17.67 0-32-17.91-32-40h0c0-22.09 14.33-40 32-40" stroke-linecap="round" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><path d="M344 336H179.31a8 8 0 00-5.65 2.34l-26.83 26.83a4 4 0 01-5.66 0l-26.83-26.83a8 8 0 00-5.65-2.34H56a24 24 0 01-24-24h0a24 24 0 0124-24h288a24 24 0 0124 24h0a24 24 0 01-24 24zM64 276v-.22c0-55 45-83.78 100-83.78h72c55 0 100 29 100 84v-.22M241 112l7.44 63.97" stroke-linecap="round" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><path d="M256 480h139.31a32 32 0 0031.91-29.61L463 112" stroke-linecap="round" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-linejoin="round" d="M368 112l16-64 47-16" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-miterlimit="10" d="M224 112h256" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/fast-food-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/fast-food-sharp.svg deleted file mode 100644 index 19af29eb9ba07403ae8c1d279855a69f6cfc51c6..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/fast-food-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Fast Food</title><path d="M384 352H184.36l-41 35-41-35H16v24c0 30.59 21.13 55.51 47.26 56 2.43 15.12 8.31 28.78 17.16 39.47C93.51 487.28 112.54 496 134 496h132c21.46 0 40.49-8.72 53.58-24.55 8.85-10.69 14.73-24.35 17.16-39.47 13.88-.25 26.35-7.4 35-18.63A61.26 61.26 0 00384 376zM105 320l38.33 28.19L182 320h202v-8a40.07 40.07 0 00-32-39.2c-.82-29.69-13-54.54-35.51-72C295.67 184.56 267.85 176 236 176h-72c-68.22 0-114.43 38.77-116 96.8A40.07 40.07 0 0016 312v8h89z"/><path d="M463.08 96h-74.59l8.92-35.66L442 45l-10-29-62 20-14.49 60H208v32h18.75l1.86 16H236c39 0 73.66 10.9 100.12 31.52A121.9 121.9 0 01371 218.07a124.16 124.16 0 0110.73 32.65 72 72 0 0127.89 90.9A96 96 0 01416 376c0 22.34-7.6 43.63-21.4 59.95a80 80 0 01-31.83 22.95 109.21 109.21 0 01-18.53 33c-1.18 1.42-2.39 2.81-3.63 4.15H416c16 0 23-8 25-23l36.4-345H496V96z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/fast-food.svg b/ionic/platforms/android/app/src/main/assets/www/svg/fast-food.svg deleted file mode 100644 index 91d22c4099776df20004e6b0bb03e16c33fc2e76..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/fast-food.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Fast Food</title><path d="M368 128h.09M479.55 96h-91.06l8.92-35.66 38.32-13.05c8.15-2.77 13-11.43 10.65-19.71a16 16 0 00-20.54-10.73l-47 16a16 16 0 00-10.36 11.27L355.51 96H224.45c-8.61 0-16 6.62-16.43 15.23A16 16 0 00224 128h2.75l1 8.66A8.3 8.3 0 00236 144c39 0 73.66 10.9 100.12 31.52A121.9 121.9 0 01371 218.07a123.4 123.4 0 0110.12 29.51 7.83 7.83 0 003.29 4.88 72 72 0 0126.38 86.43 7.92 7.92 0 00-.15 5.53A96 96 0 01416 376c0 22.34-7.6 43.63-21.4 59.95a80.12 80.12 0 01-28.78 21.67 8 8 0 00-4.21 4.37 108.19 108.19 0 01-17.37 29.86 2.5 2.5 0 001.9 4.11h49.21a48.22 48.22 0 0047.85-44.14L477.4 128h2.6a16 16 0 0016-16.77c-.42-8.61-7.84-15.23-16.45-15.23z"/><path d="M108.69 320a23.87 23.87 0 0117 7l15.51 15.51a4 4 0 005.66 0L162.34 327a23.87 23.87 0 0117-7h196.58a8 8 0 008.08-7.92V312a40.07 40.07 0 00-32-39.2c-.82-29.69-13-54.54-35.51-72C295.67 184.56 267.85 176 236 176h-72c-68.22 0-114.43 38.77-116 96.8A40.07 40.07 0 0016 312a8 8 0 008 8zM185.94 352a8 8 0 00-5.66 2.34l-22.14 22.15a20 20 0 01-28.28 0l-22.14-22.15a8 8 0 00-5.66-2.34h-69.4a15.93 15.93 0 00-15.76 13.17A65.22 65.22 0 0016 376c0 30.59 21.13 55.51 47.26 56 2.43 15.12 8.31 28.78 17.16 39.47C93.51 487.28 112.54 496 134 496h132c21.46 0 40.49-8.72 53.58-24.55 8.85-10.69 14.73-24.35 17.16-39.47 26.13-.47 47.26-25.39 47.26-56a65.22 65.22 0 00-.9-10.83A15.93 15.93 0 00367.34 352z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/female-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/female-outline.svg deleted file mode 100644 index 0959a962167e785853c6fe3275bb938fb39cd67d..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/female-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Female</title><circle cx="256" cy="184" r="152" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-linejoin="round" d="M256 336v144M314 416H198" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/female-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/female-sharp.svg deleted file mode 100644 index c9fc174c54aa5b433ed46b3c98ca9537d0570850..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/female-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Female</title><path d="M430 190c0-95.94-78.06-174-174-174S82 94.06 82 190c0 88.49 66.4 161.77 152 172.61V394h-58v44h58v58h44v-58h58v-44h-58v-31.39c85.6-10.84 152-84.12 152-172.61zm-304 0c0-71.68 58.32-130 130-130s130 58.32 130 130-58.32 130-130 130-130-58.32-130-130z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/female.svg b/ionic/platforms/android/app/src/main/assets/www/svg/female.svg deleted file mode 100644 index e9aae7b9b574458443ad4846c30d022832983f1b..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/female.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Female</title><path d="M430 190c0-95.94-78.06-174-174-174S82 94.06 82 190c0 88.49 66.4 161.77 152 172.61V394h-36a22 22 0 000 44h36v36a22 22 0 0044 0v-36h36a22 22 0 000-44h-36v-31.39c85.6-10.84 152-84.12 152-172.61zm-304 0c0-71.68 58.32-130 130-130s130 58.32 130 130-58.32 130-130 130-130-58.32-130-130z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/file-tray-full-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/file-tray-full-outline.svg deleted file mode 100644 index c8704c1c8be2bd4dd31def2fd0f38da891bbe163..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/file-tray-full-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>File Tray Full</title><path d="M384 80H128c-26 0-43 14-48 40L48 272v112a48.14 48.14 0 0048 48h320a48.14 48.14 0 0048-48V272l-32-152c-5-27-23-40-48-40z" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-linejoin="round" d="M48 272h144M320 272h144M192 272a64 64 0 00128 0M144 144h224M128 208h256" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/file-tray-full-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/file-tray-full-sharp.svg deleted file mode 100644 index aefde2c4be77a8fa4dc5a70b59638bf1c13392cf..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/file-tray-full-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>File Tray Full</title><path d="M128 128h256v38H128zM112 192h288v38H112z"/><path d="M448 64H64L32 256v192h448V256zm-12 192H320a64 64 0 01-128 0H76l22-150h316z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/file-tray-full.svg b/ionic/platforms/android/app/src/main/assets/www/svg/file-tray-full.svg deleted file mode 100644 index 3ebeaf01d30b02c776b20edaa4443769d1919010..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/file-tray-full.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>File Tray Full</title><path d="M479.66 268.7l-32-151.81C441.48 83.77 417.68 64 384 64H128c-16.8 0-31 4.69-42.1 13.94s-18.37 22.31-21.58 38.89l-32 151.87A16.65 16.65 0 0032 272v112a64 64 0 0064 64h320a64 64 0 0064-64V272a16.65 16.65 0 00-.34-3.3zm-384-145.4v-.28c3.55-18.43 13.81-27 32.29-27H384c18.61 0 28.87 8.55 32.27 26.91 0 .13.05.26.07.39l26.93 127.88a4 4 0 01-3.92 4.82H320a15.92 15.92 0 00-16 15.82 48 48 0 11-96 0A15.92 15.92 0 00192 256H72.65a4 4 0 01-3.92-4.82z"/><path d="M368 160H144a16 16 0 010-32h224a16 16 0 010 32zM384 224H128a16 16 0 010-32h256a16 16 0 010 32z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/file-tray-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/file-tray-outline.svg deleted file mode 100644 index a43a8fabc6f0accd29c84e4e14d221082ba910ae..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/file-tray-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>File Tray</title><path d="M384 80H128c-26 0-43 14-48 40L48 272v112a48.14 48.14 0 0048 48h320a48.14 48.14 0 0048-48V272l-32-152c-5-27-23-40-48-40z" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-linejoin="round" d="M48 272h144M320 272h144M192 272a64 64 0 00128 0" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/file-tray-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/file-tray-sharp.svg deleted file mode 100644 index c1f1cd0f6d5484e5b16a135dd2d664872a77d551..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/file-tray-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>File Tray</title><path d="M448 64H64L32 256v192h448V256zm-12 192H320a64 64 0 01-128 0H76l22-150h316z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/file-tray-stacked-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/file-tray-stacked-outline.svg deleted file mode 100644 index 0bfa24ec76f83cac49b53f424ddbbdbd5b339f78..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/file-tray-stacked-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>File Tray Stacked</title><path d="M48 336v96a48.14 48.14 0 0048 48h320a48.14 48.14 0 0048-48v-96" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-linejoin="round" d="M48 336h144M320 336h144M192 336a64 64 0 00128 0" class="ionicon-fill-none ionicon-stroke-width"/><path d="M384 32H128c-26 0-43 14-48 40L48 192v96a48.14 48.14 0 0048 48h320a48.14 48.14 0 0048-48v-96L432 72c-5-27-23-40-48-40z" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-linejoin="round" d="M48 192h144M320 192h144M192 192a64 64 0 00128 0" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/file-tray-stacked-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/file-tray-stacked-sharp.svg deleted file mode 100644 index c2194bcd6d1326f284c671822a17093bcf96c552..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/file-tray-stacked-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>File Tray Stacked</title><path d="M448 16H64L32 176v144h448V176zm-12 160H320a64 64 0 01-128 0H76L98 58h316zM320 352a64 64 0 01-128 0H32v144h448V352z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/file-tray-stacked.svg b/ionic/platforms/android/app/src/main/assets/www/svg/file-tray-stacked.svg deleted file mode 100644 index b1f7b6ef2efad6f32aab7859cb1f0aaaf0008e22..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/file-tray-stacked.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>File Tray Stacked</title><path d="M464 352H320a16 16 0 00-16 16 48 48 0 01-96 0 16 16 0 00-16-16H48a16 16 0 00-16 16v64a64.07 64.07 0 0064 64h320a64.07 64.07 0 0064-64v-64a16 16 0 00-16-16zM479.46 187.88L447.61 68.45C441.27 35.59 417.54 16 384 16H128c-16.8 0-31 4.69-42.1 13.94S67.66 52 64.4 68.4L32.54 187.88A15.9 15.9 0 0032 192v48c0 35.29 28.71 80 64 80h320c35.29 0 64-44.71 64-80v-48a15.9 15.9 0 00-.54-4.12zM440.57 176H320a15.92 15.92 0 00-16 15.82 48 48 0 11-96 0A15.92 15.92 0 00192 176H71.43a2 2 0 01-1.93-2.52L95.71 75c3.55-18.41 13.81-27 32.29-27h256c18.59 0 28.84 8.53 32.25 26.85l26.25 98.63a2 2 0 01-1.93 2.52z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/file-tray.svg b/ionic/platforms/android/app/src/main/assets/www/svg/file-tray.svg deleted file mode 100644 index 326cc7b898037bfac99df5836e6023203f8dfcf1..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/file-tray.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>File Tray</title><path d="M479.66 268.7l-32-151.81C441.48 83.77 417.68 64 384 64H128c-16.8 0-31 4.69-42.1 13.94s-18.37 22.31-21.58 38.89l-32 151.87A16.65 16.65 0 0032 272v112a64 64 0 0064 64h320a64 64 0 0064-64V272a16.65 16.65 0 00-.34-3.3zm-384-145.4v-.28c3.55-18.43 13.81-27 32.29-27H384c18.61 0 28.87 8.55 32.27 26.91 0 .13.05.26.07.39l26.93 127.88a4 4 0 01-3.92 4.82H320a15.92 15.92 0 00-16 15.82 48 48 0 11-96 0A15.92 15.92 0 00192 256H72.65a4 4 0 01-3.92-4.82z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/film-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/film-outline.svg deleted file mode 100644 index 1f187bf0e14008912d21d4fefba687d74af9cf45..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/film-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Film</title><rect x="48" y="96" width="416" height="320" rx="28" ry="28" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><rect x="384" y="336" width="80" height="80" rx="28" ry="28" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><rect x="384" y="256" width="80" height="80" rx="28" ry="28" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><rect x="384" y="176" width="80" height="80" rx="28" ry="28" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><rect x="384" y="96" width="80" height="80" rx="28" ry="28" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><rect x="48" y="336" width="80" height="80" rx="28" ry="28" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><rect x="48" y="256" width="80" height="80" rx="28" ry="28" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><rect x="48" y="176" width="80" height="80" rx="28" ry="28" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><rect x="48" y="96" width="80" height="80" rx="28" ry="28" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><rect x="128" y="96" width="256" height="160" rx="28" ry="28" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><rect x="128" y="256" width="256" height="160" rx="28" ry="28" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/film-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/film-sharp.svg deleted file mode 100644 index 8064e4e5a627cad3d9c9b3947b8b8659a8785629..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/film-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Film</title><path d="M480 80H32v352h448zM112 352v48H64v-48zm0-80v48H64v-48zm0-80v48H64v-48zm0-80v48H64v-48zm256 160H144v-32h224zm80 80v48h-48v-48zm0-80v48h-48v-48zm0-80v48h-48v-48zm0-80v48h-48v-48z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/film.svg b/ionic/platforms/android/app/src/main/assets/www/svg/film.svg deleted file mode 100644 index 9f7f0429e40489ae8252bc1b78cb08d37c94f65b..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/film.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Film</title><path d="M436 80H76a44.05 44.05 0 00-44 44v264a44.05 44.05 0 0044 44h360a44.05 44.05 0 0044-44V124a44.05 44.05 0 00-44-44zM112 388a12 12 0 01-12 12H76a12 12 0 01-12-12v-24a12 12 0 0112-12h24a12 12 0 0112 12zm0-80a12 12 0 01-12 12H76a12 12 0 01-12-12v-24a12 12 0 0112-12h24a12 12 0 0112 12zm0-80a12 12 0 01-12 12H76a12 12 0 01-12-12v-24a12 12 0 0112-12h24a12 12 0 0112 12zm0-80a12 12 0 01-12 12H76a12 12 0 01-12-12v-24a12 12 0 0112-12h24a12 12 0 0112 12zm241.68 124H158.32a16 16 0 010-32h195.36a16 16 0 110 32zM448 388a12 12 0 01-12 12h-24a12 12 0 01-12-12v-24a12 12 0 0112-12h24a12 12 0 0112 12zm0-80a12 12 0 01-12 12h-24a12 12 0 01-12-12v-24a12 12 0 0112-12h24a12 12 0 0112 12zm0-80a12 12 0 01-12 12h-24a12 12 0 01-12-12v-24a12 12 0 0112-12h24a12 12 0 0112 12zm0-80a12 12 0 01-12 12h-24a12 12 0 01-12-12v-24a12 12 0 0112-12h24a12 12 0 0112 12z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/filter-circle-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/filter-circle-outline.svg deleted file mode 100644 index 2a1cf22e6413ff2fe179ec7a0872e43f9da35d77..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/filter-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Filter Circle</title><path stroke-miterlimit="10" d="M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-linejoin="round" d="M144 208h224M176 272h160M224 336h64" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/filter-circle-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/filter-circle-sharp.svg deleted file mode 100644 index 2403de96debb230202f962f87af07e0931ae6ae9..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/filter-circle-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Filter Circle</title><path d="M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm48 304h-96v-32h96zm48-64H160v-32h192zm32-64H128v-32h256z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/filter-circle.svg b/ionic/platforms/android/app/src/main/assets/www/svg/filter-circle.svg deleted file mode 100644 index 06eede4996ab6280b388ba500c9b1b523491e29d..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/filter-circle.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Filter Circle</title><path d="M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm32 304h-64a16 16 0 010-32h64a16 16 0 010 32zm48-64H176a16 16 0 010-32h160a16 16 0 010 32zm32-64H144a16 16 0 010-32h224a16 16 0 010 32z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/filter-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/filter-outline.svg deleted file mode 100644 index 72d7ac9d7f456aaf46f253ed6ecc59f8768db99e..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/filter-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Filter</title><path stroke-linecap="round" stroke-linejoin="round" d="M32 144h448M112 256h288M208 368h96" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/filter-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/filter-sharp.svg deleted file mode 100644 index 4cc7e53c3339192a6865ae47266f58bad91b5355..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/filter-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Filter</title><path d="M16 120h480v48H16zM96 232h320v48H96zM192 344h128v48H192z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/filter.svg b/ionic/platforms/android/app/src/main/assets/www/svg/filter.svg deleted file mode 100644 index e959ece8efbd13538e50340e9afd4104670e1bfd..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/filter.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Filter</title><path d="M472 168H40a24 24 0 010-48h432a24 24 0 010 48zM392 280H120a24 24 0 010-48h272a24 24 0 010 48zM296 392h-80a24 24 0 010-48h80a24 24 0 010 48z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/finger-print-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/finger-print-outline.svg deleted file mode 100644 index 6981f8c1224e248b8e207d3683746e715af3ae8b..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/finger-print-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Finger Print</title><path d="M390.42 75.28a10.45 10.45 0 01-5.32-1.44C340.72 50.08 302.35 40 256.35 40c-45.77 0-89.23 11.28-128.76 33.84C122 77 115.11 74.8 111.87 69a12.4 12.4 0 014.63-16.32A281.81 281.81 0 01256.35 16c49.23 0 92.23 11.28 139.39 36.48a12 12 0 014.85 16.08 11.3 11.3 0 01-10.17 6.72zm-330.79 126a11.73 11.73 0 01-6.7-2.16 12.26 12.26 0 01-2.78-16.8c22.89-33.6 52-60 86.69-78.48 72.58-38.84 165.51-39.12 238.32-.24 34.68 18.48 63.8 44.64 86.69 78a12.29 12.29 0 01-2.78 16.8 11.26 11.26 0 01-16.18-2.88c-20.8-30.24-47.15-54-78.36-70.56-66.34-35.28-151.18-35.28-217.29.24-31.44 16.8-57.79 40.8-78.59 71a10 10 0 01-9.02 5.08zM204.1 491a10.66 10.66 0 01-8.09-3.6C175.9 466.48 165 453 149.55 424c-16-29.52-24.27-65.52-24.27-104.16 0-71.28 58.71-129.36 130.84-129.36S387 248.56 387 319.84a11.56 11.56 0 11-23.11 0c0-58.08-48.32-105.36-107.72-105.36S148.4 261.76 148.4 319.84c0 34.56 7.39 66.48 21.49 92.4 14.8 27.6 25 39.36 42.77 58.08a12.67 12.67 0 010 17 12.44 12.44 0 01-8.56 3.68zm165.75-44.4c-27.51 0-51.78-7.2-71.66-21.36a129.1 129.1 0 01-55-105.36 11.57 11.57 0 1123.12 0 104.28 104.28 0 0044.84 85.44c16.41 11.52 35.6 17 58.72 17a147.41 147.41 0 0024-2.4c6.24-1.2 12.25 3.12 13.4 9.84a11.92 11.92 0 01-9.47 13.92 152.28 152.28 0 01-27.95 2.88zM323.38 496a13 13 0 01-3-.48c-36.76-10.56-60.8-24.72-86-50.4-32.37-33.36-50.16-77.76-50.16-125.28 0-38.88 31.9-70.56 71.19-70.56s71.2 31.68 71.2 70.56c0 25.68 21.5 46.56 48.08 46.56s48.08-20.88 48.08-46.56c0-90.48-75.13-163.92-167.59-163.92-65.65 0-125.75 37.92-152.79 96.72-9 19.44-13.64 42.24-13.64 67.2 0 18.72 1.61 48.24 15.48 86.64 2.32 6.24-.69 13.2-6.7 15.36a11.34 11.34 0 01-14.79-7 276.39 276.39 0 01-16.88-95c0-28.8 5.32-55 15.72-77.76 30.75-67 98.94-110.4 173.6-110.4 105.18 0 190.71 84.24 190.71 187.92 0 38.88-31.9 70.56-71.2 70.56s-71.2-31.68-71.2-70.56c.01-25.68-21.49-46.6-48.07-46.6s-48.08 20.88-48.08 46.56c0 41 15.26 79.44 43.23 108.24 22 22.56 43 35 75.59 44.4 6.24 1.68 9.71 8.4 8.09 14.64a11.39 11.39 0 01-10.87 9.16z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/finger-print-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/finger-print-sharp.svg deleted file mode 100644 index e7f20bbe9857e41102f1616078267c61860a4add..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/finger-print-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Finger Print</title><path d="M56.79 200.58l12.36 7.5 7.35-13.58C93.07 166.75 143.78 102 256 102c115 0 164 70.32 180.1 93.46l8.16 12.7L469.88 192l-8.54-13.36c-8.88-12.85-27.52-39.53-60.78-63.1C360.15 86.82 311.5 72.25 256 72.25c-128.07 0-186.69 75.11-206 107.25L42.63 192 54 198.86a14.09 14.09 0 001.63 1.1 12.57 12.57 0 001.16.62z"/><path d="M379.22 172.32c-35.54-28.93-78.12-44.25-123.22-44.25-97.52 0-162.31 66-183.33 131.47C53.42 320 76.82 407.61 77.8 411.36l4.38 13.81 29.93-6.43-4.74-15c-.21-.75-22.1-82.93-5.41-135.21 9-28.08 27.73-55.4 51.35-74.79C181.81 170.39 217.35 158 256 158c90.58 0 141.93 70.61 156.45 108.11 11.27 28.93 8.67 61.82-6.28 82-5.53 7.39-15.28 16.07-30.12 15.32-33.81-1.72-39.66-18.43-47.79-50.25-3.9-15.32-7.9-31.18-17.87-44-12.14-15.75-29.8-23.36-54.28-23.36-26.33 0-46.27 8.68-59.38 25.72-28.6 37.28-10 100.93-9.21 103.61l.22.85c1.41 3.86 36.08 96.65 128.93 119.68l14.77 3.21 8.09-28.71-15.27-3.43c-74.22-18.43-105.21-94.39-107.59-100.39a152.44 152.44 0 01-5.1-29.79c-1.08-14.46-.32-34.39 9.43-47.14 7.15-9.32 18.64-13.82 35-13.82 29.79 0 34.78 14.57 42.58 44.79 7.58 29.46 18 69.85 75.84 72.75 22.21 1.07 42.26-8.79 56.34-27.65 21.13-28.28 25.14-71.57 10.19-110.14-11.68-30.36-34.21-60.54-61.73-83.04z"/><path d="M154.18 343.21c-3.47-28.28 1.41-71 26.55-98.78 17.44-19.29 42.79-29 75.19-29 37.49 0 65.87 16.72 84.51 49.61a154 154 0 0117.88 53.25l1.43 14.69 30-2.2a112.63 112.63 0 00-1-15.6c-.11-1.28-3.57-32.46-21-63.75-24.06-43.11-62.63-65.93-111.74-65.93-41.5 0-74.55 13.18-98.06 39.11-31.85 35.14-38.35 86.25-33.91 122.35v.33c7.97 54.53 28.97 98.14 66.12 137.14l11.6 11.22 20.95-21.79-10.34-9.79c-32.72-34.28-51.25-72.64-58.18-120.86zM132.47 72.66c11.08-6.72 50.27-26.77 123.53-26.77 87.54 0 126.44 28.72 126.87 28.93l13.9 8.86L413 58.47l-13.22-8.56c-.52-.38-1.06-.76-1.6-1.12C385.5 40.54 340.54 16 256 16c-87.71 0-132.75 26.48-143.41 33.71L99 58.52l16.2 25.21z"/><path d="M390.59 415.21c-33.37 3.75-60.45-2.67-80.71-18.85-34.24-27.43-38.68-75.11-38.79-76l-1.23-14.88-30.53 2.23 1.31 15c.22 2.46 5.2 60.75 49.62 96.54 22.11 17.89 49.74 26.89 82.24 26.89a187 187 0 0021.56-1.29l16.59-2.09-6.1-29.71z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/finger-print.svg b/ionic/platforms/android/app/src/main/assets/www/svg/finger-print.svg deleted file mode 100644 index 2ad3c77ec1e334fb139bc0d9cfb73b17c683fe76..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/finger-print.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Finger Print</title><path d="M63.28 202a15.29 15.29 0 01-7.7-2 14.84 14.84 0 01-5.52-20.46C69.34 147.36 128 72.25 256 72.25c55.47 0 104.12 14.57 144.53 43.29 33.26 23.57 51.9 50.25 60.78 63.1a14.79 14.79 0 01-4 20.79 15.52 15.52 0 01-21.24-4C420 172.32 371 102 256 102c-112.25 0-163 64.71-179.53 92.46A15 15 0 0163.28 202z"/><path d="M320.49 496a15.31 15.31 0 01-3.79-.43c-92.85-23-127.52-115.82-128.93-119.68l-.22-.85c-.76-2.68-19.39-66.33 9.21-103.61 13.11-17 33.05-25.72 59.38-25.72 24.48 0 42.14 7.61 54.28 23.36 10 12.86 14 28.72 17.87 44 8.13 31.82 14 48.53 47.79 50.25 14.84.75 24.59-7.93 30.12-15.32 14.95-20.15 17.55-53 6.28-82C398 228.57 346.61 158 256 158c-38.68 0-74.22 12.43-102.72 35.79-23.59 19.35-42.28 46.67-51.28 74.75-16.69 52.28 5.2 134.46 5.41 135.21A14.83 14.83 0 0196.54 422a15.39 15.39 0 01-18.74-10.6c-1-3.75-24.38-91.4-5.1-151.82 21-65.47 85.81-131.47 183.33-131.47 45.07 0 87.65 15.32 123.19 44.25 27.52 22.5 50 52.72 61.76 82.93 14.95 38.57 10.94 81.86-10.19 110.14-14.08 18.86-34.13 28.72-56.34 27.65-57.86-2.9-68.26-43.29-75.84-72.75-7.8-30.22-12.79-44.79-42.58-44.79-16.36 0-27.85 4.5-35 13.82-9.75 12.75-10.51 32.68-9.43 47.14a152.44 152.44 0 005.1 29.79c2.38 6 33.37 82 107.59 100.39a14.88 14.88 0 0111 18.11 15.36 15.36 0 01-14.8 11.21z"/><path d="M201.31 489.14a15.5 15.5 0 01-11.16-4.71c-37.16-39-58.18-82.61-66.09-137.14V347c-4.44-36.1 2.06-87.21 33.91-122.35 23.51-25.93 56.56-39.11 98.06-39.11 49.08 0 87.65 22.82 111.7 65.89 17.45 31.29 20.91 62.47 21 63.75a15.07 15.07 0 01-13.65 16.4 15.26 15.26 0 01-16.79-13.29A154 154 0 00340.43 265c-18.64-32.89-47-49.61-84.51-49.61-32.4 0-57.75 9.75-75.19 29-25.14 27.75-30 70.5-26.55 98.78 6.93 48.22 25.46 86.58 58.18 120.86a14.7 14.7 0 01-.76 21.11 15.44 15.44 0 01-10.29 4z"/><path d="M372.5 446.18c-32.5 0-60.13-9-82.24-26.89-44.42-35.79-49.4-94.08-49.62-96.54a15.27 15.27 0 0130.45-2.36c.11.86 4.55 48.54 38.79 76 20.26 16.18 47.34 22.6 80.71 18.85a15.2 15.2 0 0116.91 13.18 14.92 14.92 0 01-13.44 16.5 187 187 0 01-21.56 1.26zM398.18 48.79C385.5 40.54 340.54 16 256 16c-88.74 0-133.81 27.11-143.78 34a11.59 11.59 0 00-1.84 1.4.36.36 0 01-.22.1 14.87 14.87 0 00-5.09 11.15 15.06 15.06 0 0015.31 14.85 15.56 15.56 0 008.88-2.79c.43-.32 39.22-28.82 126.77-28.82S382.58 74.29 383 74.5a15.25 15.25 0 009.21 3 15.06 15.06 0 0015.29-14.89 14.9 14.9 0 00-9.32-13.82z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/fish-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/fish-outline.svg deleted file mode 100644 index fc9cc7c198eeee5b273b932188f2193fabd2bb21..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/fish-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Fish</title><path stroke-linejoin="round" d="M240 152c-50.71 12.21-94.15 52.31-120.3 73.43a261.14 261.14 0 00-23.81-19.58C59.53 179.29 16 176 16 176s11.37 51.53 41.36 79.83C27.37 284.14 16 335.67 16 335.67s43.53-3.29 79.89-29.85a259.18 259.18 0 0023.61-19.41c26.1 21.14 69.74 61.34 120.5 73.59l-16 56c39.43-6.67 78.86-35.51 94.72-48.25C448 362 496 279 496 256c0-22-48-106-176.89-111.73C303.52 131.78 263.76 102.72 224 96z" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="416" cy="239.99" r="16"/><path stroke-linecap="round" stroke-miterlimit="20" d="M378.37 356a199.22 199.22 0 010-200" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/fish-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/fish-sharp.svg deleted file mode 100644 index 4b8aadc2d09c679b4f0f8cb8b8ba6b9fc5d4ea2b..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/fish-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Fish</title><path d="M335.45 256a214.83 214.83 0 0129.08-108l7.62-13.26a280.69 280.69 0 00-48.64-7.15c-21.94-16.9-54.64-36.95-92.34-43.33L208 80l13.37 61.86c-41.67 14.14-78.43 42.86-102.76 62.62q-7.06-5.91-14.78-11.55c-39.71-29-82.6-31.8-84.4-31.9L0 160l2.67 19.31c.29 2 6.79 44.73 31.65 76.52C9.46 287.63 3 330.33 2.67 332.36L0 352l19.43-1.36c1.8-.1 44.69-2.89 84.4-31.9q7.58-5.53 14.56-11.37c24.37 19.83 61.14 48.6 102.86 62.74L208 432l23.17-4.22c37.49-6.34 70.08-26.4 92-43.32a284.27 284.27 0 0049.32-7.23l-7.91-13.18A214.92 214.92 0 01335.45 256z"/><path d="M499.59 221.75c-5.85-9.88-16.54-24.9-34.19-40.28a209.82 209.82 0 00-62-37L392.23 164a183.22 183.22 0 00-.09 183.87l11.75 19.57a209.26 209.26 0 0061.42-36.49C497.05 303.47 512 269 512 256c0-12.31-8-26.74-12.41-34.25zM416 256a16 16 0 1116-16 16 16 0 01-16 16z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/fish.svg b/ionic/platforms/android/app/src/main/assets/www/svg/fish.svg deleted file mode 100644 index 58ed4db4ba561ce54020ee369dde82cc3c56043e..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/fish.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Fish</title><path d="M512 256c0-16.54-14.27-46.76-45.61-74a207.06 207.06 0 00-60.28-36.12 3.15 3.15 0 00-3.93 1.56c-.15.29-.3.57-.47.86l-9.59 15.9a183.24 183.24 0 00.07 183.78l.23.39 8.74 16a4 4 0 004.94 1.82C479.63 337.42 512 281.49 512 256zm-93.92-.14a16 16 0 1113.79-13.79 16 16 0 01-13.79 13.79z"/><path d="M335.45 256a214.8 214.8 0 0129.08-108l.12-.21 4.62-7.67a4 4 0 00-2.59-6 284.29 284.29 0 00-39.26-5.39 7.94 7.94 0 01-4.29-1.6c-19.28-14.66-57.5-40.3-96.46-46.89a16 16 0 00-18 20.18l10.62 37.17a4 4 0 01-2.42 4.84c-36.85 13.69-68.59 38.75-91.74 57.85a8 8 0 01-10.06.06q-4.72-3.75-9.69-7.39c-39.64-28.95-86.21-32.76-88.17-32.9a16 16 0 00-16.83 19.4c.42 1.93 9.19 40.69 31.7 71.61a8.09 8.09 0 010 9.55C9.57 291.52.8 330.29.38 332.22a16 16 0 0016.83 19.4c2-.14 48.53-4 88.12-32.88q4.85-3.56 9.47-7.22a8 8 0 0110.06.07c23.25 19.19 55.05 44.28 92 58a4 4 0 012.42 4.83l-10.66 37.18a16 16 0 0018 20.18c17.16-2.9 51.88-12.86 96.05-46.83a8.15 8.15 0 014.36-1.65 287.36 287.36 0 0039.22-5.3 4 4 0 002.69-5.83l-4.51-8.29A214.81 214.81 0 01335.45 256z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/fitness-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/fitness-outline.svg deleted file mode 100644 index 3e6f3a9e5c1f082c3442c581d9e219e1ef13c49d..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/fitness-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Fitness</title><path d="M352.92 80C288 80 256 144 256 144s-32-64-96.92-64c-52.76 0-94.54 44.14-95.08 96.81-1.1 109.33 86.73 187.08 183 252.42a16 16 0 0018 0c96.26-65.34 184.09-143.09 183-252.42-.54-52.67-42.32-96.81-95.08-96.81z" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-linejoin="round" d="M48 256h112l48-96 48 160 48-96 32 64h128" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/fitness-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/fitness-sharp.svg deleted file mode 100644 index 8f715a93017464f1ac1733e5feb38afb2d816022..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/fitness-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Fitness</title><path d="M480 272h-37.34a261.41 261.41 0 01-18.25 32H480zM32 240v32h37.34a225.1 225.1 0 01-12.4-32z"/><path d="M304 259.78l-51.73 103.46-48-160L169.89 272H69.34c10 20.92 23.5 41.41 40.63 61.68 40.12 47.46 94.25 79.75 137 108.32l9 6 9-6c42.78-28.57 96.91-60.86 137-108.32A322.78 322.78 0 00424.41 304h-98.3z"/><path d="M211.73 116.76l48 160L304 188.22 345.89 272h96.77A213.13 213.13 0 00464 176.65C463.37 114.54 413.54 64 352.92 64c-48.11 0-80.1 28-96.92 48.21C239.18 92 207.19 64 159.08 64 98.46 64 48.63 114.54 48 176.65A211.23 211.23 0 0056.94 240h93.17z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/fitness.svg b/ionic/platforms/android/app/src/main/assets/www/svg/fitness.svg deleted file mode 100644 index e74c5e74ac618f761afd368eefd79d2ef9347715..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/fitness.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Fitness</title><path d="M193.69 152.84a16 16 0 0129.64 2.56l36.4 121.36 30-59.92a16 16 0 0128.62 0L345.89 272h96.76A213.08 213.08 0 00464 176.65C463.37 114.54 413.54 64 352.92 64c-48.09 0-80 29.54-96.92 51-16.88-21.49-48.83-51-96.92-51C98.46 64 48.63 114.54 48 176.65A211.13 211.13 0 0056.93 240h93.18z"/><path d="M321.69 295.16L304 259.78l-33.69 67.38A16 16 0 01256 336q-.67 0-1.38-.06a16 16 0 01-14-11.34l-36.4-121.36-30 59.92A16 16 0 01160 272H69.35q14 29.29 37.27 57.66c18.77 22.88 52.8 59.46 131.39 112.81a31.84 31.84 0 0036 0c78.59-53.35 112.62-89.93 131.39-112.81a316.79 316.79 0 0019-25.66H336a16 16 0 01-14.31-8.84zM464 272h-21.35a260.11 260.11 0 01-18.25 32H464a16 16 0 000-32zM48 240a16 16 0 000 32h21.35a225.22 225.22 0 01-12.42-32z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/flag-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/flag-outline.svg deleted file mode 100644 index b826f50040021a2867f7a45986a185748f74fcba..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/flag-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Flag</title><path d="M80 464V68.14a8 8 0 014-6.9C91.81 56.66 112.92 48 160 48c64 0 145 48 192 48a199.53 199.53 0 0077.23-15.77 2 2 0 012.77 1.85v219.36a4 4 0 01-2.39 3.65C421.37 308.7 392.33 320 352 320c-48 0-128-32-192-32s-80 16-80 16" stroke-linecap="round" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/flag-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/flag-sharp.svg deleted file mode 100644 index fe16bb8341c9a5c53a29e185f4a4a019d146638c..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/flag-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Flag</title><path d="M102 480H64V57.37l4.69-4.68C72.14 49.23 92.78 32 160 32c37.21 0 78.83 14.71 115.55 27.68C305.12 70.13 333.05 80 352 80c42.83 0 72.72-14.25 73-14.4l23-11.14v259.43l-8.84 4.42C437.71 319 403.19 336 352 336c-24.14 0-54.38-7.14-86.39-14.71C229.63 312.79 192.43 304 160 304c-36.87 0-49.74 5.58-58 9.11z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/flag.svg b/ionic/platforms/android/app/src/main/assets/www/svg/flag.svg deleted file mode 100644 index 3ab17b54558e3c4037ba156d136c1e7583f793da..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/flag.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Flag</title><path d="M80 480a16 16 0 01-16-16V68.13a24 24 0 0111.9-20.72C88 40.38 112.38 32 160 32c37.21 0 78.83 14.71 115.55 27.68C305.12 70.13 333.05 80 352 80a183.84 183.84 0 0071-14.5 18 18 0 0125 16.58v219.36a20 20 0 01-12 18.31c-8.71 3.81-40.51 16.25-84 16.25-24.14 0-54.38-7.14-86.39-14.71C229.63 312.79 192.43 304 160 304c-36.87 0-55.74 5.58-64 9.11V464a16 16 0 01-16 16z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/flame-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/flame-outline.svg deleted file mode 100644 index 63ce7b22c3fcda64e986abb12f0f41e42e238fab..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/flame-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Flame</title><path d="M112 320c0-93 124-165 96-272 66 0 192 96 192 272a144 144 0 01-288 0z" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M320 368c0 57.71-32 80-64 80s-64-22.29-64-80 40-86 32-128c42 0 96 70.29 96 128z" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/flame-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/flame-sharp.svg deleted file mode 100644 index ec89bd57235172421cb4706303e773ec9c89a40b..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/flame-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Flame</title><path d="M394.24 197.56a300.67 300.67 0 00-53.38-90C301.2 61.65 240 32 192 32c19 70-14.36 117.12-44.79 163.77C122 234.36 96 274.27 96 320c0 88.22 71.78 160 160 160s160-71.78 160-160c0-43.3-7.32-84.49-21.76-122.44zM288.33 418.69C278 429.69 265.05 432 256 432s-22-2.31-32.33-13.31S208 390.24 208 368c0-25.14 8.82-44.28 17.34-62.78 6.48-14.07 14.66-27.22 15.11-44.49 11.3 5.88 23.67 16.91 34.54 31.28 18.17 24 29 52.42 29 76 .01 22.23-5.41 39.76-15.66 50.68z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/flame.svg b/ionic/platforms/android/app/src/main/assets/www/svg/flame.svg deleted file mode 100644 index 9da49ee8c120d45c8ea40ce18c1b237a709320f6..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/flame.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Flame</title><path d="M394.23 197.56a300.43 300.43 0 00-53.37-90C301.2 61.65 249.05 32 208 32a16 16 0 00-15.48 20c13.87 53-14.88 97.07-45.31 143.72C122 234.36 96 274.27 96 320c0 88.22 71.78 160 160 160s160-71.78 160-160c0-43.3-7.32-84.49-21.77-122.44zm-105.9 221.13C278 429.69 265.05 432 256 432s-22-2.31-32.33-13.31S208 390.24 208 368c0-25.14 8.82-44.28 17.34-62.78 4.95-10.74 10-21.67 13-33.37a8 8 0 0112.49-4.51A126.48 126.48 0 01275 292c18.17 24 29 52.42 29 76 0 22.24-5.42 39.77-15.67 50.69z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/flash-off-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/flash-off-outline.svg deleted file mode 100644 index c375ffdbb49632c08a417fa3e714092361cd5198..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/flash-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Flash Off</title><path d="M432 448a15.92 15.92 0 01-11.31-4.69l-352-352a16 16 0 0122.62-22.62l352 352A16 16 0 01432 448zM294.34 84.28l-22.08 120.84a16 16 0 006.17 15.71 16.49 16.49 0 009.93 3.17h94.12l-38.37 47.42a4 4 0 00.28 5.34l17.07 17.07a4 4 0 005.94-.31l60.8-75.16a16.37 16.37 0 003.3-14.36 16 16 0 00-15.5-12H307.19L335.4 37.63c.05-.3.1-.59.13-.89A18.45 18.45 0 00302.73 23l-92.58 114.46a4 4 0 00.28 5.35l17.07 17.06a4 4 0 005.94-.31zM217.78 427.57l22-120.71a16 16 0 00-6.19-15.7 16.54 16.54 0 00-9.92-3.16h-94.1l38.36-47.42a4 4 0 00-.28-5.34l-17.07-17.07a4 4 0 00-5.93.31L83.8 293.64A16.37 16.37 0 0080.5 308 16 16 0 0096 320h108.83l-28.09 154.36v.11a18.37 18.37 0 0032.5 14.53l92.61-114.46a4 4 0 00-.28-5.35l-17.07-17.06a4 4 0 00-5.94.31z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/flash-off-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/flash-off-sharp.svg deleted file mode 100644 index c8e2d91797cc1563b4525b2e775f9e5fe25231bc..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/flash-off-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Flash Off</title><path d="M63.998 86.004l21.998-21.998L448 426.01l-21.998 21.998zM80 304h144l-32 192 108.18-129.82-148.36-148.36L80 304zM432 208H288l32-192-108.18 129.82 148.36 148.36L432 208z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/flash-off.svg b/ionic/platforms/android/app/src/main/assets/www/svg/flash-off.svg deleted file mode 100644 index 878ad399d16e60d9ea6056e7a35aad78d7674b19..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/flash-off.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Flash Off</title><path d="M432 448a15.92 15.92 0 01-11.31-4.69l-352-352a16 16 0 0122.62-22.62l352 352A16 16 0 01432 448zM431.5 204a16 16 0 00-15.5-12H307.19L335.4 37.63c.05-.3.1-.59.13-.89A18.45 18.45 0 00302.73 23l-92.58 114.46a4 4 0 00.29 5.35l151 151a4 4 0 005.94-.31l60.8-75.16A16.37 16.37 0 00431.5 204zM301.57 369.19l-151-151a4 4 0 00-5.93.31L83.8 293.64A16.37 16.37 0 0080.5 308 16 16 0 0096 320h108.83l-28.09 154.36v.11a18.37 18.37 0 0032.5 14.53l92.61-114.46a4 4 0 00-.28-5.35z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/flash-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/flash-outline.svg deleted file mode 100644 index fa177c3aab9a989e7a7ad8144b7dc2e85a2684fa..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/flash-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Flash</title><path d="M315.27 33L96 304h128l-31.51 173.23a2.36 2.36 0 002.33 2.77h0a2.36 2.36 0 001.89-.95L416 208H288l31.66-173.25a2.45 2.45 0 00-2.44-2.75h0a2.42 2.42 0 00-1.95 1z" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/flash-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/flash-sharp.svg deleted file mode 100644 index adb8b3d984b7db811c05380cef1083081b55f865..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/flash-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Flash</title><path d="M432 208H288l32-192L80 304h144l-32 192z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/flash.svg b/ionic/platforms/android/app/src/main/assets/www/svg/flash.svg deleted file mode 100644 index 9d4d97357f042a8c3e1b4a5621531ecf8997ddc6..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/flash.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Flash</title><path d="M194.82 496a18.36 18.36 0 01-18.1-21.53v-.11L204.83 320H96a16 16 0 01-12.44-26.06L302.73 23a18.45 18.45 0 0132.8 13.71c0 .3-.08.59-.13.89L307.19 192H416a16 16 0 0112.44 26.06L209.24 489a18.45 18.45 0 01-14.42 7z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/flashlight-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/flashlight-outline.svg deleted file mode 100644 index c2f5d079b9cb2ff7fe3bfa996b3543986b9fabbd..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/flashlight-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Flashlight</title><path d="M456.64 162.86L349.12 55.36c-13.15-13.14-28.68-7.17-41.82 6l-11.95 12c-26.13 26.13-27.62 58.38-29.42 83.31-.89 12.24-9.78 27.55-18.51 36.28L58.58 381.67c-16.35 16.33-12.69 39.42 3.73 55.84l12.17 12.17c16.36 16.35 39.43 20.16 55.86 3.74l188.83-188.8c8.74-8.74 24-17.55 36.29-18.52 24.87-1.86 58.62-4.85 83.26-29.49l11.94-11.94c13.15-13.14 19.12-28.67 5.98-41.81z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="224.68" cy="287.28" r="20"/><path stroke-linecap="round" stroke-miterlimit="10" d="M289 81l142 142" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/flashlight-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/flashlight-sharp.svg deleted file mode 100644 index 4e374433f6a9a0bfc9e05a2d9326863714ae5e02..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/flashlight-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Flashlight</title><path d="M330 16l-42.68 42.7L453.3 224.68 496 182 330 16z"/><ellipse cx="224.68" cy="287.3" rx="20.03" ry="19.96" class="ionicon-fill-none"/><path d="M429.21 243.85L268 82.59 249.65 168 16 402l94 94 234.23-233.8zm-189 56.07a20 20 0 110-25.25 20 20 0 01-.02 25.25z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/flashlight.svg b/ionic/platforms/android/app/src/main/assets/www/svg/flashlight.svg deleted file mode 100644 index 21bf654fee42e70af6de322a211c58f35c1d99d1..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/flashlight.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Flashlight</title><path d="M462 216c9.35-9.35 15.14-19.09 17.19-28.95 2.7-12.95-1.29-25.55-11.22-35.48L360.43 44.05C346.29 29.92 322 24.07 296 50l-2 2a8 8 0 000 11.32L448.64 218a8 8 0 0011.36 0zM250.14 153.08l-.16 2.34c-.53 7.18-6.88 19.15-13.88 26.14L47.27 370.36c-11.12 11.11-16.46 25.57-15.05 40.7C33.49 424.58 40.16 438 51 448.83L63.17 461c12.61 12.6 27.78 19 42.49 19a50.4 50.4 0 0036-15.24l188.84-188.8c7.07-7.07 18.84-13.3 26.17-13.87 17.48-1.32 43.57-3.28 67.79-15.65a4 4 0 001-6.37L271.69 86.31a4 4 0 00-6.39 1c-12.12 22.99-13.82 46.91-15.16 65.77zm-9.95 146.83a20 20 0 110-25.25 20 20 0 010 25.25z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/flask-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/flask-outline.svg deleted file mode 100644 index eaa53287ead33d266235b0f820c5d9e3ae437edb..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/flask-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Flask</title><path stroke-linecap="round" stroke-miterlimit="10" d="M176 48h160M118 304h276M208 48v93.48a64.09 64.09 0 01-9.88 34.18L73.21 373.49C48.4 412.78 76.63 464 123.08 464h265.84c46.45 0 74.68-51.22 49.87-90.51L313.87 175.66a64.09 64.09 0 01-9.87-34.18V48" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/flask-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/flask-sharp.svg deleted file mode 100644 index ab758eb29807bbf655883d2ba0089a57732a7b77..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/flask-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Flask</title><path d="M469.11 382.76L325 153.92V74h32V32H155v42h32v79.92L42.89 382.76c-13 20.64-14.78 43.73-3 65.1S71.59 480 96 480h320c24.41 0 44.32-10.76 56.1-32.14s10.04-44.46-2.99-65.1zM224.39 173.39a29.76 29.76 0 004.62-16V74h54v84.59a25.85 25.85 0 004 13.82L356.82 283H155.18z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/flask.svg b/ionic/platforms/android/app/src/main/assets/www/svg/flask.svg deleted file mode 100644 index 7f8593ab4a37d3b10be524d74fa3a2c7b2bf9900..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/flask.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Flask</title><path d="M452.32 365L327.4 167.12a48.07 48.07 0 01-7.4-25.64V64h15.56c8.61 0 16-6.62 16.43-15.23A16 16 0 00336 32H176.45c-8.61 0-16 6.62-16.43 15.23A16 16 0 00176 64h16v77.48a47.92 47.92 0 01-7.41 25.63L59.68 365a74 74 0 00-2.5 75.84C70.44 465.19 96.36 480 124.13 480h263.74c27.77 0 53.69-14.81 66.95-39.21a74 74 0 00-2.5-75.79zM211.66 184.2A79.94 79.94 0 00224 141.48V68a4 4 0 014-4h56a4 4 0 014 4v73.48a79.94 79.94 0 0012.35 42.72l57.8 91.53a8 8 0 01-6.78 12.27H160.63a8 8 0 01-6.77-12.27z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/flower-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/flower-outline.svg deleted file mode 100644 index 8477e841c56c08f640006c105ac7357d0c2ce0a0..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/flower-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Flower</title><path d="M215.08 156.92c-4.89-24-10.77-56.27-10.77-73.23A51.36 51.36 0 01256 32h0c28.55 0 51.69 23.69 51.69 51.69 0 16.5-5.85 48.95-10.77 73.23M215.08 355.08c-4.91 24.06-10.77 56.16-10.77 73.23A51.36 51.36 0 00256 480h0c28.55 0 51.69-23.69 51.69-51.69 0-16.54-5.85-48.93-10.77-73.23M355.08 215.08c24.06-4.91 56.16-10.77 73.23-10.77A51.36 51.36 0 01480 256h0c0 28.55-23.69 51.69-51.69 51.69-16.5 0-48.95-5.85-73.23-10.77M156.92 215.07c-24-4.89-56.25-10.76-73.23-10.76A51.36 51.36 0 0032 256h0c0 28.55 23.69 51.69 51.69 51.69 16.5 0 48.95-5.85 73.23-10.77" stroke-linecap="round" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><path d="M296.92 156.92c13.55-20.48 32.3-47.25 44.37-59.31a51.35 51.35 0 0173.1 0h0c20.19 20.19 19.8 53.3 0 73.1-11.66 11.67-38.67 30.67-59.31 44.37M156.92 296.92c-20.48 13.55-47.25 32.3-59.31 44.37a51.35 51.35 0 000 73.1h0c20.19 20.19 53.3 19.8 73.1 0 11.67-11.66 30.67-38.67 44.37-59.31M355.08 296.92c20.48 13.55 47.25 32.3 59.31 44.37a51.35 51.35 0 010 73.1h0c-20.19 20.19-53.3 19.8-73.1 0-11.69-11.69-30.66-38.65-44.37-59.31M215.08 156.92c-13.53-20.43-32.38-47.32-44.37-59.31a51.35 51.35 0 00-73.1 0h0c-20.19 20.19-19.8 53.3 0 73.1 11.61 11.61 38.7 30.68 59.31 44.37" stroke-linecap="round" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="256" cy="256" r="64" stroke-linecap="round" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/flower-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/flower-sharp.svg deleted file mode 100644 index 99abae8043671438e886fc41d53d0262502111a6..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/flower-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Flower</title><circle cx="256" cy="256" r="43"/><path d="M475.93 303.91a67.49 67.49 0 00-47.62-115.6c-2.88 0-6.2.14-9.93.43 2.75-2.36 5.23-4.62 7.33-6.71A67.83 67.83 0 00378 66.33h-.25a67.27 67.27 0 00-47.82 20c-2.11 2.11-4.37 4.59-6.72 7.33.29-3.75.44-7.07.44-9.93a67.69 67.69 0 10-135.38 0c0 2.87.15 6.19.44 9.93-2.36-2.74-4.62-5.22-6.72-7.33a67.27 67.27 0 00-47.82-20H134A67.9 67.9 0 0086.29 182c2.1 2.09 4.58 4.35 7.34 6.72-3.74-.29-7.06-.44-9.94-.44a67.69 67.69 0 000 135.38c2.86 0 6.18-.15 9.93-.44-2.74 2.35-5.22 4.61-7.33 6.72a67.55 67.55 0 0047.82 115.42h.25A67.32 67.32 0 00182 425.71c2.09-2.1 4.35-4.58 6.71-7.33-.28 3.73-.43 7.05-.43 9.93a67.69 67.69 0 00135.38 0c0-2.87-.15-6.19-.44-9.94 2.36 2.75 4.62 5.24 6.72 7.34a67.32 67.32 0 0047.67 19.68h.25A67.5 67.5 0 00425.71 330c-2.11-2.11-4.59-4.37-7.33-6.72 3.75.29 7.07.44 9.93.44a67.27 67.27 0 0047.62-19.81zM256 341a85 85 0 1185-85 85.1 85.1 0 01-85 85z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/flower.svg b/ionic/platforms/android/app/src/main/assets/www/svg/flower.svg deleted file mode 100644 index b3f8fbecd6313650c971f9584d3d1aaf6753ac4f..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/flower.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Flower</title><circle cx="256" cy="256" r="48"/><path d="M475.93 303.91a67.49 67.49 0 00-44.34-115.53 5.2 5.2 0 01-4.58-3.21 5.21 5.21 0 011-5.51A67.83 67.83 0 00378 66.33h-.25A67.13 67.13 0 00332.35 84a5.21 5.21 0 01-5.52 1 5.23 5.23 0 01-3.22-4.58 67.68 67.68 0 00-135.23 0 5.2 5.2 0 01-3.21 4.58 5.21 5.21 0 01-5.52-1 67.11 67.11 0 00-45.44-17.69H134a67.91 67.91 0 00-50 113.34 5.21 5.21 0 011 5.51 5.2 5.2 0 01-4.58 3.21 67.71 67.71 0 000 135.23 5.23 5.23 0 014.58 3.23 5.22 5.22 0 01-1 5.52 67.54 67.54 0 0050.08 113h.25A67.38 67.38 0 00179.65 428a5.21 5.21 0 015.51-1 5.2 5.2 0 013.21 4.58 67.71 67.71 0 00135.23 0 5.23 5.23 0 013.22-4.58 5.21 5.21 0 015.51 1 67.38 67.38 0 0045.29 17.42h.25a67.48 67.48 0 0050.08-113 5.22 5.22 0 01-1-5.52 5.23 5.23 0 014.58-3.22 67.31 67.31 0 0044.4-19.77zM256 336a80 80 0 1180-80 80.09 80.09 0 01-80 80z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/folder-open-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/folder-open-outline.svg deleted file mode 100644 index 8833bdf0a62c2d006ce36704988a9f9fde86ab21..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/folder-open-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Folder Open</title><path d="M64 192v-72a40 40 0 0140-40h75.89a40 40 0 0122.19 6.72l27.84 18.56a40 40 0 0022.19 6.72H408a40 40 0 0140 40v40" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M479.9 226.55L463.68 392a40 40 0 01-39.93 40H88.25a40 40 0 01-39.93-40L32.1 226.55A32 32 0 0164 192h384.1a32 32 0 0131.8 34.55z" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/folder-open-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/folder-open-sharp.svg deleted file mode 100644 index b6a7c9cf06af0233a18f3543b81859ae4084217e..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/folder-open-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Folder Open</title><path d="M16.08 189.4l28.58 233.87A28 28 0 0072.52 448h367a28 28 0 0027.86-24.73l28.54-233.87A12 12 0 00484 176H28a12 12 0 00-11.92 13.4zM464 124a28 28 0 00-28-28H244.84l-48-32H76a28 28 0 00-28 28v52h416z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/folder-open.svg b/ionic/platforms/android/app/src/main/assets/www/svg/folder-open.svg deleted file mode 100644 index cb12148260fa0c0079f5f08e6db1e5668e0dff57..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/folder-open.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Folder Open</title><path d="M408 96H252.11a23.89 23.89 0 01-13.31-4L211 73.41A55.77 55.77 0 00179.89 64H104a56.06 56.06 0 00-56 56v24h416c0-30.88-25.12-48-56-48zM423.75 448H88.25a56 56 0 01-55.93-55.15L16.18 228.11v-.28A48 48 0 0164 176h384.1a48 48 0 0147.8 51.83v.28l-16.22 164.74A56 56 0 01423.75 448zm56.15-221.45z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/folder-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/folder-outline.svg deleted file mode 100644 index ab02ea6c6ffde017c40f9033eae98a8ec44301a8..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/folder-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Folder</title><path d="M440 432H72a40 40 0 01-40-40V120a40 40 0 0140-40h75.89a40 40 0 0122.19 6.72l27.84 18.56a40 40 0 0022.19 6.72H440a40 40 0 0140 40v240a40 40 0 01-40 40zM32 192h448" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/folder-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/folder-sharp.svg deleted file mode 100644 index 67c03f98c2db09c5428440a889c48c71967ad017..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/folder-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Folder</title><path d="M16 420a28 28 0 0028 28h424a28 28 0 0028-28V208H16zM496 124a28 28 0 00-28-28H212.84l-48-32H44a28 28 0 00-28 28v84h480z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/folder.svg b/ionic/platforms/android/app/src/main/assets/www/svg/folder.svg deleted file mode 100644 index 19a5aebbfdf0a4f4f5bb81defe5fc79279207161..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/folder.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Folder</title><path d="M496 152a56 56 0 00-56-56H220.11a23.89 23.89 0 01-13.31-4L179 73.41A55.77 55.77 0 00147.89 64H72a56 56 0 00-56 56v48a8 8 0 008 8h464a8 8 0 008-8zM16 392a56 56 0 0056 56h368a56 56 0 0056-56V216a8 8 0 00-8-8H24a8 8 0 00-8 8z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/football-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/football-outline.svg deleted file mode 100644 index d4e6af7c870bd325b4d6ac4de0cc2206569ce6a1..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/football-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Football</title><circle cx="256" cy="256" r="192" stroke-linecap="round" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-linejoin="round" d="M256 175.15l-76.09 63.83L200 320h112l20.09-81.02L256 175.15zM332.09 238.98l52.87-22.4 25.78-73.26M447 269.97l-62.04-53.39M179.91 238.98l-52.87-22.4-25.78-73.26M65 269.97l62.04-53.39M256 175.15v-57.57l64-42.64M192 74.93l64 42.65M312 320l28 48-28 71M410.74 368H342M200 320l-28 48 28.37 71.5M101.63 368H172" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/football-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/football-sharp.svg deleted file mode 100644 index 9861c4166a98fda51562a7e1e9e35708c32f33c4..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/football-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Football</title><path d="M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm140.64 296.08h-46.77l-16.89-29 15-60.44L377.79 242l42.65 36.71a164.87 164.87 0 01-23.8 65.37zM134.21 242L164 254.67l15 60.44-16.89 29h-46.75a164.87 164.87 0 01-23.8-65.34zm249.07-92.47l-18.41 52.33-31.12 13.18L277 167.46v-35l43.86-29.22a166.87 166.87 0 0162.42 46.32zM191.14 103.2L235 132.42v35l-56.75 47.61-31.12-13.18-18.41-52.33a166.87 166.87 0 0162.42-46.32zm26.44 314.3l-20.1-50.66 16-27.51h85l16.06 27.53-20 50.6a166.23 166.23 0 01-77 0z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/football.svg b/ionic/platforms/android/app/src/main/assets/www/svg/football.svg deleted file mode 100644 index 0749098e805b6adc3908a271546d920eabf05bff..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/football.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Football</title><path d="M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm143 304h-45.22a8 8 0 01-6.91-4l-16.14-27.68a8 8 0 01-.86-6l14.86-59.92a8 8 0 014.65-5.45l28.1-11.9a8 8 0 018.34 1.3l41.63 35.82a8 8 0 012.69 7.26 174.75 174.75 0 01-24.28 66.68A8 8 0 01399 352zM134.52 237.13l28.1 11.9a8 8 0 014.65 5.45l14.86 59.92a8 8 0 01-.86 6L165.13 348a8 8 0 01-6.91 4H113a8 8 0 01-6.82-3.81 174.75 174.75 0 01-24.28-66.68 8 8 0 012.69-7.26l41.63-35.82a8 8 0 018.3-1.3zm256.94-87.24l-18.07 51.38A8 8 0 01369 206l-29.58 12.53a8 8 0 01-8.26-1.24L274.9 170.1a8 8 0 01-2.9-6.1v-33.58a8 8 0 013.56-6.65l42.83-28.54a8 8 0 017.66-.67A176.92 176.92 0 01390 142a8 8 0 011.46 7.89zM193.6 95.23l42.84 28.54a8 8 0 013.56 6.65V164a8 8 0 01-2.86 6.13l-56.26 47.19a8 8 0 01-8.26 1.24L143 206a8 8 0 01-4.43-4.72L120.5 149.9a8 8 0 011.5-7.9 176.92 176.92 0 0164-47.48 8 8 0 017.6.71zm17.31 327.46L191.18 373a8 8 0 01.52-7l15.17-26a8 8 0 016.91-4h84.44a8 8 0 016.91 4l15.18 26a8 8 0 01.53 7l-19.59 49.67a8 8 0 01-5.69 4.87 176.58 176.58 0 01-79 0 8 8 0 01-5.65-4.85z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/funnel-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/funnel-outline.svg deleted file mode 100644 index 29e31f85abc16e87e14ed6d20f389d547098b0d6..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/funnel-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Funnel</title><path d="M35.4 87.12l168.65 196.44A16.07 16.07 0 01208 294v119.32a7.93 7.93 0 005.39 7.59l80.15 26.67A7.94 7.94 0 00304 440V294a16.07 16.07 0 014-10.44L476.6 87.12A14 14 0 00466 64H46.05A14 14 0 0035.4 87.12z" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/funnel-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/funnel-sharp.svg deleted file mode 100644 index bd9d6a946f79bec2d946727bfd545ff31f0c51cb..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/funnel-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Funnel</title><path d="M0 48l192 240v128l128 48V288L512 48H0z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/funnel.svg b/ionic/platforms/android/app/src/main/assets/www/svg/funnel.svg deleted file mode 100644 index 5c482c15a02863a0f89b12970b78fb8a03ec45d9..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/funnel.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Funnel</title><path d="M296 464a23.88 23.88 0 01-7.55-1.23L208.3 436.1a23.92 23.92 0 01-16.3-22.78V294.11a.44.44 0 00-.09-.13L23.26 97.54A30 30 0 0146.05 48H466a30 30 0 0122.79 49.54L320.09 294a.77.77 0 00-.09.13V440a23.93 23.93 0 01-24 24z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/game-controller-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/game-controller-outline.svg deleted file mode 100644 index 796052440ee4e2b0a9d97cf793efc7fbbbc29141..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/game-controller-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Game Controller</title><path d="M467.51 248.83c-18.4-83.18-45.69-136.24-89.43-149.17A91.5 91.5 0 00352 96c-26.89 0-48.11 16-96 16s-69.15-16-96-16a99.09 99.09 0 00-27.2 3.66C89 112.59 61.94 165.7 43.33 248.83c-19 84.91-15.56 152 21.58 164.88 26 9 49.25-9.61 71.27-37 25-31.2 55.79-40.8 119.82-40.8s93.62 9.6 118.66 40.8c22 27.41 46.11 45.79 71.42 37.16 41.02-14.01 40.44-79.13 21.43-165.04z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="292" cy="224" r="20"/><path d="M336 288a20 20 0 1120-19.95A20 20 0 01336 288z"/><circle cx="336" cy="180" r="20"/><circle cx="380" cy="224" r="20"/><path stroke-linecap="round" stroke-linejoin="round" d="M160 176v96M208 224h-96" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/game-controller-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/game-controller-sharp.svg deleted file mode 100644 index 35b662c77236a6b18822f6308d27a8733bd8fa43..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/game-controller-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Game Controller</title><path d="M478.07 356.88L439 151c-8.86-40.35-23-71-88-71H145c-66 0-79.14 30.65-88 71L18 356.88c-7 34.12 4.43 61.25 33.37 71.81S103 423 119.18 391.3l15.42-30.52a16 16 0 0114.28-8.78h198.28a16 16 0 0114.28 8.78l15.42 30.52c16.14 31.7 38.88 48 67.81 37.39S485 391 478.07 356.88zM224 240h-48v48h-32v-48H96v-32h48v-48h32v48h48zm68 4a20 20 0 1120-20 20 20 0 01-20 20zm44 44a20 20 0 1120-20 20 20 0 01-20 20zm0-88a20 20 0 1120-20 20 20 0 01-20 20zm44 44a20 20 0 1120-20 20 20 0 01-20 20z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/game-controller.svg b/ionic/platforms/android/app/src/main/assets/www/svg/game-controller.svg deleted file mode 100644 index cb3a0cce5e7d1a282a98bfc50756bce31c34962a..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/game-controller.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Game Controller</title><path d="M483.13 245.38C461.92 149.49 430 98.31 382.65 84.33A107.13 107.13 0 00352 80c-13.71 0-25.65 3.34-38.28 6.88C298.5 91.15 281.21 96 256 96s-42.51-4.84-57.76-9.11C185.6 83.34 173.67 80 160 80a115.74 115.74 0 00-31.73 4.32c-47.1 13.92-79 65.08-100.52 161C4.61 348.54 16 413.71 59.69 428.83a56.62 56.62 0 0018.64 3.22c29.93 0 53.93-24.93 70.33-45.34 18.53-23.1 40.22-34.82 107.34-34.82 59.95 0 84.76 8.13 106.19 34.82 13.47 16.78 26.2 28.52 38.9 35.91 16.89 9.82 33.77 12 50.16 6.37 25.82-8.81 40.62-32.1 44-69.24 2.57-28.48-1.39-65.89-12.12-114.37zM208 240h-32v32a16 16 0 01-32 0v-32h-32a16 16 0 010-32h32v-32a16 16 0 0132 0v32h32a16 16 0 010 32zm84 4a20 20 0 1120-20 20 20 0 01-20 20zm44 44a20 20 0 1120-19.95A20 20 0 01336 288zm0-88a20 20 0 1120-20 20 20 0 01-20 20zm44 44a20 20 0 1120-20 20 20 0 01-20 20z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/gift-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/gift-outline.svg deleted file mode 100644 index 4640e44450343d18c692ca005e7e9ebd7db8a32d..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/gift-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Gift</title><path d="M256 104v56h56a56 56 0 10-56-56zM256 104v56h-56a56 56 0 1156-56z" stroke-linecap="round" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><rect x="64" y="160" width="384" height="112" rx="32" ry="32" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M416 272v144a48 48 0 01-48 48H144a48 48 0 01-48-48V272M256 160v304" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/gift-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/gift-sharp.svg deleted file mode 100644 index 05ff2749d41d9065d9f3603c8bfb8964089f1646..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/gift-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Gift</title><path d="M346 110a34 34 0 00-68 0v34h34a34 34 0 0034-34zM234 110a34 34 0 10-34 34h34z" class="ionicon-fill-none"/><path d="M234 144h44v112h164a22 22 0 0022-22v-68a22 22 0 00-22-22h-59.82A77.95 77.95 0 00256 55.79 78 78 0 00129.81 144H70a22 22 0 00-22 22v68a22 22 0 0022 22h164zm44-34a34 34 0 1134 34h-34zm-112 0a34 34 0 1168 0v34h-34a34 34 0 01-34-34zM278 480h132a22 22 0 0022-22V288H278zM80 458a22 22 0 0022 22h132V288H80z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/gift.svg b/ionic/platforms/android/app/src/main/assets/www/svg/gift.svg deleted file mode 100644 index cf4a772f59e5a1c0a3d7c4d1769eb2eec730fb09..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/gift.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Gift</title><path d="M200 144h40v-40a40 40 0 10-40 40zM352 104a40 40 0 00-80 0v40h40a40 40 0 0040-40z" class="ionicon-fill-none"/><path d="M80 416a64 64 0 0064 64h92a4 4 0 004-4V292a4 4 0 00-4-4H88a8 8 0 00-8 8zM240 252V144h32v108a4 4 0 004 4h140a47.93 47.93 0 0016-2.75A48.09 48.09 0 00464 208v-16a48 48 0 00-48-48h-40.54a2 2 0 01-1.7-3A72 72 0 00256 58.82 72 72 0 00138.24 141a2 2 0 01-1.7 3H96a48 48 0 00-48 48v16a48.09 48.09 0 0032 45.25A47.93 47.93 0 0096 256h140a4 4 0 004-4zm32-148a40 40 0 1140 40h-40zm-74.86-39.9A40 40 0 01240 104v40h-40a40 40 0 01-2.86-79.89zM276 480h92a64 64 0 0064-64V296a8 8 0 00-8-8H276a4 4 0 00-4 4v184a4 4 0 004 4z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/git-branch-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/git-branch-outline.svg deleted file mode 100644 index d2965796cf572aac2cb2284b652672cd20de4c1e..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/git-branch-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Git Branch</title><circle cx="160" cy="96" r="48" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="160" cy="416" r="48" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-linejoin="round" d="M160 368V144" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="352" cy="160" r="48" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M352 208c0 128-192 48-192 160" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/git-branch-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/git-branch-sharp.svg deleted file mode 100644 index c242c1b0b729a53a2f8d528866cfb89adc257f20..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/git-branch-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Git Branch</title><path d="M352 96a64 64 0 00-58.86 89.11l-101.14 88V151.39a64 64 0 10-64 0v209.22a64 64 0 1064 0V358l154.25-134.27c1.9.17 3.81.27 5.75.27a64 64 0 000-128zM160 64a32 32 0 11-32 32 32 32 0 0132-32zm0 384a32 32 0 1132-32 32 32 0 01-32 32zm192-256a32 32 0 1132-32 32 32 0 01-32 32z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/git-branch.svg b/ionic/platforms/android/app/src/main/assets/www/svg/git-branch.svg deleted file mode 100644 index f137081770e9f1c90f5ca1658b01eaffeec7ba4e..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/git-branch.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Git Branch</title><path d="M416 160a64 64 0 10-96.27 55.24c-2.29 29.08-20.08 37-75 48.42-17.76 3.68-35.93 7.45-52.71 13.93v-126.2a64 64 0 10-64 0v209.22a64 64 0 1064.42.24c2.39-18 16-24.33 65.26-34.52 27.43-5.67 55.78-11.54 79.78-26.95 29-18.58 44.53-46.78 46.36-83.89A64 64 0 00416 160zM160 64a32 32 0 11-32 32 32 32 0 0132-32zm0 384a32 32 0 1132-32 32 32 0 01-32 32zm192-256a32 32 0 1132-32 32 32 0 01-32 32z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/git-commit-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/git-commit-outline.svg deleted file mode 100644 index 27bdbdc542eb2dfa33612d0097c9cd8484b09727..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/git-commit-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Git Commit</title><circle cx="256" cy="256" r="96" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-linejoin="round" d="M160 256H48M464 256H352" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/git-commit-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/git-commit-sharp.svg deleted file mode 100644 index ec0edfaaf6beb1dace1a165004c54c2a456f8a4c..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/git-commit-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Git Commit</title><path d="M480 224H380a128 128 0 00-247.9 0H32v64h100.05A128 128 0 00380 288h100zm-224 96a64 64 0 1164-64 64.07 64.07 0 01-64 64z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/git-commit.svg b/ionic/platforms/android/app/src/main/assets/www/svg/git-commit.svg deleted file mode 100644 index 8b8881e8704b90ac0dcdbf69a25c515736f67e0c..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/git-commit.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Git Commit</title><path d="M448 224h-68a128 128 0 00-247.9 0H64a32 32 0 000 64h68.05A128 128 0 00380 288h68a32 32 0 000-64zm-192 96a64 64 0 1164-64 64.07 64.07 0 01-64 64z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/git-compare-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/git-compare-outline.svg deleted file mode 100644 index 08f97910d8342a0c9c107a0d2bb8d756b0f067d3..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/git-compare-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Git Compare</title><path stroke-linecap="round" stroke-linejoin="round" d="M304 160l-64-64 64-64M207 352l64 64-64 64" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="112" cy="96" r="48" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="400" cy="416" r="48" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M256 96h84a60 60 0 0160 60v212M255 416h-84a60 60 0 01-60-60V144" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/git-compare-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/git-compare-sharp.svg deleted file mode 100644 index 264ddf61d9e8df97744911dd06bdaadf3a7e01a9..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/git-compare-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Git Compare</title><path d="M209 384h-37a28 28 0 01-28-28V152a64 64 0 10-64-1.16V356a92.1 92.1 0 0092 92h37v55.21L294.39 416 209 328.79zM113 64a32 32 0 11-32 32 32 32 0 0132-32zM432 360.61V156a92.1 92.1 0 00-92-92h-35V9.93L217.14 96 305 182.07V128h35a28 28 0 0128 28v204.61a64 64 0 1064 0zM400 448a32 32 0 1132-32 32 32 0 01-32 32z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/git-compare.svg b/ionic/platforms/android/app/src/main/assets/www/svg/git-compare.svg deleted file mode 100644 index 6a6d7dff0d59f596ee05c2ce6fe7a4cc051fbcf4..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/git-compare.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Git Compare</title><path d="M218.31 340.69A16 16 0 00191 352v32h-20a28 28 0 01-28-28V152a64 64 0 10-64-1.16V356a92.1 92.1 0 0092 92h20v32a16 16 0 0027.31 11.31l64-64a16 16 0 000-22.62zM112 64a32 32 0 11-32 32 32 32 0 0132-32zM432 360.61V156a92.1 92.1 0 00-92-92h-20V32a16 16 0 00-27.31-11.31l-64 64a16 16 0 000 22.62l64 64A16 16 0 00320 160v-32h20a28 28 0 0128 28v204.61a64 64 0 1064 0zM400 448a32 32 0 1132-32 32 32 0 01-32 32z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/git-merge-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/git-merge-outline.svg deleted file mode 100644 index 19df0300197d3c0159157c6e902dcd351483498e..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/git-merge-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Git Merge</title><circle cx="129" cy="96" r="48" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="129" cy="416" r="48" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-linejoin="round" d="M129 144v224" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="385" cy="288" r="48" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M129 144c0 96 112 144 208 144" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/git-merge-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/git-merge-sharp.svg deleted file mode 100644 index bf548ebf57e58af0d9798b758e67935538965857..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/git-merge-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Git Merge</title><path d="M384 224a63.66 63.66 0 00-37.95 12.5L160 153.36v-2a64 64 0 10-64 0v209.25a64 64 0 1064 0V223.46l160.41 71.69A64 64 0 10384 224zM128 64a32 32 0 11-32 32 32 32 0 0132-32zm0 384a32 32 0 1132-32 32 32 0 01-32 32zm256-128a32 32 0 1132-32 32 32 0 01-32 32z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/git-merge.svg b/ionic/platforms/android/app/src/main/assets/www/svg/git-merge.svg deleted file mode 100644 index 75a1fab61724ecf49fd05d4752dfd971971abdb2..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/git-merge.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Git Merge</title><path d="M385 224a64 64 0 00-55.33 31.89c-42.23-1.21-85.19-12.72-116.21-31.33-32.2-19.32-49.71-44-52.15-73.35a64 64 0 10-64.31.18v209.22a64 64 0 1064 0v-94.46c44.76 34 107.28 52.38 168.56 53.76A64 64 0 10385 224zM129 64a32 32 0 11-32 32 32 32 0 0132-32zm0 384a32 32 0 1132-32 32 32 0 01-32 32zm256-128a32 32 0 1132-32 32 32 0 01-32 32z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/git-network-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/git-network-outline.svg deleted file mode 100644 index 596e68a0d78b68893cac408eb37c2deecda282f0..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/git-network-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Git Network</title><circle cx="128" cy="96" r="48" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="256" cy="416" r="48" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-linejoin="round" d="M256 256v112" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="384" cy="96" r="48" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M128 144c0 74.67 68.92 112 128 112M384 144c0 74.67-68.92 112-128 112" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/git-network-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/git-network-sharp.svg deleted file mode 100644 index 87a47d1af0c50c31f834dee2f8c8b47e0f2d88c1..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/git-network-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Git Network</title><path d="M384 32a64 64 0 00-57.67 91.73l-70.83 80.82-70.19-80.1A64 64 0 10128 160c1.1 0 2.2 0 3.29-.08L224 265.7v94.91a64 64 0 1064 0v-96.05l91.78-104.71c1.39.09 2.8.15 4.22.15a64 64 0 000-128zM96 96a32 32 0 1132 32 32 32 0 01-32-32zm160 352a32 32 0 1132-32 32 32 0 01-32 32zm128-320a32 32 0 1132-32 32 32 0 01-32 32z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/git-network.svg b/ionic/platforms/android/app/src/main/assets/www/svg/git-network.svg deleted file mode 100644 index 1e8d71a12903509286714133f4d27c42401fcc0f..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/git-network.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Git Network</title><path d="M448 96a64 64 0 10-96.31 55.21c-1.79 20.87-11.47 38.1-28.87 51.29C305.07 216 280.09 224 256 224s-49.07-8-66.82-21.5c-17.4-13.19-27.08-30.42-28.87-51.29a64 64 0 10-64.11.29c2.08 40.87 21.17 76.87 54.31 102C171.3 269.26 197 280.19 224 285.09v75.52a64 64 0 1064 0v-75.52c27-4.9 52.7-15.83 73.49-31.59 33.14-25.13 52.23-61.13 54.31-102A64 64 0 00448 96zM128 64a32 32 0 11-32 32 32 32 0 0132-32zm128 384a32 32 0 1132-32 32 32 0 01-32 32zm128-320a32 32 0 1132-32 32 32 0 01-32 32z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/git-pull-request-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/git-pull-request-outline.svg deleted file mode 100644 index 60ab2c26121a0b0d5188b6ef618e4cbb489769df..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/git-pull-request-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Git Pull Request</title><circle cx="128" cy="416" r="48" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-linejoin="round" d="M128 144v224M288 160l-64-64 64-64" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="128" cy="96" r="48" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="384" cy="416" r="48" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M240 96h84a60 60 0 0160 60v212" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/git-pull-request-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/git-pull-request-sharp.svg deleted file mode 100644 index 8ef5fe18b4fc6bffd69dc19967559518d8c87195..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/git-pull-request-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Git Pull Request</title><path d="M192 96a64 64 0 10-97 54.81v209.8a64 64 0 1064 0V152a64.06 64.06 0 0033-56zm-64-32a32 32 0 11-32 32 32 32 0 0132-32zm-1 384a32 32 0 1132-32 32 32 0 01-32 32zM416 360.61V156a92.1 92.1 0 00-92-92h-35V9.93L201.14 96 289 182.07V128h35a28 28 0 0128 28v204.61a64 64 0 1064 0zM384 448a32 32 0 1132-32 32 32 0 01-32 32z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/git-pull-request.svg b/ionic/platforms/android/app/src/main/assets/www/svg/git-pull-request.svg deleted file mode 100644 index b247493454b99c27cdb11fa08044a2023903bfa3..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/git-pull-request.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Git Pull Request</title><path d="M192 96a64 64 0 10-96 55.39v209.22a64 64 0 1064 0V151.39A64 64 0 00192 96zm-64-32a32 32 0 11-32 32 32 32 0 0132-32zm0 384a32 32 0 1132-32 32 32 0 01-32 32zM416 360.61V156a92.1 92.1 0 00-92-92h-20V32a16 16 0 00-27.31-11.31l-64 64a16 16 0 000 22.62l64 64A16 16 0 00304 160v-32h20a28 28 0 0128 28v204.61a64 64 0 1064 0zM384 448a32 32 0 1132-32 32 32 0 01-32 32z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/glasses-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/glasses-outline.svg deleted file mode 100644 index 95047b08c9104301c463e01526bc3d2dc4288e35..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/glasses-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Glasses</title><path d="M224 232a32 32 0 0164 0M448 200h16M64 200H48M64 200c0 96 16 128 80 128s80-32 80-128c0 0-16-16-80-16s-80 16-80 16zM448 200c0 96-16 128-80 128s-80-32-80-128c0 0 16-16 80-16s80 16 80 16z" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/glasses-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/glasses-sharp.svg deleted file mode 100644 index 059931f51515e3590eea32bd164e2ce9d12da62a..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/glasses-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Glasses</title><path d="M496 176H16v64h21.24l12.44 112h171.87L240 241.32V240a16 16 0 0132 0v1.32L290.45 352h171.87l12.44-112H496z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/glasses.svg b/ionic/platforms/android/app/src/main/assets/www/svg/glasses.svg deleted file mode 100644 index e23006c59817649f938c95833467a8bf93a19c16..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/glasses.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Glasses</title><path d="M464 184h-10.9a78.72 78.72 0 00-16-7.18C419.5 171 396.26 168 368 168s-51.5 3-69.06 8.82c-14.06 4.69-20.25 9.86-22.25 11.87a47.94 47.94 0 00-41.36 0c-2-2-8.19-7.18-22.25-11.87C195.5 171 172.26 168 144 168s-51.5 3-69.06 8.82a78.72 78.72 0 00-16 7.18H48a16 16 0 000 32h.17c1 45.46 6.44 72.78 18.11 92.23a66.78 66.78 0 0031.92 28c12.23 5.24 27.22 7.79 45.8 7.79 24.15 0 58.48-3.71 77.72-35.77 9.68-16.14 15.09-37.69 17.21-70.52A16 16 0 00240 232a16 16 0 0132 0 16 16 0 001.07 5.71c2.12 32.83 7.53 54.38 17.21 70.52a66.78 66.78 0 0031.92 28c12.23 5.24 27.22 7.79 45.8 7.79 24.15 0 58.48-3.71 77.72-35.77 11.67-19.45 17.13-46.77 18.11-92.23h.17a16 16 0 000-32z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/globe-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/globe-outline.svg deleted file mode 100644 index 13ced1e04dcdf40bb015e14499bea0fb87494fd1..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/globe-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Globe</title><path d="M256 48C141.13 48 48 141.13 48 256s93.13 208 208 208 208-93.13 208-208S370.87 48 256 48z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><path d="M256 48c-58.07 0-112.67 93.13-112.67 208S197.93 464 256 464s112.67-93.13 112.67-208S314.07 48 256 48z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><path d="M117.33 117.33c38.24 27.15 86.38 43.34 138.67 43.34s100.43-16.19 138.67-43.34M394.67 394.67c-38.24-27.15-86.38-43.34-138.67-43.34s-100.43 16.19-138.67 43.34" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-miterlimit="10" d="M256 48v416M464 256H48" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/globe-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/globe-sharp.svg deleted file mode 100644 index 2a3a8360bd096660b3f73c1f7f6524e997e6735a..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/globe-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Globe</title><path d="M256 48C141.13 48 48 141.13 48 256s93.13 208 208 208 208-93.13 208-208S370.87 48 256 48z" stroke-miterlimit="10" stroke-width="44" class="ionicon-fill-none"/><path d="M256 48c-58.07 0-112.67 93.13-112.67 208S197.93 464 256 464s112.67-93.13 112.67-208S314.07 48 256 48z" stroke-miterlimit="10" stroke-width="44" class="ionicon-fill-none"/><path d="M117.33 121.33c38.24 27.15 86.38 43.34 138.67 43.34s100.43-16.19 138.67-43.34M394.67 390.67c-38.24-27.15-86.38-43.34-138.67-43.34s-100.43 16.19-138.67 43.34" stroke-linecap="round" stroke-linejoin="round" stroke-width="44" class="ionicon-fill-none"/><path stroke-miterlimit="10" stroke-width="44" d="M256 48v416M464 256H48" class="ionicon-fill-none"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/globe.svg b/ionic/platforms/android/app/src/main/assets/www/svg/globe.svg deleted file mode 100644 index cea3492f944a8724006dfe3a5127a1618175c15c..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/globe.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Globe</title><path d="M340.75 344.49c5.91-20.7 9.82-44.75 11.31-67.84a4.41 4.41 0 00-4.46-4.65h-71.06a4.43 4.43 0 00-4.47 4.39v55.3a4.44 4.44 0 004.14 4.38 273.51 273.51 0 0159 11.39 4.45 4.45 0 005.54-2.97zM323.58 377.31a260.05 260.05 0 00-46.6-9.09 4.42 4.42 0 00-4.91 4.29v65.24a4.47 4.47 0 006.76 3.7c15.9-9.27 29-24.84 40.84-45.43 1.94-3.36 4.89-9.15 6.67-12.69a4.29 4.29 0 00-2.76-6.02zM235.29 368.4a256.85 256.85 0 00-46.56 8.82c-2.64.76-3.75 4.4-2.55 6.79 1.79 3.56 4 8.11 5.89 11.51 13 23 26.84 37.5 41.24 45.93a4.47 4.47 0 006.76-3.7v-65.27a4.16 4.16 0 00-4.78-4.08zM235.6 272h-71.06a4.41 4.41 0 00-4.46 4.64c1.48 23.06 5.37 47.16 11.26 67.84a4.46 4.46 0 005.59 3 272.2 272.2 0 0159-11.36 4.44 4.44 0 004.15-4.38V276.4a4.43 4.43 0 00-4.48-4.4zM277 143.78a235.8 235.8 0 0046.5-9.14 4.3 4.3 0 002.76-6c-1.79-3.57-4.27-8.68-6.17-12.09-12.29-22-26.14-37.35-41.24-46a4.48 4.48 0 00-6.76 3.7v65.23a4.43 4.43 0 004.91 4.3zM276.54 240h71.06a4.39 4.39 0 004.46-4.58c-1.48-22.77-5.27-47.8-11.16-68.22a4.46 4.46 0 00-5.59-2.95c-19 5.74-38.79 10.43-59.09 12a4.4 4.4 0 00-4.15 4.32v55.11a4.4 4.4 0 004.47 4.32zM233.31 70.56c-15.42 8.57-29.17 24.43-41.47 46.37-1.91 3.41-4.19 8.11-6 11.67a4.31 4.31 0 002.76 6 225.42 225.42 0 0046.54 9.17 4.43 4.43 0 004.91-4.29V74.26a4.49 4.49 0 00-6.74-3.7zM235.92 176.26c-20.3-1.55-40.11-6.24-59.09-12a4.46 4.46 0 00-5.59 2.95c-5.89 20.42-9.68 45.45-11.16 68.22a4.39 4.39 0 004.46 4.58h71.06a4.4 4.4 0 004.47-4.34v-55.09a4.4 4.4 0 00-4.15-4.32z"/><path d="M414.39 97.61A224 224 0 1097.61 414.39 224 224 0 10414.39 97.61zM176.6 430.85a219.08 219.08 0 01-12.48-19.66c-2-3.69-4.84-9.26-6.73-13.13a7.29 7.29 0 00-10.31-3.16c-4.3 2.41-10 5.72-14.13 8.43a147.29 147.29 0 01-23.57-22.43 248.83 248.83 0 0130.41-18.36c1.86-1 2.77-2.14 2.18-4.18a374.8 374.8 0 01-14.09-82.17 4.36 4.36 0 00-4.3-4.17H66.84a2 2 0 01-2-1.7A98.28 98.28 0 0164 256a96.27 96.27 0 01.86-14.29 2 2 0 012-1.7h56.74c2.29 0 4.17-1.32 4.29-3.63a372.71 372.71 0 0114-81.83 4.36 4.36 0 00-2.19-5.11 260.63 260.63 0 01-29.84-17.9 169.82 169.82 0 0123.14-22.8c4.08 2.68 9.4 5.71 13.66 8.11a7.89 7.89 0 0011-3.42c1.88-3.87 4-8.18 6.06-11.88a221.93 221.93 0 0112.54-19.91A185 185 0 01256 64c28.94 0 55.9 7 80.53 18.46a202.23 202.23 0 0112 19c2.59 4.66 5.34 10.37 7.66 15.32a4.29 4.29 0 005.92 1.94c5.38-2.91 11.21-6.26 16.34-9.63a171.36 171.36 0 0123.2 23 244.89 244.89 0 01-29.06 17.31 4.35 4.35 0 00-2.18 5.12 348.68 348.68 0 0113.85 81.4 4.33 4.33 0 004.3 4.12l56.62-.07a2 2 0 012 1.7 117.46 117.46 0 010 28.62 2 2 0 01-2 1.72h-56.67a4.35 4.35 0 00-4.3 4.17 367.4 367.4 0 01-13.87 81.3 4.45 4.45 0 002.19 5.19c5 2.59 10.57 5.48 15.37 8.42s9.55 6.08 14.13 9.34a172.73 172.73 0 01-23 22.93c-2.44-1.61-5.34-3.44-7.84-4.94-1.72-1-4.89-2.77-6.65-3.76-3.82-2.14-7.88-.54-9.79 3.4s-4.83 9.59-6.87 13.25a212.42 212.42 0 01-12.35 19.53C310.91 442.37 284.94 448 256 448s-54.77-5.63-79.4-17.15z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/golf-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/golf-outline.svg deleted file mode 100644 index a0ed53080562ff8031ef4ac10dd11dcc976449a9..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/golf-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Golf</title><path stroke-linecap="round" stroke-linejoin="round" d="M256 400V32l176 80-176 80" class="ionicon-fill-none ionicon-stroke-width"/><path d="M256 336c-87 0-175.3 43.2-191.64 124.74C62.39 470.57 68.57 480 80 480h352c11.44 0 17.62-9.43 15.65-19.26C431.3 379.2 343 336 256 336z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/golf-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/golf-sharp.svg deleted file mode 100644 index d8df8e83d3aa934c097c107dcccb5d54a7b297b5..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/golf-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Golf</title><path d="M240 16v304.47q8-.47 16-.47t16 .47V202.3L448 112z"/><path d="M462.91 457.5c-8.54-42.85-35-78.74-76.62-103.8-32.43-19.55-72.53-31.3-114.29-33.7v95.79h-32V320c-41.79 2.4-81.89 14.15-114.32 33.7-41.59 25.06-68.08 60.95-76.62 103.8-2 9.81-.68 38.5-.68 38.5h415.21s1.28-28.69-.68-38.5z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/golf.svg b/ionic/platforms/android/app/src/main/assets/www/svg/golf.svg deleted file mode 100644 index 9c297cfc34864c1240852cb91122c48da5c3fec1..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/golf.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Golf</title><path d="M272 320.46V202.3l166.62-75.73a16 16 0 000-29.14l-176-80A16 16 0 00240 32v288.46q8-.45 16-.46t16 .46z"/><path d="M463.33 457.5c-8.56-42.85-35.11-78.74-76.78-103.8-32.5-19.55-72.67-31.3-114.55-33.7v79.75a16 16 0 11-32 0V320c-41.88 2.4-82.05 14.15-114.55 33.7-41.67 25.06-68.22 60.95-76.78 103.8a32.49 32.49 0 006.44 27.08C61.13 492 70 496 80 496h352c10 0 18.88-4.05 24.9-11.42a32.49 32.49 0 006.43-27.08z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/grid-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/grid-outline.svg deleted file mode 100644 index 60a585e0020bf8a3a79c6c3be612975cd6c079cf..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/grid-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Grid</title><rect x="48" y="48" width="176" height="176" rx="20" ry="20" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><rect x="288" y="48" width="176" height="176" rx="20" ry="20" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><rect x="48" y="288" width="176" height="176" rx="20" ry="20" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><rect x="288" y="288" width="176" height="176" rx="20" ry="20" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/grid-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/grid-sharp.svg deleted file mode 100644 index 56a5e1c9f0be233c270b52b57e1f586b5d4f6fb9..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/grid-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Grid</title><path d="M240 240H32V32h208zM480 240H272V32h208zM240 480H32V272h208zM480 480H272V272h208z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/grid.svg b/ionic/platforms/android/app/src/main/assets/www/svg/grid.svg deleted file mode 100644 index 5913c4daa08602d991bab451e7ccd24696f061dc..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/grid.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Grid</title><path d="M204 240H68a36 36 0 01-36-36V68a36 36 0 0136-36h136a36 36 0 0136 36v136a36 36 0 01-36 36zM444 240H308a36 36 0 01-36-36V68a36 36 0 0136-36h136a36 36 0 0136 36v136a36 36 0 01-36 36zM204 480H68a36 36 0 01-36-36V308a36 36 0 0136-36h136a36 36 0 0136 36v136a36 36 0 01-36 36zM444 480H308a36 36 0 01-36-36V308a36 36 0 0136-36h136a36 36 0 0136 36v136a36 36 0 01-36 36z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/hammer-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/hammer-outline.svg deleted file mode 100644 index 72f786568ee5cd92c13e090f81a8f639e50092ce..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/hammer-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Hammer</title><path d="M277.42 247a24.68 24.68 0 00-4.08-5.47L255 223.44a21.63 21.63 0 00-6.56-4.57 20.93 20.93 0 00-23.28 4.27c-6.36 6.26-18 17.68-39 38.43C146 301.3 71.43 367.89 37.71 396.29a16 16 0 00-1.09 23.54l39 39.43a16.13 16.13 0 0023.67-.89c29.24-34.37 96.3-109 136-148.23 20.39-20.06 31.82-31.58 38.29-37.94a21.76 21.76 0 003.84-25.2zM478.43 201l-34.31-34a5.44 5.44 0 00-4-1.59 5.59 5.59 0 00-4 1.59h0a11.41 11.41 0 01-9.55 3.27c-4.48-.49-9.25-1.88-12.33-4.86-7-6.86 1.09-20.36-5.07-29a242.88 242.88 0 00-23.08-26.72c-7.06-7-34.81-33.47-81.55-52.53a123.79 123.79 0 00-47-9.24c-26.35 0-46.61 11.76-54 18.51-5.88 5.32-12 13.77-12 13.77a91.29 91.29 0 0110.81-3.2 79.53 79.53 0 0123.28-1.49C241.19 76.8 259.94 84.1 270 92c16.21 13 23.18 30.39 24.27 52.83.8 16.69-15.23 37.76-30.44 54.94a7.85 7.85 0 00.4 10.83l21.24 21.23a8 8 0 0011.14.1c13.93-13.51 31.09-28.47 40.82-34.46s17.58-7.68 21.35-8.09a35.71 35.71 0 0121.3 4.62 13.65 13.65 0 013.08 2.38c6.46 6.56 6.07 17.28-.5 23.74l-2 1.89a5.5 5.5 0 000 7.84l34.31 34a5.5 5.5 0 004 1.58 5.65 5.65 0 004-1.58L478.43 209a5.82 5.82 0 000-8z" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/hammer-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/hammer-sharp.svg deleted file mode 100644 index 9cde710c49c96ab12ca813b2c9b3490b7006a331..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/hammer-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Hammer</title><path d="M294.28 256.9l-54.42-54.41a12 12 0 00-17 0L12.45 401a12 12 0 00-.27 17.2l66.05 66.28a12 12 0 0017.22-.23l198.81-210.36a12 12 0 00.02-16.99zM499.33 199.33l-43.89-43.58a21.46 21.46 0 00-15.28-6.26 21.89 21.89 0 00-12.79 4.14c0-.43.06-.85.09-1.22.45-6.5 1.15-16.32-5.2-25.22a258 258 0 00-24.8-28.74.6.6 0 00-.08-.08c-13.32-13.12-42.31-37.83-86.72-55.94A139.55 139.55 0 00257.56 32C226 32 202 46.24 192.81 54.68A53.4 53.4 0 00176 86.17L192 96s8.06-2 13.86-3.39a62.73 62.73 0 0118.45-1.15c13.19 1.09 28.79 7.64 35.69 13.09 11.7 9.41 17.33 22.09 18.26 41.09.2 4.23-9.52 21.35-24.16 39.84a8 8 0 00.61 10.62l45.37 45.37a8 8 0 0011 .25c12.07-11 30.49-28 34.67-30.59 7.69-4.73 13.19-5.64 14.7-5.8a19.18 19.18 0 0111.29 2.38 1.24 1.24 0 01-.31.95l-1.82 1.73-.3.28a21.52 21.52 0 00.05 30.54l43.95 43.68a8 8 0 0011.28 0l74.68-74.2a8 8 0 00.06-11.36z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/hammer.svg b/ionic/platforms/android/app/src/main/assets/www/svg/hammer.svg deleted file mode 100644 index 3f19e1ff6709c972406f75cf9cc35d6d5ab269a6..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/hammer.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Hammer</title><path d="M280.16 242.79l-26.11-26.12a32 32 0 00-45.14-.12L27.38 384.08c-6.61 6.23-10.95 14.17-11.35 23.06a32.11 32.11 0 009.21 23.94l39 39.43a.46.46 0 00.07.07A32.29 32.29 0 0087 480h1.18c8.89-.33 16.85-4.5 23.17-11.17l168.7-180.7a32 32 0 00.11-45.34zM490 190l-.31-.31-34.27-33.92a21.46 21.46 0 00-15.28-6.26 21.89 21.89 0 00-12.79 4.14c0-.43.06-.85.09-1.22.45-6.5 1.15-16.32-5.2-25.22a258 258 0 00-24.8-28.74.6.6 0 00-.08-.08c-13.32-13.12-42.31-37.83-86.72-55.94A139.55 139.55 0 00257.56 32C226 32 202 46.24 192.81 54.68a119.92 119.92 0 00-14.18 16.22 16 16 0 0018.65 24.34 74.45 74.45 0 018.58-2.63 63.46 63.46 0 0118.45-1.15c13.19 1.09 28.79 7.64 35.69 13.09 11.7 9.41 17.33 22.09 18.26 41.09.18 3.82-7.72 18.14-20 34.48a16 16 0 001.45 21l34.41 34.41a16 16 0 0022 .62c9.73-8.69 24.55-21.79 29.73-25 7.69-4.73 13.19-5.64 14.7-5.8a19.18 19.18 0 0111.29 2.38 1.24 1.24 0 01-.31.95l-1.82 1.73-.3.28a21.52 21.52 0 00.05 30.54l34.26 33.91a21.45 21.45 0 0015.28 6.25 21.7 21.7 0 0015.22-6.2l55.5-54.82c.19-.19.38-.39.56-.59A21.87 21.87 0 00490 190z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/hand-left-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/hand-left-outline.svg deleted file mode 100644 index 2391ed85c3c593172c85bec519da6c9300d2b565..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/hand-left-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Hand Left</title><path d="M80 320V144a32 32 0 0132-32h0a32 32 0 0132 32v112M144 256V80a32 32 0 0132-32h0a32 32 0 0132 32v160M272 241V96a32 32 0 0132-32h0a32 32 0 0132 32v224M208 240V48a32 32 0 0132-32h0a32 32 0 0132 32v192" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M80 320c0 117.4 64 176 152 176s123.71-39.6 144-88l52.71-144c6.66-18.05 3.64-34.79-11.87-43.6h0c-15.52-8.82-35.91-4.28-44.31 11.68L336 320" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/hand-left-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/hand-left-sharp.svg deleted file mode 100644 index 548a229ae27355ba7b884c1354f1170cf0100b31..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/hand-left-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Hand Left</title><path d="M429.58 209.08c-15.06-6.62-32.38 1.31-38.5 17.62L356 312h-11.27V80c0-17.6-13.3-32-29.55-32-16.26 0-29.55 14.4-29.55 32v151.75l-14.78.25V32c0-17.6-13.3-32-29.55-32s-29.55 14.4-29.55 32v199.75L197 232V64c0-17.6-13.3-32-29.55-32-16.26 0-29.55 14.4-29.55 32v183.75l-14.8.25V128c0-17.6-13.3-32-29.55-32S64 110.4 64 128v216c0 75.8 37.13 168 169 168 40.8 0 79.42-7 100.66-21a121.41 121.41 0 0033.72-33.31 138 138 0 0016-31.78l62.45-175.14c6.17-16.31-1.19-35.06-16.25-41.69z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/hand-left.svg b/ionic/platforms/android/app/src/main/assets/www/svg/hand-left.svg deleted file mode 100644 index 2fdbeb11880fe32f6045ca8a5a32e5be9aebad10..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/hand-left.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Hand Left</title><path d="M432.8 211.44c-15.52-8.82-34.91-2.28-43.31 13.68l-41.38 84.41a7 7 0 01-8.93 3.43 7 7 0 01-4.41-6.52V72c0-13.91-12.85-24-26.77-24s-26 10.09-26 24v156.64A11.24 11.24 0 01271.21 240 11 11 0 01260 229V24c0-13.91-10.94-24-24.86-24S210 10.09 210 24v204.64A11.24 11.24 0 01199.21 240 11 11 0 01188 229V56c0-13.91-12.08-24-26-24s-26 11.09-26 25v187.64A11.24 11.24 0 01125.21 256 11 11 0 01114 245V120c0-13.91-11.08-24-25-24s-25.12 10.22-25 24v216c0 117.41 72 176 160 176h16c88 0 115.71-39.6 136-88l68.71-169c6.62-18 3.6-34.75-11.91-43.56z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/hand-right-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/hand-right-outline.svg deleted file mode 100644 index 727aa053b216c42fe1794a08569b2530e745d65d..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/hand-right-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Hand Right</title><path d="M432 320V144a32 32 0 00-32-32h0a32 32 0 00-32 32v112M368 256V80a32 32 0 00-32-32h0a32 32 0 00-32 32v160M240 241V96a32 32 0 00-32-32h0a32 32 0 00-32 32v224M304 240V48a32 32 0 00-32-32h0a32 32 0 00-32 32v192" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M432 320c0 117.4-64 176-152 176s-123.71-39.6-144-88L83.33 264c-6.66-18.05-3.64-34.79 11.87-43.6h0c15.52-8.82 35.91-4.28 44.31 11.68L176 320" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/hand-right-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/hand-right-sharp.svg deleted file mode 100644 index 98372b372cfe00cdcbc0cc5a12f42b69e456f354..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/hand-right-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Hand Right</title><path d="M82.42 209.08c15.06-6.62 32.38 1.31 38.5 17.62L156 312h11.27V80c0-17.6 13.3-32 29.55-32 16.26 0 29.55 14.4 29.55 32v151.75l14.78.25V32c0-17.6 13.3-32 29.55-32 16.3 0 29.55 14.4 29.55 32v199.75L315 232V64c0-17.6 13.3-32 29.55-32 16.26 0 29.55 14.4 29.55 32v183.75l14.78.25V128c0-17.6 13.3-32 29.55-32C434.7 96 448 110.4 448 128v216c0 75.8-37.13 168-169 168-40.8 0-79.42-7-100.66-21a121.41 121.41 0 01-33.72-33.31 138 138 0 01-16-31.78L66.16 250.77c-6.11-16.31 1.2-35.06 16.26-41.69z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/hand-right.svg b/ionic/platforms/android/app/src/main/assets/www/svg/hand-right.svg deleted file mode 100644 index 459f74c61cdeef73bb6d2a13b832afca85590c40..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/hand-right.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Hand Right</title><path d="M79.2 211.44c15.52-8.82 34.91-2.28 43.31 13.68l41.38 84.41a7 7 0 008.93 3.43 7 7 0 004.41-6.52V72c0-13.91 12.85-24 26.77-24s26 10.09 26 24v156.64A11.24 11.24 0 00240.79 240 11 11 0 00252 229V24c0-13.91 10.94-24 24.86-24S302 10.09 302 24v204.64A11.24 11.24 0 00312.79 240 11 11 0 00324 229V56c0-13.91 12.08-24 26-24s26 11.09 26 25v187.64A11.24 11.24 0 00386.79 256 11 11 0 00398 245V120c0-13.91 11.08-24 25-24s25.12 10.22 25 24v216c0 117.41-72 176-160 176h-16c-88 0-115.71-39.6-136-88L67.33 255c-6.66-18-3.64-34.75 11.87-43.56z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/happy-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/happy-outline.svg deleted file mode 100644 index 34da7002d1195fe63c292be145e4af7e1b874155..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/happy-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Happy</title><circle cx="184" cy="232" r="24"/><path d="M256.05 384c-45.42 0-83.62-29.53-95.71-69.83a8 8 0 017.82-10.17h175.69a8 8 0 017.82 10.17c-11.99 40.3-50.2 69.83-95.62 69.83z"/><circle cx="328" cy="232" r="24"/><circle cx="256" cy="256" r="208" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/happy-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/happy-sharp.svg deleted file mode 100644 index e59726f78736efec5f055d793c1dc30dfb883b50..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/happy-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Happy</title><path d="M414.39 97.61A224 224 0 1097.61 414.39 224 224 0 10414.39 97.61zM328 208a24 24 0 11-24 24 23.94 23.94 0 0124-24zm-144 0a24 24 0 11-24 24 23.94 23.94 0 0124-24zm72.05 176c-45.42 0-83.75-29.49-95.72-69.83C159.29 310.65 158 304 158 304h196s-1.31 6.69-2.33 10.17c-11.78 40.36-50.2 69.83-95.62 69.83z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/happy.svg b/ionic/platforms/android/app/src/main/assets/www/svg/happy.svg deleted file mode 100644 index 8c55e9b72b5078dd3a3374dee7aec4cc19f6d901..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/happy.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Happy</title><path d="M414.39 97.61A224 224 0 1097.61 414.39 224 224 0 10414.39 97.61zM184 208a24 24 0 11-24 24 23.94 23.94 0 0124-24zm167.67 106.17c-12 40.3-50.2 69.83-95.62 69.83s-83.62-29.53-95.72-69.83a8 8 0 017.83-10.17h175.69a8 8 0 017.82 10.17zM328 256a24 24 0 1124-24 23.94 23.94 0 01-24 24z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/hardware-chip-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/hardware-chip-outline.svg deleted file mode 100644 index 2d6d83ca469911b443395afa71e82e4cd3339d6c..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/hardware-chip-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Hardware Chip</title><rect x="80" y="80" width="352" height="352" rx="48" ry="48" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><rect x="144" y="144" width="224" height="224" rx="16" ry="16" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-linejoin="round" d="M256 80V48M336 80V48M176 80V48M256 464v-32M336 464v-32M176 464v-32M432 256h32M432 336h32M432 176h32M48 256h32M48 336h32M48 176h32" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/hardware-chip-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/hardware-chip-sharp.svg deleted file mode 100644 index 59875eb520112cfd5a115d86435ad929fb093407..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/hardware-chip-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Hardware Chip</title><path d="M160 160h192v192H160z"/><path d="M480 198v-44h-32V88a24 24 0 00-24-24h-66V32h-44v32h-36V32h-44v32h-36V32h-44v32H88a24 24 0 00-24 24v66H32v44h32v36H32v44h32v36H32v44h32v66a24 24 0 0024 24h66v32h44v-32h36v32h44v-32h36v32h44v-32h66a24 24 0 0024-24v-66h32v-44h-32v-36h32v-44h-32v-36zm-352-70h256v256H128z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/hardware-chip.svg b/ionic/platforms/android/app/src/main/assets/www/svg/hardware-chip.svg deleted file mode 100644 index ce5d622c115c77572a63491b5f7d1ad0bc9f361b..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/hardware-chip.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Hardware Chip</title><path d="M352 128H160a32 32 0 00-32 32v192a32 32 0 0032 32h192a32 32 0 0032-32V160a32 32 0 00-32-32zm0 216a8 8 0 01-8 8H168a8 8 0 01-8-8V168a8 8 0 018-8h176a8 8 0 018 8z" class="ionicon-fill-none"/><rect x="160" y="160" width="192" height="192" rx="8" ry="8"/><path d="M464 192a16 16 0 000-32h-16v-32a64.07 64.07 0 00-64-64h-32V48a16 16 0 00-32 0v16h-48V48a16 16 0 00-32 0v16h-48V48a16 16 0 00-32 0v16h-32a64.07 64.07 0 00-64 64v32H48a16 16 0 000 32h16v48H48a16 16 0 000 32h16v48H48a16 16 0 000 32h16v32a64.07 64.07 0 0064 64h32v16a16 16 0 0032 0v-16h48v16a16 16 0 0032 0v-16h48v16a16 16 0 0032 0v-16h32a64.07 64.07 0 0064-64v-32h16a16 16 0 000-32h-16v-48h16a16 16 0 000-32h-16v-48zm-80 160a32 32 0 01-32 32H160a32 32 0 01-32-32V160a32 32 0 0132-32h192a32 32 0 0132 32z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/headset-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/headset-outline.svg deleted file mode 100644 index 7441bac2f99b710456fb280cb7e4837bb070d337..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/headset-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Headset</title><path d="M83 384c-13-33-35-93.37-35-128C48 141.12 149.33 48 256 48s208 93.12 208 208c0 34.63-23 97-35 128" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M108.39 270.13l-13.69 8h0c-30.23 17.7-31.7 72.41-3.38 122.2s75.87 75.81 106.1 58.12h0l13.69-8a16.16 16.16 0 005.78-21.87L130 276a15.74 15.74 0 00-21.61-5.87zM403.61 270.13l13.69 8h0c30.23 17.69 31.74 72.4 3.38 122.19s-75.87 75.81-106.1 58.12h0l-13.69-8a16.16 16.16 0 01-5.78-21.87L382 276a15.74 15.74 0 0121.61-5.87z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/headset-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/headset-sharp.svg deleted file mode 100644 index 331ae08c9b3edcb2c34a4b9b9e5504fe2a8c3b0a..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/headset-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Headset</title><path d="M411.16 97.45C368.43 55.85 311.88 32 256 32S143.57 55.85 100.84 97.45C56.45 140.67 32 196 32 256s26.84 118.49 45.42 152.25S121 480 144 480c32 0 96-32 96-32L128 240l-54.42 31.73a176.07 176.07 0 01-1-18.84c0-48.57 19.32-94.1 56.15-130C164.24 88.34 210 70 256 70s91.73 18.34 127.27 52.93c36.83 35.86 56.14 81.39 56.14 130a175.56 175.56 0 01-1 18.82L384 240 272 448s64 32 96 32c23 0 48-38 66.58-71.75S480 316 480 256s-24.45-115.33-68.84-158.55z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/headset.svg b/ionic/platforms/android/app/src/main/assets/www/svg/headset.svg deleted file mode 100644 index ab7b30bea31aa027f526fc1ff4c5db5e1c84f1f3..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/headset.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Headset</title><path d="M411.16 97.46C368.43 55.86 311.88 32 256 32S143.57 55.86 100.84 97.46C56.45 140.67 32 197 32 256c0 26.67 8.75 61.09 32.88 125.55S137 473 157.27 477.41c5.81 1.27 12.62 2.59 18.73 2.59a60.06 60.06 0 0030-8l14-8c15.07-8.82 19.47-28.13 10.8-43.35l-86.92-152.57a31.73 31.73 0 00-43.57-11.76l-13.69 8a56.49 56.49 0 00-14 11.59 4 4 0 01-7-2A114.68 114.68 0 0164 256c0-50.31 21-98.48 59.16-135.61C160 84.55 208.39 64 256 64s96 20.55 132.84 56.39C427 157.52 448 205.69 448 256a114.68 114.68 0 01-1.68 17.91 4 4 0 01-7 2 56.49 56.49 0 00-14-11.59l-13.69-8a31.73 31.73 0 00-43.57 11.76L281.2 420.65c-8.67 15.22-4.27 34.53 10.8 43.35l14 8a60.06 60.06 0 0030 8c6.11 0 12.92-1.32 18.73-2.59C375 473 423 446 447.12 381.55S480 282.67 480 256c0-59-24.45-115.33-68.84-158.54z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/heart-circle-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/heart-circle-outline.svg deleted file mode 100644 index 45f668615de28983d0cd7f339cb6b4fb44327025..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/heart-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Heart Circle</title><path d="M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><path d="M256 360a16 16 0 01-9-2.78c-39.3-26.68-56.32-45-65.7-56.41-20-24.37-29.58-49.4-29.3-76.5.31-31.06 25.22-56.33 55.53-56.33 20.4 0 35 10.63 44.1 20.41a6 6 0 008.72 0c9.11-9.78 23.7-20.41 44.1-20.41 30.31 0 55.22 25.27 55.53 56.33.28 27.1-9.31 52.13-29.3 76.5-9.38 11.44-26.4 29.73-65.7 56.41A16 16 0 01256 360z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/heart-circle-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/heart-circle-sharp.svg deleted file mode 100644 index f40b601155ff6a1930eaf2d7202e2eed4491a037..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/heart-circle-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Heart Circle</title><path d="M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm74.69 252.82c-8.5 10.36-39.69 38.48-74.69 63.51-35-25-66.19-53.15-74.69-63.51-20-24.37-29.58-49.4-29.3-76.5.31-31.06 25.22-56.33 55.53-56.33 22 0 37.3 12.41 46.19 22.76l2.27 2.75 2.27-2.75C267 180.29 282.42 168 304.46 168c30.31 0 55.22 25.27 55.53 56.33.28 27.09-9.31 52.12-29.3 76.49z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/heart-circle.svg b/ionic/platforms/android/app/src/main/assets/www/svg/heart-circle.svg deleted file mode 100644 index 75aee045de0f82458f49503bdc4ed7c231f12898..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/heart-circle.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Heart Circle</title><path d="M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm74.69 252.82c-9.38 11.44-26.4 29.73-65.7 56.41a15.93 15.93 0 01-18 0c-39.3-26.68-56.32-45-65.7-56.41-20-24.37-29.58-49.4-29.3-76.5.31-31.06 25.22-56.33 55.53-56.33 20.4 0 35 10.63 44.1 20.41a6 6 0 008.72 0c9.11-9.78 23.7-20.41 44.1-20.41 30.31 0 55.22 25.27 55.53 56.33.3 27.1-9.29 52.13-29.28 76.5z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/heart-dislike-circle-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/heart-dislike-circle-outline.svg deleted file mode 100644 index f2f83f88e9147642cf4a165b0e8003dd35255320..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/heart-dislike-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Heart Dislike Circle</title><path d="M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><path d="M333.2 297.69c18.28-23.39 27.06-47.43 26.79-73.37-.31-31.06-25.22-56.33-55.53-56.33-20.4 0-35 10.64-44.11 20.42a5.93 5.93 0 01-8.7 0c-9.11-9.78-23.71-20.42-44.11-20.42L206 168a4 4 0 00-2.75 6.84l124 123.21a3.92 3.92 0 005.95-.36zM158.84 221a4 4 0 00-6.82 2.72v.64c-.28 27.1 9.31 52.13 29.3 76.5 9.38 11.44 26.4 29.73 65.7 56.41a15.93 15.93 0 0018 0c5.15-3.49 9.9-6.84 14.31-10a4 4 0 00.46-6.07zM336 368a15.92 15.92 0 01-11.31-4.69l-176-176a16 16 0 0122.62-22.62l176 176A16 16 0 01336 368z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/heart-dislike-circle-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/heart-dislike-circle-sharp.svg deleted file mode 100644 index 447f1ef28cb952ec50f5d894e00100190d9fe6d7..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/heart-dislike-circle-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Heart Dislike Circle</title><path d="M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm63.73 310.36l-183.14-182.3 22.74-22.51 183.19 182.36zm-63.51 4.86c-35.36-25-66.31-51.92-74.91-62.4-20-24.37-29.58-49.4-29.3-76.5a58.27 58.27 0 01.85-9.31l130.21 129.4c-3.43 2.59-16.21 11.45-26.85 18.81zm74.47-62.4l-.31.38L197.33 169a53.8 53.8 0 0110.21-1 59.34 59.34 0 0144.1 19.41L256 192l4.36-4.6a59.34 59.34 0 0144.1-19.4c30.31 0 55.22 25.27 55.53 56.33.28 27.09-9.31 52.12-29.3 76.49z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/heart-dislike-circle.svg b/ionic/platforms/android/app/src/main/assets/www/svg/heart-dislike-circle.svg deleted file mode 100644 index ecfa87804fb6591f20a37cebe90eebd2010343dc..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/heart-dislike-circle.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Heart Dislike Circle</title><path d="M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm23.3 299.19c-4.41 3.2-9.16 6.55-14.31 10a15.93 15.93 0 01-18 0c-39.3-26.68-56.32-45-65.7-56.41-20-24.37-29.58-49.4-29.3-76.5v-.64a4 4 0 016.82-2.72l120.95 120.2a4 4 0 01-.46 6.07zm68 16.12a16 16 0 01-22.62 0l-176-176a16 16 0 0122.62-22.62l176 176a16 16 0 01.01 22.62zm-14.1-65.62a3.92 3.92 0 01-6 .37l-124-123.21A4 4 0 01206 168h1.55c20.4 0 35 10.64 44.11 20.42a5.93 5.93 0 008.7 0c9.11-9.78 23.71-20.42 44.11-20.42 30.31 0 55.22 25.27 55.53 56.33.26 25.93-8.52 49.97-26.8 73.36z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/heart-dislike-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/heart-dislike-outline.svg deleted file mode 100644 index 8fae0af80a387e3e34dc638e24830230a7c87dcb..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/heart-dislike-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Heart Dislike</title><path d="M417.84 448a15.94 15.94 0 01-11.35-4.72L40.65 75.26a16 16 0 0122.7-22.56l365.83 368a16 16 0 01-11.34 27.3zM364.92 80c-48.09 0-80 29.55-96.92 51-16.88-21.48-48.83-51-96.92-51a107.37 107.37 0 00-31 4.55L168 112c22.26 0 45.81 9 63.94 26.67a123 123 0 0121.75 28.47 16 16 0 0028.6 0 123 123 0 0121.77-28.51C322.19 121 342.66 112 364.92 112c43.15 0 78.62 36.33 79.07 81 .54 53.69-22.75 99.55-57.38 139.52l22.63 22.77c3-3.44 5.7-6.64 8.14-9.6 40-48.75 59.15-98.8 58.61-153C475.37 130.52 425.54 80 364.92 80zM268 432C180.38 372.51 91 297.6 92 193a83.69 83.69 0 012.24-18.39L69 149.14a115.1 115.1 0 00-9 43.49c-.54 54.22 18.63 104.27 58.61 153 18.77 22.87 52.8 59.45 131.39 112.8a31.84 31.84 0 0036 0c20.35-13.81 37.7-26.5 52.58-38.11l-22.66-22.81C300.25 409.6 284.09 421.05 268 432z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/heart-dislike-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/heart-dislike-sharp.svg deleted file mode 100644 index f6350dffad353eb67a670771961ec5f31361b02d..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/heart-dislike-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Heart Dislike</title><path d="M32 64.45l389.47 389.94 22.84-22.47L54.85 42 32 64.45zM62.67 192.91c-.56 55.63 19.77 106.94 62.16 156.88 40.25 47.42 94.56 79.67 137.47 108.21l9 6 9-6c18.49-12.3 39.1-25.3 59.79-39.89L71.74 149.28a114.62 114.62 0 00-9.07 43.63zM417.83 349.79c42.39-49.94 62.72-101.25 62.16-156.88-.63-62-50.61-112.54-111.43-112.54-48.26 0-80.35 28-97.23 48.17-16.88-20.2-49-48.17-97.23-48.17A108.24 108.24 0 00142.84 85l270 270.48c1.71-1.89 3.37-3.78 4.99-5.69z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/heart-dislike.svg b/ionic/platforms/android/app/src/main/assets/www/svg/heart-dislike.svg deleted file mode 100644 index 323eebc77e281b4959f7809b72f3ef512c69004f..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/heart-dislike.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Heart Dislike</title><path d="M417.84 448a16 16 0 01-11.35-4.72l-365.84-368a16 16 0 1122.7-22.56l365.83 368A16 16 0 01417.84 448zM364.92 80c-44.09 0-74.61 24.82-92.39 45.5a6 6 0 01-9.06 0C245.69 104.82 215.16 80 171.08 80a107.71 107.71 0 00-31 4.54l269.13 270.7c3-3.44 5.7-6.64 8.14-9.6 40-48.75 59.15-98.79 58.61-153C475.37 130.53 425.54 80 364.92 80zM69 149.15a115.06 115.06 0 00-9 43.49c-.54 54.21 18.63 104.25 58.61 153 18.77 22.87 52.8 59.45 131.39 112.8a31.88 31.88 0 0036 0c20.35-13.82 37.7-26.5 52.58-38.12z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/heart-half-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/heart-half-outline.svg deleted file mode 100644 index a45d92c6cb9ba000947593dbc0035be7123cec6e..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/heart-half-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Heart Half</title><path d="M352.92 64c-48.09 0-80 29.54-96.92 51-16.88-21.49-48.83-51-96.92-51C98.46 64 48.63 114.54 48 176.65c-.54 54.21 18.63 104.27 58.61 153 18.77 22.88 52.8 59.46 131.39 112.81a31.84 31.84 0 0036 0c78.59-53.35 112.62-89.93 131.39-112.81 40-48.74 59.15-98.8 58.61-153C463.37 114.54 413.54 64 352.92 64zM256 416V207.58c0-19.63 5.23-38.76 14.21-56.22a1.19 1.19 0 01.08-.16 123 123 0 0121.77-28.51C310.19 105 330.66 96 352.92 96c43.15 0 78.62 36.32 79.07 81C433 281.61 343.63 356.51 256 416z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/heart-half-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/heart-half-sharp.svg deleted file mode 100644 index e654348498b0a526434a8d1da6ff521ddc14e6f8..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/heart-half-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Heart Half</title><path d="M352.92 64c-48.11 0-80.1 28-96.92 48.21C239.18 92 207.19 64 159.08 64 98.46 64 48.63 114.54 48 176.65c-.56 55.68 19.71 107 62 157 40.12 47.46 94.25 79.75 137 108.32l9 6 9-6c42.78-28.57 96.91-60.86 137-108.32 42.25-50 62.52-101.35 62-157C463.37 114.54 413.54 64 352.92 64zm24.67 249c-31.78 37.6-74.68 65.75-112.52 90.59l-9.07 6V162.23l24.59-29.54C294.53 116 318.38 96 352.92 96c43.15 0 78.62 36.32 79.07 81a178.63 178.63 0 01-12.69 68.59c-9.03 22.84-22.67 44.91-41.71 67.41z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/heart-half.svg b/ionic/platforms/android/app/src/main/assets/www/svg/heart-half.svg deleted file mode 100644 index a45d92c6cb9ba000947593dbc0035be7123cec6e..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/heart-half.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Heart Half</title><path d="M352.92 64c-48.09 0-80 29.54-96.92 51-16.88-21.49-48.83-51-96.92-51C98.46 64 48.63 114.54 48 176.65c-.54 54.21 18.63 104.27 58.61 153 18.77 22.88 52.8 59.46 131.39 112.81a31.84 31.84 0 0036 0c78.59-53.35 112.62-89.93 131.39-112.81 40-48.74 59.15-98.8 58.61-153C463.37 114.54 413.54 64 352.92 64zM256 416V207.58c0-19.63 5.23-38.76 14.21-56.22a1.19 1.19 0 01.08-.16 123 123 0 0121.77-28.51C310.19 105 330.66 96 352.92 96c43.15 0 78.62 36.32 79.07 81C433 281.61 343.63 356.51 256 416z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/heart-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/heart-outline.svg deleted file mode 100644 index 460ae5d79a0c07ba0c292a745741dafbe1b31641..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/heart-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Heart</title><path d="M352.92 80C288 80 256 144 256 144s-32-64-96.92-64c-52.76 0-94.54 44.14-95.08 96.81-1.1 109.33 86.73 187.08 183 252.42a16 16 0 0018 0c96.26-65.34 184.09-143.09 183-252.42-.54-52.67-42.32-96.81-95.08-96.81z" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/heart-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/heart-sharp.svg deleted file mode 100644 index e55117c08aae37c679dd1de154eaf285f4acf456..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/heart-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Heart</title><path d="M256 448l-9-6c-42.78-28.57-96.91-60.86-137-108.32-42.25-50-62.52-101.35-62-157C48.63 114.54 98.46 64 159.08 64c48.11 0 80.1 28 96.92 48.21C272.82 92 304.81 64 352.92 64c60.62 0 110.45 50.54 111.08 112.65.56 55.68-19.71 107-62 157-40.09 47.49-94.22 79.78-137 108.35z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/heart.svg b/ionic/platforms/android/app/src/main/assets/www/svg/heart.svg deleted file mode 100644 index 75916145a4893889b679c72724e3c6750e39064f..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/heart.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Heart</title><path d="M256 448a32 32 0 01-18-5.57c-78.59-53.35-112.62-89.93-131.39-112.8-40-48.75-59.15-98.8-58.61-153C48.63 114.52 98.46 64 159.08 64c44.08 0 74.61 24.83 92.39 45.51a6 6 0 009.06 0C278.31 88.81 308.84 64 352.92 64c60.62 0 110.45 50.52 111.08 112.64.54 54.21-18.63 104.26-58.61 153-18.77 22.87-52.8 59.45-131.39 112.8a32 32 0 01-18 5.56z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/help-buoy-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/help-buoy-outline.svg deleted file mode 100644 index 2de3af8b76d675beecf6134ac13fc1d2357eeaf1..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/help-buoy-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Help Buoy</title><circle cx="256" cy="256" r="208" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="256" cy="256" r="80" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-linejoin="round" d="M208 54l8 132M296 186l8-132M208 458l8-132M296 326l8 132M458 208l-132 8M326 296l132 8M54 208l132 8M186 296l-132 8" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/help-buoy-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/help-buoy-sharp.svg deleted file mode 100644 index e6732f8549698eb37d70195e4454b33ed660df5e..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/help-buoy-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Help Buoy</title><path d="M256 32C132.29 32 32 132.29 32 256s100.29 224 224 224 224-100.29 224-224S379.71 32 256 32zm-64 224a64 64 0 1164 64 64 64 0 01-64-64zm237.24-62.29L342.91 199a104.86 104.86 0 00-29.86-29.86l5.24-86.33a185 185 0 01111 111zm-303.35-67.82a183.44 183.44 0 0167.82-43.13l5.29 86.33A104.86 104.86 0 00169.09 199l-86.33-5.24a183.44 183.44 0 0143.13-67.87zm-43.13 192.4l86.33-5.24A104.86 104.86 0 00199 342.91l-5.24 86.33a185 185 0 01-111-110.95zm303.35 67.82a183.44 183.44 0 01-67.82 43.13l-5.24-86.33a104.86 104.86 0 0029.86-29.86l86.33 5.24a183.44 183.44 0 01-43.13 67.82z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/help-buoy.svg b/ionic/platforms/android/app/src/main/assets/www/svg/help-buoy.svg deleted file mode 100644 index cf82eb4cfd4a3338b413370bb143baf8b8b0498e..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/help-buoy.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Help Buoy</title><path d="M414.39 97.61A224 224 0 1097.61 414.39 224 224 0 10414.39 97.61zM192.13 260.18a64 64 0 1159.69 59.69 64.07 64.07 0 01-59.69-59.69zm240-66.64l-96.37 5.84a4.06 4.06 0 01-3.44-1.59 96 96 0 00-18.07-18.07 4.06 4.06 0 01-1.59-3.44l5.84-96.37a4 4 0 015.42-3.51A193 193 0 01435.6 188.12a4 4 0 01-3.51 5.42zM193.54 79.91l5.84 96.37a4.06 4.06 0 01-1.59 3.44 96 96 0 00-18.07 18.07 4.06 4.06 0 01-3.44 1.59l-96.37-5.84a4 4 0 01-3.51-5.42A193 193 0 01188.12 76.4a4 4 0 015.42 3.51zM79.91 318.46l96.37-5.84a4.06 4.06 0 013.44 1.59 96 96 0 0018.07 18.07 4.06 4.06 0 011.59 3.44l-5.84 96.37a4 4 0 01-5.42 3.51A193 193 0 0176.4 323.88a4 4 0 013.51-5.42zm238.55 113.63l-5.84-96.37a4.06 4.06 0 011.59-3.44 96 96 0 0018.07-18.07 4.06 4.06 0 013.44-1.59l96.37 5.84a4 4 0 013.51 5.42A193 193 0 01323.88 435.6a4 4 0 01-5.42-3.51z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/help-circle-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/help-circle-outline.svg deleted file mode 100644 index 0fe8d55f5680b50d0047356cfac8a15c00543fd1..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/help-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Help Circle</title><path d="M256 80a176 176 0 10176 176A176 176 0 00256 80z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><path d="M200 202.29s.84-17.5 19.57-32.57C230.68 160.77 244 158.18 256 158c10.93-.14 20.69 1.67 26.53 4.45 10 4.76 29.47 16.38 29.47 41.09 0 26-17 37.81-36.37 50.8S251 281.43 251 296" stroke-linecap="round" stroke-miterlimit="10" stroke-width="28" class="ionicon-fill-none"/><circle cx="250" cy="348" r="20"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/help-circle-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/help-circle-sharp.svg deleted file mode 100644 index 0e0da6dbd2fcd0e3328cce77f7dcc9bdfc1af89b..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/help-circle-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Help Circle</title><path d="M288.55 150.84c-8.09-3.86-20-6-32.72-5.82-18 .22-33.13 5.2-45 14.78-23 18.48-24.55 40.37-24.77 42.8a61.69 61.69 0 00-.09 12 3 3 0 003 2.69h21.23a3 3 0 003-3A65.7 65.7 0 01214 204c0-.11 1.14-11.7 14.36-22.34 7-5.64 16.11-8.44 27.83-8.59 9.32-.11 16.93 1.47 20.34 3.09C291 183 298 192.31 298 204.57c0 18-10.9 26.23-30.18 39.18C247.08 257.68 237 275.1 237 297v11a3 3 0 003 3h22a3 3 0 003-3v-11c0-9.16 2.23-19.13 18.44-30 19.95-13.41 42.56-28.6 42.56-62.43 0-23.14-13.3-42.23-37.45-53.73z" class="ionicon-fill-none"/><path d="M256 64C150 64 64 150 64 256s86 192 192 192 192-86 192-192S362 64 256 64zm10.44 302h-30.21a2.57 2.57 0 01-2.56-2.57v-30.2a2.57 2.57 0 012.56-2.57h30.21a2.57 2.57 0 012.56 2.57v30.2a2.57 2.57 0 01-2.56 2.57zm17-99C267.23 277.88 265 287.85 265 297v11a3 3 0 01-3 3h-22a3 3 0 01-3-3v-11c0-21.91 10.08-39.33 30.82-53.26C287.1 230.8 298 222.6 298 204.57c0-12.26-7-21.57-21.49-28.46-3.41-1.62-11-3.2-20.34-3.09-11.72.15-20.82 2.95-27.83 8.59C215.12 192.25 214 203.84 214 204a65.7 65.7 0 00-.84 10.28 3 3 0 01-3 3h-21.25a3 3 0 01-3-2.69 61.69 61.69 0 01.09-12c.22-2.43 1.8-24.32 24.77-42.8 11.91-9.58 27.06-14.56 45-14.78 12.7-.15 24.63 2 32.72 5.82 24.21 11.51 37.51 30.6 37.51 53.74 0 33.83-22.61 49.02-42.56 62.43z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/help-circle.svg b/ionic/platforms/android/app/src/main/assets/www/svg/help-circle.svg deleted file mode 100644 index 620dd90b93adaccce09627780506229c8a0ecd35..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/help-circle.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Help Circle</title><path d="M256 64C150 64 64 150 64 256s86 192 192 192 192-86 192-192S362 64 256 64zm-6 304a20 20 0 1120-20 20 20 0 01-20 20zm33.44-102C267.23 276.88 265 286.85 265 296a14 14 0 01-28 0c0-21.91 10.08-39.33 30.82-53.26C287.1 229.8 298 221.6 298 203.57c0-12.26-7-21.57-21.49-28.46-3.41-1.62-11-3.2-20.34-3.09-11.72.15-20.82 2.95-27.83 8.59C215.12 191.25 214 202.83 214 203a14 14 0 11-28-1.35c.11-2.43 1.8-24.32 24.77-42.8 11.91-9.58 27.06-14.56 45-14.78 12.7-.15 24.63 2 32.72 5.82C312.7 161.34 326 180.43 326 203.57c0 33.83-22.61 49.02-42.56 62.43z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/help-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/help-outline.svg deleted file mode 100644 index 32e31f9f1239302a8451e212a481da6749a4736a..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/help-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Help</title><path d="M160 164s1.44-33 33.54-59.46C212.6 88.83 235.49 84.28 256 84c18.73-.23 35.47 2.94 45.48 7.82C318.59 100.2 352 120.6 352 164c0 45.67-29.18 66.37-62.35 89.18S248 298.36 248 324" stroke-linecap="round" stroke-miterlimit="10" stroke-width="40" class="ionicon-fill-none"/><circle cx="248" cy="399.99" r="32"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/help-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/help-sharp.svg deleted file mode 100644 index 4562b062b7c835c896a4f4369defe147fa5f14c1..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/help-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Help</title><path d="M160 164c0-10 1.44-33 33.54-59.46C212.6 88.83 235.49 84.28 256 84c18.73-.23 35.47 2.94 45.48 7.82C318.59 100.2 352 120.6 352 164c0 45.67-29.18 66.37-62.35 89.18S248 290.36 248 316" stroke-linecap="square" stroke-miterlimit="10" stroke-width="40" class="ionicon-fill-none"/><rect x="220" y="368" width="56" height="56" rx="3.5" ry="3.5"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/help.svg b/ionic/platforms/android/app/src/main/assets/www/svg/help.svg deleted file mode 100644 index 32e31f9f1239302a8451e212a481da6749a4736a..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/help.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Help</title><path d="M160 164s1.44-33 33.54-59.46C212.6 88.83 235.49 84.28 256 84c18.73-.23 35.47 2.94 45.48 7.82C318.59 100.2 352 120.6 352 164c0 45.67-29.18 66.37-62.35 89.18S248 298.36 248 324" stroke-linecap="round" stroke-miterlimit="10" stroke-width="40" class="ionicon-fill-none"/><circle cx="248" cy="399.99" r="32"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/home-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/home-outline.svg deleted file mode 100644 index 166562112d8048fbb55f22efcc0a86dae3118c10..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/home-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Home</title><path d="M80 212v236a16 16 0 0016 16h96V328a24 24 0 0124-24h80a24 24 0 0124 24v136h96a16 16 0 0016-16V212" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M480 256L266.89 52c-5-5.28-16.69-5.34-21.78 0L32 256M400 179V64h-48v69" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/home-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/home-sharp.svg deleted file mode 100644 index 20753289bfed7bf4b35e8cbe8913791335856480..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/home-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Home</title><path d="M416 174.74V48h-80v58.45L256 32 0 272h64v208h144V320h96v160h144V272h64l-96-97.26z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/home.svg b/ionic/platforms/android/app/src/main/assets/www/svg/home.svg deleted file mode 100644 index 4229b0e3d2686d875b1e2dcc6abc0042a78a0985..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/home.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Home</title><path d="M261.56 101.28a8 8 0 00-11.06 0L66.4 277.15a8 8 0 00-2.47 5.79L63.9 448a32 32 0 0032 32H192a16 16 0 0016-16V328a8 8 0 018-8h80a8 8 0 018 8v136a16 16 0 0016 16h96.06a32 32 0 0032-32V282.94a8 8 0 00-2.47-5.79z"/><path d="M490.91 244.15l-74.8-71.56V64a16 16 0 00-16-16h-48a16 16 0 00-16 16v32l-57.92-55.38C272.77 35.14 264.71 32 256 32c-8.68 0-16.72 3.14-22.14 8.63l-212.7 203.5c-6.22 6-7 15.87-1.34 22.37A16 16 0 0043 267.56L250.5 69.28a8 8 0 0111.06 0l207.52 198.28a16 16 0 0022.59-.44c6.14-6.36 5.63-16.86-.76-22.97z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/hourglass-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/hourglass-outline.svg deleted file mode 100644 index 9253b75cf5eef7f2ad10c2276f4f8da8faa86cbb..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/hourglass-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Hourglass</title><path d="M145.61 464h220.78c19.8 0 35.55-16.29 33.42-35.06C386.06 308 304 310 304 256s83.11-51 95.8-172.94c2-18.78-13.61-35.06-33.41-35.06H145.61c-19.8 0-35.37 16.28-33.41 35.06C124.89 205 208 201 208 256s-82.06 52-95.8 172.94c-2.14 18.77 13.61 35.06 33.41 35.06z" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M343.3 432H169.13c-15.6 0-20-18-9.06-29.16C186.55 376 240 356.78 240 326V224c0-19.85-38-35-61.51-67.2-3.88-5.31-3.49-12.8 6.37-12.8h142.73c8.41 0 10.23 7.43 6.4 12.75C310.82 189 272 204.05 272 224v102c0 30.53 55.71 47 80.4 76.87 9.95 12.04 6.47 29.13-9.1 29.13z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/hourglass-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/hourglass-sharp.svg deleted file mode 100644 index 8163b5fe45020a13dd809e23c64a50c2bc4b24cd..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/hourglass-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Hourglass</title><path d="M416 32H96v112l108 112L96 368v112h320V368L308 256l108-112zM272 224v112l91 96H148l92-96V224l-80-80h192z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/hourglass.svg b/ionic/platforms/android/app/src/main/assets/www/svg/hourglass.svg deleted file mode 100644 index 1c6242722a216cf4ec789490474abb91f0c57394..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/hourglass.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Hourglass</title><path d="M415.7 427.13c-8.74-76.89-43.83-108.76-69.46-132C328.52 279 320 270.61 320 256c0-14.41 8.49-22.64 26.16-38.44 25.93-23.17 61.44-54.91 69.56-132.84a47 47 0 00-12-36.26A50.3 50.3 0 00366.39 32H145.61a50.34 50.34 0 00-37.39 16.46 47.05 47.05 0 00-11.94 36.26c8.09 77.68 43.47 109.19 69.3 132.19C183.42 232.8 192 241.09 192 256c0 15.1-8.6 23.56-26.5 39.75-25.5 23.1-60.5 54.73-69.2 131.38a46.59 46.59 0 0011.7 36.2A50.44 50.44 0 00145.61 480h220.78A50.44 50.44 0 00404 463.33a46.59 46.59 0 0011.7-36.2zM343.3 432H169.13c-15.6 0-20-18-9.06-29.16C186.55 376 240 356.78 240 326V224c0-19.85-38-35-61.51-67.2-3.88-5.31-3.49-12.8 6.37-12.8h142.73c8.41 0 10.22 7.43 6.4 12.75C310.82 189 272 204.05 272 224v102c0 30.53 55.71 47 80.4 76.87 9.95 12.04 6.47 29.13-9.1 29.13z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/ice-cream-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/ice-cream-outline.svg deleted file mode 100644 index c240d5fc24e379f5e941390e1da61ca83d5af487..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/ice-cream-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Ice Cream</title><path stroke-linecap="round" stroke-linejoin="round" d="M352 256l-96 224-62-145" class="ionicon-fill-none ionicon-stroke-width"/><path d="M299.42 223.48C291.74 239.75 275.18 252 256 252c-13.1 0-27-5-33.63-9.76C216.27 237.87 208 240 208 250v62a24.07 24.07 0 01-24 24h0a24.07 24.07 0 01-24-24v-56h-2c-35.35 0-62-28.65-62-64a64 64 0 0164-64h8v-8a88 88 0 01176 0v8h8a64 64 0 010 128c-21.78 0-42-13-52.59-32.51z" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/ice-cream-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/ice-cream-sharp.svg deleted file mode 100644 index f09350bddfa0fed193f84d8687149e932fa19ce2..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/ice-cream-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Ice Cream</title><path d="M359.72 112.37a104 104 0 00-207.44 0A80.12 80.12 0 0080 192c0 39.36 26.37 71.23 62.38 78.46a2 2 0 011.62 2v38.83c0 21.84 17.2 40.22 39 40.74a40 40 0 0041-40v-47.84a2 2 0 012.72-1.86A83.47 83.47 0 00256 268a63.18 63.18 0 0042.24-16.59 2 2 0 012.74 0A74.63 74.63 0 00352 272a80 80 0 007.72-159.63z"/><path d="M256 300v12a72.1 72.1 0 01-58.21 70.64L256 496l92.06-192.08a105.29 105.29 0 01-49.18-14.36A93.75 93.75 0 01256 300z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/ice-cream.svg b/ionic/platforms/android/app/src/main/assets/www/svg/ice-cream.svg deleted file mode 100644 index cfddd38159233a90c4c5b34c64631f618a32a677..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/ice-cream.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Ice Cream</title><path d="M183 352c-21.84-.52-39-18.9-39-40.74v-34.07a8 8 0 00-6-7.74c-33.75-8.85-58-39.71-58-77.45a80.14 80.14 0 0166.27-78.82 8 8 0 006.62-6.83 104 104 0 01206.22 0 8 8 0 006.62 6.83A80 80 0 01352 272a74.33 74.33 0 01-47.45-17.41 7.93 7.93 0 00-9.92-.14A62.89 62.89 0 01256 268a80.47 80.47 0 01-21.8-3.18 8 8 0 00-10.2 7.69V312a40 40 0 01-41 40z"/><path d="M263.39 299.7a8 8 0 00-7.39 7.91V312a72.11 72.11 0 01-50.69 68.76 8 8 0 00-4.91 10.78l40.91 94.8A16 16 0 00256 496a16 16 0 0014.69-9.7l73.78-172.15a8 8 0 00-6.2-11.07 106.31 106.31 0 01-35.9-11.59 8 8 0 00-7.13-.2 95 95 0 01-31.85 8.41z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/image-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/image-outline.svg deleted file mode 100644 index 532966d8c0d1ffef51a1db3e200a48e0a10f8023..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/image-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Image</title><rect x="48" y="80" width="416" height="352" rx="48" ry="48" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="336" cy="176" r="32" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><path d="M304 335.79l-90.66-90.49a32 32 0 00-43.87-1.3L48 352M224 432l123.34-123.34a32 32 0 0143.11-2L464 368" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/image-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/image-sharp.svg deleted file mode 100644 index 96e19605766434262deec2c9af84ad1080a6d5d0..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/image-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Image</title><path d="M456 64H56a24 24 0 00-24 24v336a24 24 0 0024 24h400a24 24 0 0024-24V88a24 24 0 00-24-24zm-124.38 64.2a48 48 0 11-43.42 43.42 48 48 0 0143.42-43.42zM76 416a12 12 0 01-12-12v-87.63L192.64 202l96.95 96.75L172.37 416zm372-12a12 12 0 01-12 12H217.63l149.53-149.53L448 333.84z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/image.svg b/ionic/platforms/android/app/src/main/assets/www/svg/image.svg deleted file mode 100644 index de2694ab15ff0a854ceb209ac9b72735b04b82fc..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/image.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Image</title><path d="M416 64H96a64.07 64.07 0 00-64 64v256a64.07 64.07 0 0064 64h320a64.07 64.07 0 0064-64V128a64.07 64.07 0 00-64-64zm-80 64a48 48 0 11-48 48 48.05 48.05 0 0148-48zM96 416a32 32 0 01-32-32v-67.63l94.84-84.3a48.06 48.06 0 0165.8 1.9l64.95 64.81L172.37 416zm352-32a32 32 0 01-32 32H217.63l121.42-121.42a47.72 47.72 0 0161.64-.16L448 333.84z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/images-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/images-outline.svg deleted file mode 100644 index 212744265af2df5ff588aff36992dae3b93430a0..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/images-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Images</title><path d="M432 112V96a48.14 48.14 0 00-48-48H64a48.14 48.14 0 00-48 48v256a48.14 48.14 0 0048 48h16" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><rect x="96" y="128" width="400" height="336" rx="45.99" ry="45.99" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><ellipse cx="372.92" cy="219.64" rx="30.77" ry="30.55" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><path d="M342.15 372.17L255 285.78a30.93 30.93 0 00-42.18-1.21L96 387.64M265.23 464l118.59-117.73a31 31 0 0141.46-1.87L496 402.91" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/images-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/images-sharp.svg deleted file mode 100644 index 00ebbffebdf09924edcc83a143867dd8d22772b3..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/images-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Images</title><ellipse cx="373.14" cy="219.33" rx="46.29" ry="46" class="ionicon-fill-none"/><path d="M80 132v328a20 20 0 0020 20h392a20 20 0 0020-20V132a20 20 0 00-20-20H100a20 20 0 00-20 20zm293.14 41.33a46 46 0 11-46.28 46 46.19 46.19 0 0146.28-46zm-261.41 276v-95.48l122.76-110.2L328.27 337l-113 112.33zm368.27 0H259l144.58-144L480 370.59z"/><path d="M20 32A20 20 0 000 52v344a20 20 0 0020 20h28V100a20 20 0 0120-20h380V52a20 20 0 00-20-20z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/images.svg b/ionic/platforms/android/app/src/main/assets/www/svg/images.svg deleted file mode 100644 index 179a4f8919f3f362d9238fef6bbafc1ba7045ebe..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/images.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Images</title><path d="M450.29 112H142c-34 0-62 27.51-62 61.33v245.34c0 33.82 28 61.33 62 61.33h308c34 0 62-26.18 62-60V173.33c0-33.82-27.68-61.33-61.71-61.33zm-77.15 61.34a46 46 0 11-46.28 46 46.19 46.19 0 0146.28-46.01zm-231.55 276c-17 0-29.86-13.75-29.86-30.66v-64.83l90.46-80.79a46.54 46.54 0 0163.44 1.83L328.27 337l-113 112.33zM480 418.67a30.67 30.67 0 01-30.71 30.66H259L376.08 333a46.24 46.24 0 0159.44-.16L480 370.59z"/><path d="M384 32H64A64 64 0 000 96v256a64.11 64.11 0 0048 62V152a72 72 0 0172-72h326a64.11 64.11 0 00-62-48z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/infinite-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/infinite-outline.svg deleted file mode 100644 index c281255b655feb24f74c3f1232c00171b50bf3f1..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/infinite-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Infinite</title><path d="M256 256s-48-96-126-96c-54.12 0-98 43-98 96s43.88 96 98 96c37.51 0 71-22.41 94-48M256 256s48 96 126 96c54.12 0 98-43 98-96s-43.88-96-98-96c-37.51 0-71 22.41-94 48" stroke-linecap="round" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/infinite-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/infinite-sharp.svg deleted file mode 100644 index 07bcf509340dd17da39ac012be3fec4ed97b1c57..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/infinite-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Infinite</title><path d="M382 136c-40.87 0-73.46 20.53-93.6 37.76l-.71.61-11.47 12.47 25.32 41.61 18.74-18.79C339.89 193.1 361.78 184 382 184c40.8 0 74 32.3 74 72s-33.2 72-74 72c-62 0-104.14-81.95-104.56-82.78C275 240.29 221.56 136 130 136 62.73 136 8 189.83 8 256s54.73 120 122 120c32.95 0 65.38-13.11 93.79-37.92l.61-.54 11.38-12.38-25.33-41.61-18.83 18.88C172 319.4 151.26 328 130 328c-40.8 0-74-32.3-74-72s33.2-72 74-72c62 0 104.14 81.95 104.56 82.78C237 271.71 290.44 376 382 376c67.27 0 122-53.83 122-120s-54.73-120-122-120z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/infinite.svg b/ionic/platforms/android/app/src/main/assets/www/svg/infinite.svg deleted file mode 100644 index c19aba4b04c5899ab5772fdb8d18eb300039f48e..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/infinite.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Infinite</title><path d="M256 256s-48-96-126-96c-54.12 0-98 43-98 96s43.88 96 98 96c30 0 56.45-13.18 78-32M256 256s48 96 126 96c54.12 0 98-43 98-96s-43.88-96-98-96c-29.37 0-56.66 13.75-78 32" stroke-linecap="round" stroke-miterlimit="10" stroke-width="48" class="ionicon-fill-none"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/information-circle-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/information-circle-outline.svg deleted file mode 100644 index d4064cf9aeaae33a2e6872d51f35654c4d419c2b..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/information-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Information Circle</title><path d="M248 64C146.39 64 64 146.39 64 248s82.39 184 184 184 184-82.39 184-184S349.61 64 248 64z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-linejoin="round" d="M220 220h32v116" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-miterlimit="10" d="M208 340h88" class="ionicon-fill-none ionicon-stroke-width"/><path d="M248 130a26 26 0 1026 26 26 26 0 00-26-26z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/information-circle-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/information-circle-sharp.svg deleted file mode 100644 index a2b11b896294fd4527f683c7cc44a542ccb3367e..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/information-circle-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Information Circle</title><path d="M256 56C145.72 56 56 145.72 56 256s89.72 200 200 200 200-89.72 200-200S366.28 56 256 56zm0 82a26 26 0 11-26 26 26 26 0 0126-26zm64 226H200v-32h44v-88h-32v-32h64v120h44z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/information-circle.svg b/ionic/platforms/android/app/src/main/assets/www/svg/information-circle.svg deleted file mode 100644 index f3388322faa2067668f3422bce69cfc9155e7031..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/information-circle.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Information Circle</title><path d="M256 56C145.72 56 56 145.72 56 256s89.72 200 200 200 200-89.72 200-200S366.28 56 256 56zm0 82a26 26 0 11-26 26 26 26 0 0126-26zm48 226h-88a16 16 0 010-32h28v-88h-16a16 16 0 010-32h32a16 16 0 0116 16v104h28a16 16 0 010 32z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/information-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/information-outline.svg deleted file mode 100644 index c975e60c3405618d7ded542c7eebf98de0371714..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/information-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Information</title><path stroke-linecap="round" stroke-linejoin="round" stroke-width="40" d="M196 220h64v172" class="ionicon-fill-none"/><path stroke-linecap="round" stroke-miterlimit="10" stroke-width="40" d="M187 396h138" class="ionicon-fill-none"/><path d="M256 160a32 32 0 1132-32 32 32 0 01-32 32z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/information-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/information-sharp.svg deleted file mode 100644 index 2c9e98e5c351f5421de8dad6b33cbcd9cc93e60a..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/information-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Information</title><path stroke-linecap="square" stroke-miterlimit="10" stroke-width="40" d="M196 220h64v172M187 396h138" class="ionicon-fill-none"/><path d="M256 160a32 32 0 1132-32 32 32 0 01-32 32z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/information.svg b/ionic/platforms/android/app/src/main/assets/www/svg/information.svg deleted file mode 100644 index c975e60c3405618d7ded542c7eebf98de0371714..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/information.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Information</title><path stroke-linecap="round" stroke-linejoin="round" stroke-width="40" d="M196 220h64v172" class="ionicon-fill-none"/><path stroke-linecap="round" stroke-miterlimit="10" stroke-width="40" d="M187 396h138" class="ionicon-fill-none"/><path d="M256 160a32 32 0 1132-32 32 32 0 01-32 32z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/invert-mode-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/invert-mode-outline.svg deleted file mode 100644 index 74ac60a5a29013c8c42312f880d6bfec3adcc857..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/invert-mode-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Invert Mode</title><circle stroke-miterlimit="10" cx="256" cy="256" r="208" class="ionicon-fill-none ionicon-stroke-width"/><path d="M256 176v160a80 80 0 010-160zM256 48v128a80 80 0 010 160v128c114.88 0 208-93.12 208-208S370.88 48 256 48z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/invert-mode-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/invert-mode-sharp.svg deleted file mode 100644 index 4c84ecf48b43fd91df77b8c888073972c9a1aa26..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/invert-mode-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Invert Mode</title><path d="M414.39 97.61A224 224 0 1097.61 414.39 224 224 0 10414.39 97.61zM256 432v-96a80 80 0 010-160V80c97.05 0 176 79 176 176s-78.95 176-176 176z"/><path d="M336 256a80 80 0 00-80-80v160a80 80 0 0080-80z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/invert-mode.svg b/ionic/platforms/android/app/src/main/assets/www/svg/invert-mode.svg deleted file mode 100644 index 40745ac9d61bcad0dbd0ffcddb933db2e5209288..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/invert-mode.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Invert Mode</title><circle stroke-miterlimit="10" cx="256" cy="256" r="208" class="ionicon-fill-none ionicon-stroke-width"/><path d="M256 176v160a80 80 0 000-160zM256 48v128a80 80 0 000 160v128c-114.88 0-208-93.12-208-208S141.12 48 256 48z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/journal-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/journal-outline.svg deleted file mode 100644 index 633391a30944771f35384903eaf314f7ab41cb16..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/journal-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Journal</title><rect x="96" y="48" width="320" height="416" rx="48" ry="48" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linejoin="round" stroke-width="60" d="M320 48v416" class="ionicon-fill-none"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/journal-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/journal-sharp.svg deleted file mode 100644 index 8e9698e2d35faa5bbeaaa95880b8fbcfdcb261d3..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/journal-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Journal</title><path d="M290 32H104a24 24 0 00-24 24v400a24 24 0 0024 24h186zM408 32h-58v448h58a24 24 0 0024-24V56a24 24 0 00-24-24z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/journal.svg b/ionic/platforms/android/app/src/main/assets/www/svg/journal.svg deleted file mode 100644 index aed6fc37ddfb7469f2cf05312429f013b13bdc9a..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/journal.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Journal</title><path d="M290 32H144a64.07 64.07 0 00-64 64v320a64.07 64.07 0 0064 64h146zM368 32h-18v448h18a64.07 64.07 0 0064-64V96a64.07 64.07 0 00-64-64z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/key-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/key-outline.svg deleted file mode 100644 index 0e846df2262fa0ef8d99ec4379e0878de060ac26..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/key-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Key</title><path d="M218.1 167.17c0 13 0 25.6 4.1 37.4-43.1 50.6-156.9 184.3-167.5 194.5a20.17 20.17 0 00-6.7 15c0 8.5 5.2 16.7 9.6 21.3 6.6 6.9 34.8 33 40 28 15.4-15 18.5-19 24.8-25.2 9.5-9.3-1-28.3 2.3-36s6.8-9.2 12.5-10.4 15.8 2.9 23.7 3c8.3.1 12.8-3.4 19-9.2 5-4.6 8.6-8.9 8.7-15.6.2-9-12.8-20.9-3.1-30.4s23.7 6.2 34 5 22.8-15.5 24.1-21.6-11.7-21.8-9.7-30.7c.7-3 6.8-10 11.4-11s25 6.9 29.6 5.9c5.6-1.2 12.1-7.1 17.4-10.4 15.5 6.7 29.6 9.4 47.7 9.4 68.5 0 124-53.4 124-119.2S408.5 48 340 48s-121.9 53.37-121.9 119.17zM400 144a32 32 0 11-32-32 32 32 0 0132 32z" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/key-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/key-sharp.svg deleted file mode 100644 index 3488e3354c15955e8d43112269c8ae36328b283d..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/key-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Key</title><path d="M218.1 167.2c0 13 0 25.6 4.1 37.4-43.1 50.6-167.5 194.5-167.5 194.5l2.9 36.3s34.8 33 40 28c15.4-15 24.8-25.2 24.8-25.2l7.24-43.35 47.11-3.47 3.78-46.8 49.63-.95.49-50.09 52.69 2.1 9-18.84c15.5 6.7 29.6 9.4 47.7 9.4 68.5 0 124-53.4 124-119.2S408.5 48 340 48s-121.9 53.4-121.9 119.2zM406.85 144A38.85 38.85 0 11368 105.15 38.81 38.81 0 01406.85 144z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/key.svg b/ionic/platforms/android/app/src/main/assets/www/svg/key.svg deleted file mode 100644 index df986a495a2f4b07aa260a481aa3fe6d22850179..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/key.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Key</title><path d="M218.1 167.17c0 13 0 25.6 4.1 37.4-43.1 50.6-156.9 184.3-167.5 194.5a20.17 20.17 0 00-6.7 15c0 8.5 5.2 16.7 9.6 21.3 6.6 6.9 34.8 33 40 28 15.4-15 18.5-19 24.8-25.2 9.5-9.3-1-28.3 2.3-36s6.8-9.2 12.5-10.4 15.8 2.9 23.7 3c8.3.1 12.8-3.4 19-9.2 5-4.6 8.6-8.9 8.7-15.6.2-9-12.8-20.9-3.1-30.4s23.7 6.2 34 5 22.8-15.5 24.1-21.6-11.7-21.8-9.7-30.7c.7-3 6.8-10 11.4-11s25 6.9 29.6 5.9c5.6-1.2 12.1-7.1 17.4-10.4 15.5 6.7 29.6 9.4 47.7 9.4 68.5 0 124-53.4 124-119.2S408.5 48 340 48s-121.9 53.37-121.9 119.17zM400 144a32 32 0 11-32-32 32 32 0 0132 32z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/keypad-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/keypad-outline.svg deleted file mode 100644 index a10fb0659d25d0a912075891c07b838ba8d4e9dd..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/keypad-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Keypad</title><circle cx="256" cy="448" r="32" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="256" cy="320" r="32" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><path d="M288 192a32 32 0 11-32-32 32 32 0 0132 32z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="256" cy="64" r="32" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="384" cy="320" r="32" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="384" cy="192" r="32" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="384" cy="64" r="32" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="128" cy="320" r="32" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="128" cy="192" r="32" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="128" cy="64" r="32" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/keypad-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/keypad-sharp.svg deleted file mode 100644 index c0ca5427a22cfee88f8eb5f2d65141e3bdb87b82..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/keypad-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Keypad</title><rect x="80" y="16" width="96" height="96" rx="8" ry="8"/><rect x="208" y="16" width="96" height="96" rx="8" ry="8"/><rect x="336" y="16" width="96" height="96" rx="8" ry="8"/><rect x="80" y="144" width="96" height="96" rx="8" ry="8"/><rect x="208" y="144" width="96" height="96" rx="8" ry="8"/><rect x="336" y="144" width="96" height="96" rx="8" ry="8"/><rect x="80" y="272" width="96" height="96" rx="8" ry="8"/><rect x="208" y="272" width="96" height="96" rx="8" ry="8"/><rect x="208" y="400" width="96" height="96" rx="8" ry="8"/><rect x="336" y="272" width="96" height="96" rx="8" ry="8"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/keypad.svg b/ionic/platforms/android/app/src/main/assets/www/svg/keypad.svg deleted file mode 100644 index 6efcfb96075002bc5df01d262a8dc35f4fb99fd0..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/keypad.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Keypad</title><path d="M256 400a48 48 0 1048 48 48 48 0 00-48-48zM256 272a48 48 0 1048 48 48 48 0 00-48-48zM256 144a48 48 0 1048 48 48 48 0 00-48-48zM256 16a48 48 0 1048 48 48 48 0 00-48-48zM384 272a48 48 0 1048 48 48 48 0 00-48-48zM384 144a48 48 0 1048 48 48 48 0 00-48-48zM384 16a48 48 0 1048 48 48 48 0 00-48-48zM128 272a48 48 0 1048 48 48 48 0 00-48-48zM128 144a48 48 0 1048 48 48 48 0 00-48-48zM128 16a48 48 0 1048 48 48 48 0 00-48-48z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/language-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/language-outline.svg deleted file mode 100644 index acfe82733b224809d4e83c023cd2a32b35da7954..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/language-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Language</title><path stroke-linecap="round" stroke-linejoin="round" d="M48 112h288M192 64v48M272 448l96-224 96 224M301.5 384h133M281.3 112S257 206 199 277 80 384 80 384" class="ionicon-fill-none ionicon-stroke-width"/><path d="M256 336s-35-27-72-75-56-85-56-85" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/language-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/language-sharp.svg deleted file mode 100644 index c6452ba4635a13c84203dfdebd2b4211bf4c2cca..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/language-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Language</title><path d="M363 176L246 464h47.24l24.49-58h90.54l24.49 58H480zm-26.69 186L363 279.85 389.69 362zM272 320c-.25-.19-20.59-15.77-45.42-42.67 39.58-53.64 62-114.61 71.15-143.33H352V90H214V48h-44v42H32v44h219.25c-9.52 26.95-27.05 69.5-53.79 108.36-32.68-43.44-47.14-75.88-47.33-76.22L143 152l-38 22 6.87 13.86c.89 1.56 17.19 37.9 54.71 86.57.92 1.21 1.85 2.39 2.78 3.57-49.72 56.86-89.15 79.09-89.66 79.47L64 368l23 36 19.3-11.47c2.2-1.67 41.33-24 92-80.78 24.52 26.28 43.22 40.83 44.3 41.67L255 362z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/language.svg b/ionic/platforms/android/app/src/main/assets/www/svg/language.svg deleted file mode 100644 index 91e94e49930934f103edf788313e83e1ddf42f7c..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/language.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Language</title><path d="M478.33 433.6l-90-218a22 22 0 00-40.67 0l-90 218a22 22 0 1040.67 16.79L316.66 406h102.67l18.33 44.39A22 22 0 00458 464a22 22 0 0020.32-30.4zM334.83 362L368 281.65 401.17 362zM267.84 342.92a22 22 0 00-4.89-30.7c-.2-.15-15-11.13-36.49-34.73 39.65-53.68 62.11-114.75 71.27-143.49H330a22 22 0 000-44H214V70a22 22 0 00-44 0v20H54a22 22 0 000 44h197.25c-9.52 26.95-27.05 69.5-53.79 108.36-31.41-41.68-43.08-68.65-43.17-68.87a22 22 0 00-40.58 17c.58 1.38 14.55 34.23 52.86 83.93.92 1.19 1.83 2.35 2.74 3.51-39.24 44.35-77.74 71.86-93.85 80.74a22 22 0 1021.07 38.63c2.16-1.18 48.6-26.89 101.63-85.59 22.52 24.08 38 35.44 38.93 36.1a22 22 0 0030.75-4.9z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/laptop-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/laptop-outline.svg deleted file mode 100644 index 5d1a06fc5b935fc9877a96366a4e02f96d0d2175..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/laptop-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Laptop</title><rect x="48" y="96" width="416" height="304" rx="32.14" ry="32.14" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-miterlimit="10" d="M16 416h480" class="ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/laptop-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/laptop-sharp.svg deleted file mode 100644 index 0de0992b606fe8269455ff10ea39a974608233c3..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/laptop-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Laptop</title><path d="M477.29 400a27.75 27.75 0 002.71-12V108a28 28 0 00-28-28H60a28 28 0 00-28 28v280a27.75 27.75 0 002.71 12H0v32h512v-32z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/laptop.svg b/ionic/platforms/android/app/src/main/assets/www/svg/laptop.svg deleted file mode 100644 index 33b89d1f4f42c3b6386f1c1f46890b8247210e1d..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/laptop.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Laptop</title><path d="M496 400h-28.34A47.92 47.92 0 00480 367.86V128.14A48.2 48.2 0 00431.86 80H80.14A48.2 48.2 0 0032 128.14v239.72A47.92 47.92 0 0044.34 400H16a16 16 0 000 32h480a16 16 0 000-32z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/layers-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/layers-outline.svg deleted file mode 100644 index e92b147a54d9e1ed6004c4a1101682a7b6f07fef..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/layers-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Layers</title><path d="M434.8 137.65l-149.36-68.1c-16.19-7.4-42.69-7.4-58.88 0L77.3 137.65c-17.6 8-17.6 21.09 0 29.09l148 67.5c16.89 7.7 44.69 7.7 61.58 0l148-67.5c17.52-8 17.52-21.1-.08-29.09zM160 308.52l-82.7 37.11c-17.6 8-17.6 21.1 0 29.1l148 67.5c16.89 7.69 44.69 7.69 61.58 0l148-67.5c17.6-8 17.6-21.1 0-29.1l-79.94-38.47" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M160 204.48l-82.8 37.16c-17.6 8-17.6 21.1 0 29.1l148 67.49c16.89 7.7 44.69 7.7 61.58 0l148-67.49c17.7-8 17.7-21.1.1-29.1L352 204.48" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/layers-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/layers-sharp.svg deleted file mode 100644 index b3a45633926fe57ef901281a876e8fe9e5218155..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/layers-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Layers</title><path d="M480 150L256 48 32 150l224 104 224-104zM255.71 392.95l-144.81-66.2L32 362l224 102 224-102-78.69-35.3-145.6 66.25z"/><path d="M480 256l-75.53-33.53L256.1 290.6l-148.77-68.17L32 256l224 102 224-102z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/layers.svg b/ionic/platforms/android/app/src/main/assets/www/svg/layers.svg deleted file mode 100644 index 02d3485010aaefb4840e6eda72b3ebba071a425e..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/layers.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Layers</title><path d="M256 256c-13.47 0-26.94-2.39-37.44-7.17l-148-67.49C63.79 178.26 48 169.25 48 152.24s15.79-26 22.58-29.12l149.28-68.07c20.57-9.4 51.61-9.4 72.19 0l149.37 68.07c6.79 3.09 22.58 12.1 22.58 29.12s-15.79 26-22.58 29.11l-148 67.48C282.94 253.61 269.47 256 256 256zm176.76-100.86z"/><path d="M441.36 226.81L426.27 220l-38.77 17.74-94 43c-10.5 4.8-24 7.19-37.44 7.19s-26.93-2.39-37.42-7.19l-94.07-43L85.79 220l-15.22 6.84C63.79 229.93 48 239 48 256s15.79 26.08 22.56 29.17l148 67.63C229 357.6 242.49 360 256 360s26.94-2.4 37.44-7.19l147.87-67.61c6.81-3.09 22.69-12.11 22.69-29.2s-15.77-26.07-22.64-29.19z"/><path d="M441.36 330.8l-15.09-6.8-38.77 17.73-94 42.95c-10.5 4.78-24 7.18-37.44 7.18s-26.93-2.39-37.42-7.18l-94.07-43L85.79 324l-15.22 6.84C63.79 333.93 48 343 48 360s15.79 26.07 22.56 29.15l148 67.59C229 461.52 242.54 464 256 464s26.88-2.48 37.38-7.27l147.92-67.57c6.82-3.08 22.7-12.1 22.7-29.16s-15.77-26.07-22.64-29.2z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/leaf-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/leaf-outline.svg deleted file mode 100644 index 537997998f35938281f501c7f907975f62520509..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/leaf-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Leaf</title><path d="M321.89 171.42C233 114 141 155.22 56 65.22c-19.8-21-8.3 235.5 98.1 332.7 77.79 71 197.9 63.08 238.4-5.92s18.28-163.17-70.61-220.58zM173 253c86 81 175 129 292 147" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/leaf-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/leaf-sharp.svg deleted file mode 100644 index e44b0aeda20b78dc00b0deba3d3a0ef89c6200f7..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/leaf-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Leaf</title><path d="M150.38 253.68l21.94-23.3 11.65 11c73.63 69.36 147.51 111.56 234.45 133.07 11.73-32 12.77-67.22 2.64-101.58-13.44-45.59-44.74-85.31-90.49-114.86-40.25-26-76.6-32.09-115.09-38.54-21.12-3.54-43-7.2-66.85-14.43-43.78-13.28-89.69-52.74-90.15-53.13L33.4 30.15 32 63.33c-.1 2.56-2.42 63.57 14.22 147.77 17.58 89 50.24 155.85 97.07 198.63 38 34.69 87.62 53.9 136.93 53.9a185.88 185.88 0 0027.78-2.07c41.72-6.32 76.43-27.27 96-57.75-89.5-23.28-165.95-67.55-242-139.16z"/><path d="M467.43 384.19c-16.83-2.59-33.13-5.84-49-9.77a158.49 158.49 0 01-12.13 25.68c-.74 1.25-1.51 2.49-2.29 3.71a583.43 583.43 0 0058.55 12l15.82 2.44 4.86-31.63z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/leaf.svg b/ionic/platforms/android/app/src/main/assets/www/svg/leaf.svg deleted file mode 100644 index 729369a306783a33ce174d6af8bd5949159d121f..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/leaf.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Leaf</title><path d="M161.35 242a16 16 0 0122.62-.68c73.63 69.36 147.51 111.56 234.45 133.07 11.73-32 12.77-67.22 2.64-101.58-13.44-45.59-44.74-85.31-90.49-114.86-40.84-26.38-81.66-33.25-121.15-39.89-49.82-8.38-96.88-16.3-141.79-63.85-5-5.26-11.81-7.37-18.32-5.66-7.44 2-12.43 7.88-14.82 17.6-5.6 22.75-2 86.51 13.75 153.82 25.29 108.14 65.65 162.86 95.06 189.73 38 34.69 87.62 53.9 136.93 53.9a186 186 0 0027.77-2.04c41.71-6.32 76.43-27.27 96-57.75-89.49-23.28-165.94-67.55-242-139.16a16 16 0 01-.65-22.65zM467.43 384.19c-16.83-2.59-33.13-5.84-49-9.77a157.71 157.71 0 01-12.13 25.68c-.73 1.25-1.5 2.49-2.29 3.71a584.21 584.21 0 0058.56 12 16 16 0 104.87-31.62z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/library-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/library-outline.svg deleted file mode 100644 index 18aa1c6beef671e98355f5686768e994f9ebe8eb..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/library-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Library</title><rect x="32" y="96" width="64" height="368" rx="16" ry="16" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-linejoin="round" d="M112 224h128M112 400h128" class="ionicon-fill-none ionicon-stroke-width"/><rect x="112" y="160" width="128" height="304" rx="16" ry="16" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><rect x="256" y="48" width="96" height="416" rx="16" ry="16" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M422.46 96.11l-40.4 4.25c-11.12 1.17-19.18 11.57-17.93 23.1l34.92 321.59c1.26 11.53 11.37 20 22.49 18.84l40.4-4.25c11.12-1.17 19.18-11.57 17.93-23.1L445 115c-1.31-11.58-11.42-20.06-22.54-18.89z" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/library-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/library-sharp.svg deleted file mode 100644 index 83c567ca1a674fb625a3981aabe450e07ab89c0f..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/library-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Library</title><path d="M84 480H28a12 12 0 01-12-12V92a12 12 0 0112-12h56a12 12 0 0112 12v376a12 12 0 01-12 12zM240 208v-52a12 12 0 00-12-12H124a12 12 0 00-12 12v52zM112 416v52a12 12 0 0012 12h104a12 12 0 0012-12v-52zM112 240h128v144H112zM340 480h-72a12 12 0 01-12-12V44a12 12 0 0112-12h72a12 12 0 0112 12v424a12 12 0 01-12 12zM369 100.7l30 367.83a12 12 0 0013.45 10.92l72.16-9a12 12 0 0010.47-12.9L465 91.21a12 12 0 00-13.2-10.94l-72.13 7.51A12 12 0 00369 100.7z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/library.svg b/ionic/platforms/android/app/src/main/assets/www/svg/library.svg deleted file mode 100644 index 0be88b0621952a0e7eef7d9e99cf52a78586f250..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/library.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Library</title><path d="M64 480H48a32 32 0 01-32-32V112a32 32 0 0132-32h16a32 32 0 0132 32v336a32 32 0 01-32 32zM240 176a32 32 0 00-32-32h-64a32 32 0 00-32 32v28a4 4 0 004 4h120a4 4 0 004-4zM112 448a32 32 0 0032 32h64a32 32 0 0032-32v-30a2 2 0 00-2-2H114a2 2 0 00-2 2z"/><rect x="112" y="240" width="128" height="144" rx="2" ry="2"/><path d="M320 480h-32a32 32 0 01-32-32V64a32 32 0 0132-32h32a32 32 0 0132 32v384a32 32 0 01-32 32zM495.89 445.45l-32.23-340c-1.48-15.65-16.94-27-34.53-25.31l-31.85 3c-17.59 1.67-30.65 15.71-29.17 31.36l32.23 340c1.48 15.65 16.94 27 34.53 25.31l31.85-3c17.59-1.67 30.65-15.71 29.17-31.36z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/link-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/link-outline.svg deleted file mode 100644 index fc42af43015307b3e0cafb7b7b92adbae4391e51..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/link-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Link</title><path d="M208 352h-64a96 96 0 010-192h64M304 160h64a96 96 0 010 192h-64M163.29 256h187.42" stroke-linecap="round" stroke-linejoin="round" stroke-width="36" class="ionicon-fill-none"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/link-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/link-sharp.svg deleted file mode 100644 index bfdc72dc5ad83557d92badb7e75995e9924978ef..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/link-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Link</title><path d="M200.66 352H144a96 96 0 010-192h55.41M312.59 160H368a96 96 0 010 192h-56.66M169.07 256h175.86" stroke-linecap="square" stroke-linejoin="round" stroke-width="48" class="ionicon-fill-none"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/link.svg b/ionic/platforms/android/app/src/main/assets/www/svg/link.svg deleted file mode 100644 index dd810ac1cb2febe192426807eb9bd55e7d98fc9c..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/link.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Link</title><path d="M200.66 352H144a96 96 0 010-192h55.41M312.59 160H368a96 96 0 010 192h-56.66M169.07 256h175.86" stroke-linecap="round" stroke-linejoin="round" stroke-width="48" class="ionicon-fill-none"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/list-circle-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/list-circle-outline.svg deleted file mode 100644 index 5e8b38453c3cf0e7110f654f6b2d9e3f9b7f86f3..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/list-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>List Circle</title><path stroke-linecap="round" stroke-linejoin="round" d="M224 184h128M224 256h128M224 327h128" class="ionicon-fill-none ionicon-stroke-width"/><path d="M448 258c0-106-86-192-192-192S64 152 64 258s86 192 192 192 192-86 192-192z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="168" cy="184" r="8" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="168" cy="257" r="8" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="168" cy="328" r="8" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/list-circle-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/list-circle-sharp.svg deleted file mode 100644 index 5c20fad514fb1697878bdc5d39a500c2ddbb9f01..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/list-circle-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>List Circle</title><path d="M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm-64 287.5a16 16 0 01-16 16h-16a16 16 0 01-16-16v-16a16 16 0 0116-16h16a16 16 0 0116 16zm0-71a16 16 0 01-16 16h-16a16 16 0 01-16-16v-16a16 16 0 0116-16h16a16 16 0 0116 16zm0-72a16 16 0 01-16 16h-16a16 16 0 01-16-16v-16a16 16 0 0116-16h16a16 16 0 0116 16zm176 151H212.67v-32H368zm0-71H212.67v-32H368zm0-72H212.67v-32H368z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/list-circle.svg b/ionic/platforms/android/app/src/main/assets/www/svg/list-circle.svg deleted file mode 100644 index e05fb1d17d91266b68f5a365e78d346f97897d57..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/list-circle.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>List Circle</title><path d="M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm-88 302a24 24 0 1124-24 24 24 0 01-24 24zm0-71a24 24 0 1124-24 24 24 0 01-24 24zm0-73a24 24 0 1124-24 24 24 0 01-24 24zm184 135H224a16 16 0 010-32h128a16 16 0 010 32zm0-71H224a16 16 0 010-32h128a16 16 0 010 32zm0-72H224a16 16 0 010-32h128a16 16 0 010 32z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/list-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/list-outline.svg deleted file mode 100644 index 19592e820370a1d03722bdb5b57096720314e022..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/list-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>List</title><path stroke-linecap="round" stroke-linejoin="round" d="M160 144h288M160 256h288M160 368h288" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="80" cy="144" r="16" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="80" cy="256" r="16" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="80" cy="368" r="16" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/list-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/list-sharp.svg deleted file mode 100644 index 4363863f2b1b83f412fc23fbe39a7f8cb755f892..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/list-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>List</title><path stroke-linejoin="round" stroke-width="48" d="M144 144h320M144 256h320M144 368h320" class="ionicon-fill-none"/><path stroke-linecap="square" stroke-linejoin="round" d="M64 128h32v32H64zM64 240h32v32H64zM64 352h32v32H64z" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/list.svg b/ionic/platforms/android/app/src/main/assets/www/svg/list.svg deleted file mode 100644 index 40aa5ffaa173dc0b606d28c8303519dd1e3b32ad..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/list.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>List</title><path stroke-linecap="round" stroke-linejoin="round" stroke-width="48" d="M160 144h288M160 256h288M160 368h288" class="ionicon-fill-none"/><circle cx="80" cy="144" r="16" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="80" cy="256" r="16" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="80" cy="368" r="16" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/locate-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/locate-outline.svg deleted file mode 100644 index ba4b5e489a44309590f6a947bad78a27ebd30e07..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/locate-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Locate</title><path stroke-linecap="round" stroke-linejoin="round" stroke-width="48" d="M256 96V56M256 456v-40" class="ionicon-fill-none"/><path d="M256 112a144 144 0 10144 144 144 144 0 00-144-144z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-linejoin="round" stroke-width="48" d="M416 256h40M56 256h40" class="ionicon-fill-none"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/locate-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/locate-sharp.svg deleted file mode 100644 index 5a864e18b8b8018f9f7a4677642da125d41fd52e..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/locate-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Locate</title><path stroke-linecap="square" stroke-linejoin="round" stroke-width="48" d="M256 96V56M256 456v-40M256 112a144 144 0 10144 144 144 144 0 00-144-144zM416 256h40M56 256h40" class="ionicon-fill-none"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/locate.svg b/ionic/platforms/android/app/src/main/assets/www/svg/locate.svg deleted file mode 100644 index f14d7706662ece0bced2baaf34bfdf1aa985ebd6..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/locate.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Locate</title><path stroke-linecap="round" stroke-linejoin="round" stroke-width="48" d="M256 96V56M256 456v-40M256 112a144 144 0 10144 144 144 144 0 00-144-144zM416 256h40M56 256h40" class="ionicon-fill-none"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/location-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/location-outline.svg deleted file mode 100644 index 0c0048c0e2e57e26c8ef12738242680b5edf86d0..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/location-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Location</title><path d="M256 48c-79.5 0-144 61.39-144 137 0 87 96 224.87 131.25 272.49a15.77 15.77 0 0025.5 0C304 409.89 400 272.07 400 185c0-75.61-64.5-137-144-137z" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="256" cy="192" r="48" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/location-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/location-sharp.svg deleted file mode 100644 index e2d2a72b54f509ed085480f180f2beeddf93f424..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/location-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Location</title><path d="M256 32C167.67 32 96 96.51 96 176c0 128 160 304 160 304s160-176 160-304c0-79.49-71.67-144-160-144zm0 224a64 64 0 1164-64 64.07 64.07 0 01-64 64z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/location.svg b/ionic/platforms/android/app/src/main/assets/www/svg/location.svg deleted file mode 100644 index 890e4c052f6a35d3bd54d6ab8935bfd7bd2d29b1..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/location.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Location</title><circle cx="256" cy="192" r="32"/><path d="M256 32c-88.22 0-160 68.65-160 153 0 40.17 18.31 93.59 54.42 158.78 29 52.34 62.55 99.67 80 123.22a31.75 31.75 0 0051.22 0c17.42-23.55 51-70.88 80-123.22C397.69 278.61 416 225.19 416 185c0-84.35-71.78-153-160-153zm0 224a64 64 0 1164-64 64.07 64.07 0 01-64 64z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/lock-closed-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/lock-closed-outline.svg deleted file mode 100644 index ffd1d887ac73f79f76840caa4d5499f1f4b8a79a..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/lock-closed-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Lock Closed</title><path d="M336 208v-95a80 80 0 00-160 0v95" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><rect x="96" y="208" width="320" height="272" rx="48" ry="48" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/lock-closed-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/lock-closed-sharp.svg deleted file mode 100644 index 29d4f2b2bdeace149132e5e11fb237eecaf5ee21..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/lock-closed-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Lock Closed</title><path d="M420 192h-68v-80a96 96 0 10-192 0v80H92a12 12 0 00-12 12v280a12 12 0 0012 12h328a12 12 0 0012-12V204a12 12 0 00-12-12zm-106 0H198v-80.75a58 58 0 11116 0z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/lock-closed.svg b/ionic/platforms/android/app/src/main/assets/www/svg/lock-closed.svg deleted file mode 100644 index 7ca4a37d6494c167f79b53e5e01a7e7e71deb584..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/lock-closed.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Lock Closed</title><path d="M368 192h-16v-80a96 96 0 10-192 0v80h-16a64.07 64.07 0 00-64 64v176a64.07 64.07 0 0064 64h224a64.07 64.07 0 0064-64V256a64.07 64.07 0 00-64-64zm-48 0H192v-80a64 64 0 11128 0z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/lock-open-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/lock-open-outline.svg deleted file mode 100644 index c4e77ea05e49d8544d6b4b28be3bd22f1d4fe1ee..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/lock-open-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Lock Open</title><path d="M336 112a80 80 0 00-160 0v96" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><rect x="96" y="208" width="320" height="272" rx="48" ry="48" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/lock-open-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/lock-open-sharp.svg deleted file mode 100644 index 77eea1606ec13646bb498337751ee10d80ba4064..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/lock-open-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Lock Open</title><path d="M420 192H198v-80.75a58.08 58.08 0 0199.07-41.07A59.4 59.4 0 01314 112h38a96 96 0 10-192 0v80H92a12 12 0 00-12 12v280a12 12 0 0012 12h328a12 12 0 0012-12V204a12 12 0 00-12-12z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/lock-open.svg b/ionic/platforms/android/app/src/main/assets/www/svg/lock-open.svg deleted file mode 100644 index 2527bfd21dfd1de83c96ca6279a6947e18360ff0..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/lock-open.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Lock Open</title><path d="M368 192H192v-80a64 64 0 11128 0 16 16 0 0032 0 96 96 0 10-192 0v80h-16a64.07 64.07 0 00-64 64v176a64.07 64.07 0 0064 64h224a64.07 64.07 0 0064-64V256a64.07 64.07 0 00-64-64z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/log-in-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/log-in-outline.svg deleted file mode 100644 index 1c0ef0f6468b6b61ee559901d9993a48ea4ad5b1..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/log-in-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Log In</title><path d="M192 176v-40a40 40 0 0140-40h160a40 40 0 0140 40v240a40 40 0 01-40 40H240c-22.09 0-48-17.91-48-40v-40" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-linejoin="round" d="M288 336l80-80-80-80M80 256h272" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/log-in-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/log-in-sharp.svg deleted file mode 100644 index 04a230f71c626bea730bb85f707da57aa69040f9..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/log-in-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Log In</title><path d="M432 80H192a16 16 0 00-16 16v144h153.37l-64-64L288 153.37l91.31 91.32a16 16 0 010 22.62L288 358.63 265.37 336l64-64H176v144a16 16 0 0016 16h240a16 16 0 0016-16V96a16 16 0 00-16-16zM64 240h112v32H64z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/log-in.svg b/ionic/platforms/android/app/src/main/assets/www/svg/log-in.svg deleted file mode 100644 index bf57113b848275a549db421f01be6be275245d82..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/log-in.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Log In</title><path d="M392 80H232a56.06 56.06 0 00-56 56v104h153.37l-52.68-52.69a16 16 0 0122.62-22.62l80 80a16 16 0 010 22.62l-80 80a16 16 0 01-22.62-22.62L329.37 272H176v104c0 32.05 33.79 56 64 56h152a56.06 56.06 0 0056-56V136a56.06 56.06 0 00-56-56zM80 240a16 16 0 000 32h96v-32z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/log-out-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/log-out-outline.svg deleted file mode 100644 index 06500c64d5d0f177f2c4cf11c876813c9275f1c4..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/log-out-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Log Out</title><path d="M304 336v40a40 40 0 01-40 40H104a40 40 0 01-40-40V136a40 40 0 0140-40h152c22.09 0 48 17.91 48 40v40M368 336l80-80-80-80M176 256h256" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/log-out-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/log-out-sharp.svg deleted file mode 100644 index efcfda67cc273c9f29ecae4a5ef4f74a14c450f8..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/log-out-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Log Out</title><path d="M160 240h160V96a16 16 0 00-16-16H64a16 16 0 00-16 16v320a16 16 0 0016 16h240a16 16 0 0016-16V272H160zM459.31 244.69L368 153.37 345.37 176l64 64H320v32h89.37l-64 64L368 358.63l91.31-91.32a16 16 0 000-22.62z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/log-out.svg b/ionic/platforms/android/app/src/main/assets/www/svg/log-out.svg deleted file mode 100644 index e49b4cf35cbac286190c192ae478750e4e7fc2a6..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/log-out.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Log Out</title><path d="M160 256a16 16 0 0116-16h144V136c0-32-33.79-56-64-56H104a56.06 56.06 0 00-56 56v240a56.06 56.06 0 0056 56h160a56.06 56.06 0 0056-56V272H176a16 16 0 01-16-16zM459.31 244.69l-80-80a16 16 0 00-22.62 22.62L409.37 240H320v32h89.37l-52.68 52.69a16 16 0 1022.62 22.62l80-80a16 16 0 000-22.62z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/logo-alipay.svg b/ionic/platforms/android/app/src/main/assets/www/svg/logo-alipay.svg deleted file mode 100644 index 76e93409cf44b1c3bb20dec2283d4b79b113f26d..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/logo-alipay.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Logo Alipay</title><path d="M102.41 32C62.38 32 32 64.12 32 103.78v304.45C32 447.86 64.38 480 104.41 480h303.2c40 0 72.39-32.14 72.39-71.77v-3.11c-1.35-.56-115.47-48.57-174.5-76.7-39.82 48.57-91.18 78-144.5 78-90.18 0-120.8-78.22-78.1-129.72 9.31-11.22 25.15-21.94 49.73-28 38.45-9.36 99.64 5.85 157 24.61a309.41 309.41 0 0025.46-61.67H138.34V194h91.13v-31.83H119.09v-17.75h110.38V99s0-7.65 7.82-7.65h44.55v53H391v17.75H281.84V194h89.08a359.41 359.41 0 01-37.72 94.43c27 9.69 49.31 18.88 67.39 24.89 60.32 20 77.23 22.45 79.41 22.7V103.78C480 64.12 447.6 32 407.61 32h-305.2zM152 274.73q-5.81.06-11.67.63c-11.3 1.13-32.5 6.07-44.09 16.23-34.74 30-13.94 84.93 56.37 84.93 40.87 0 81.71-25.9 113.79-67.37-41.36-20-77-34.85-114.4-34.42z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/logo-amazon.svg b/ionic/platforms/android/app/src/main/assets/www/svg/logo-amazon.svg deleted file mode 100644 index 14fc2638c7fc2ff46fe9f29f24436caad96aed45..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/logo-amazon.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Logo Amazon</title><path d="M48.48 378.73a300.52 300.52 0 00152.89 95.92 262.57 262.57 0 00159.3-17.25 225.52 225.52 0 0066.79-47 6.36 6.36 0 00-2-8.53 11.76 11.76 0 00-8-.05 401.92 401.92 0 01-116.55 39.34 358.13 358.13 0 01-127.29-8.83 446.73 446.73 0 01-119.1-60.49 5 5 0 00-6.06 6.9z"/><path d="M387.15 388.44a168.11 168.11 0 0148.94-2.23l.67.13a10 10 0 017.37 12.05A204.71 204.71 0 01429 444.47a2.55 2.55 0 001.66 3.18 2.51 2.51 0 002.23-.37A83.31 83.31 0 00464 382.86a12.44 12.44 0 00-10.22-13.22A95.75 95.75 0 00384.91 384a2.55 2.55 0 00-.57 3.55 2.52 2.52 0 002.81.89zM304.24 324.92a164 164 0 01-28.92 25.3A135.16 135.16 0 01208.63 369a99.49 99.49 0 01-57.49-19.85 97.25 97.25 0 01-27.36-100.28 112.35 112.35 0 0165.3-69.06 367.67 367.67 0 01104.7-15.55V127A37.82 37.82 0 00261 94.72a59.9 59.9 0 00-31.17 4.08 48.89 48.89 0 00-27.13 34.67 12 12 0 01-12.58 6.72l-50.9-4.5a11.38 11.38 0 01-8.38-10.16 103.66 103.66 0 0136.61-63.45A143.86 143.86 0 01257.85 32a146.24 146.24 0 0184.27 27.67 86.82 86.82 0 0130.7 70.22V258.8a84.46 84.46 0 008 31.28l15.87 23.23a13 13 0 010 11.23l-46.99 39.71a12.5 12.5 0 01-12.68-.44 244.84 244.84 0 01-32.78-38.89zm-10.6-116.83a257.68 257.68 0 00-44 2.89A63 63 0 00208 242.54a63 63 0 003.07 54 40.6 40.6 0 0047.11 12.19 78.61 78.61 0 0035.46-55.58v-45.06"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/logo-amplify.svg b/ionic/platforms/android/app/src/main/assets/www/svg/logo-amplify.svg deleted file mode 100644 index c62b0df207fb406f7c70f4da480b1602d6756bf3..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/logo-amplify.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Logo Amplify</title><path d="M112.31 268l40.36-68.69 34.65 59-67.54 115h135L289.31 432H16zm58.57-99.76l33.27-56.67L392.44 432h-66.68zM222.67 80h66.59L496 432h-66.68z" fill-rule="evenodd"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/logo-android.svg b/ionic/platforms/android/app/src/main/assets/www/svg/logo-android.svg deleted file mode 100644 index f5baad0a3dc3a23a71aaf217dbd25d155371ab57..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/logo-android.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Logo Android</title><path d="M380.91 199l42.47-73.57a8.63 8.63 0 00-3.12-11.76 8.52 8.52 0 00-11.71 3.12l-43 74.52c-32.83-15-69.78-23.35-109.52-23.35s-76.69 8.36-109.52 23.35l-43-74.52a8.6 8.6 0 10-14.88 8.64L131 199C57.8 238.64 8.19 312.77 0 399.55h512c-8.19-86.78-57.8-160.91-131.09-200.55zM138.45 327.65a21.46 21.46 0 1121.46-21.46 21.47 21.47 0 01-21.46 21.46zm235 0A21.46 21.46 0 11395 306.19a21.47 21.47 0 01-21.51 21.46z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/logo-angular.svg b/ionic/platforms/android/app/src/main/assets/www/svg/logo-angular.svg deleted file mode 100644 index 3a0f9945aefdf09a2b0004ffe0d5f75b63da8f35..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/logo-angular.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Logo Angular</title><path d="M213.57 256h84.85l-42.43-89.36L213.57 256z"/><path d="M256 32L32 112l46.12 272L256 480l177.75-96L480 112zm88 320l-26.59-56H194.58L168 352h-40L256 72l128 280z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/logo-apple-appstore.svg b/ionic/platforms/android/app/src/main/assets/www/svg/logo-apple-appstore.svg deleted file mode 100644 index 4fd2187b8225a523d77b88d501365a1f0e5b7efd..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/logo-apple-appstore.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Logo Apple Appstore</title><path d="M256 32C132.26 32 32 132.26 32 256s100.26 224 224 224 224-100.26 224-224S379.74 32 256 32zm-85 321.89a15.48 15.48 0 01-13.46 7.65 14.91 14.91 0 01-7.86-2.16 15.48 15.48 0 01-5.6-21.21l15.29-25.42a8.73 8.73 0 017.54-4.3h2.26c11.09 0 18.85 6.67 21.11 13.13zm129.45-50l-100.13.11h-66.55a15.46 15.46 0 01-15.51-16.15c.32-8.4 7.65-14.76 16-14.76h48.24l57.19-97.35-18.52-31.55C217 137 218.85 127.52 226 123a15.57 15.57 0 0121.87 5.17l9.9 16.91h.11l9.91-16.91A15.58 15.58 0 01289.6 123c7.11 4.52 8.94 14 4.74 21.22l-18.52 31.55-18 30.69-39.09 66.66v.11h57.61c7.22 0 16.27 3.88 19.93 10.12l.32.65c3.23 5.49 5.06 9.26 5.06 14.75a13.82 13.82 0 01-1.17 5.17zm77.75.11h-27.11v.11l19.82 33.71a15.8 15.8 0 01-5.17 21.53 15.53 15.53 0 01-8.08 2.27A15.71 15.71 0 01344.2 354l-29.29-49.86-18.2-31L273.23 233a38.35 38.35 0 01-.65-38c4.64-8.19 8.19-10.34 8.19-10.34L333 273h44.91c8.4 0 15.61 6.46 16 14.75A15.65 15.65 0 01378.23 304z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/logo-apple.svg b/ionic/platforms/android/app/src/main/assets/www/svg/logo-apple.svg deleted file mode 100644 index 0bf0bf189a6599a77f618888f32c5a925c9986ab..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/logo-apple.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Logo Apple</title><path d="M349.13 136.86c-40.32 0-57.36 19.24-85.44 19.24-28.79 0-50.75-19.1-85.69-19.1-34.2 0-70.67 20.88-93.83 56.45-32.52 50.16-27 144.63 25.67 225.11 18.84 28.81 44 61.12 77 61.47h.6c28.68 0 37.2-18.78 76.67-19h.6c38.88 0 46.68 18.89 75.24 18.89h.6c33-.35 59.51-36.15 78.35-64.85 13.56-20.64 18.6-31 29-54.35-76.19-28.92-88.43-136.93-13.08-178.34-23-28.8-55.32-45.48-85.79-45.48z"/><path d="M340.25 32c-24 1.63-52 16.91-68.4 36.86-14.88 18.08-27.12 44.9-22.32 70.91h1.92c25.56 0 51.72-15.39 67-35.11 14.72-18.77 25.88-45.37 21.8-72.66z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/logo-behance.svg b/ionic/platforms/android/app/src/main/assets/www/svg/logo-behance.svg deleted file mode 100644 index 9898b872eefdbef707aa3b701348ee331ddcefa3..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/logo-behance.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Logo Behance</title><path d="M344.1 233.6c-28.9 0-32.9 28.8-32.9 28.8h61.4s.4-28.8-28.5-28.8zM204.8 262.4h-54.4v50h51.7c7.8-.2 22.4-2.4 22.4-24.3 0-26-19.7-25.7-19.7-25.7z"/><path d="M256 32C132.3 32 32 132.3 32 256s100.3 224 224 224 224-100.3 224-224S379.7 32 256 32zm47.2 137.6h77.1v23h-77.1v-23zm-39 120.8c0 57-59.4 55.2-59.4 55.2h-97.2v-187h97.2c29.6 0 52.9 16.3 52.9 49.8S229.2 244 229.2 244c37.6 0 35 46.4 35 46.4zm144.2-3.1h-96.9c0 34.7 32.9 32.5 32.9 32.5 31.1 0 30-20.1 30-20.1h32.9c0 53.4-64 49.7-64 49.7-76.7 0-71.8-71.5-71.8-71.5s-.1-71.8 71.8-71.8c75.7.1 65.1 81.2 65.1 81.2z"/><path d="M218 211.3c0-19.4-13.2-19.4-13.2-19.4h-54.4v41.7h51c8.8 0 16.6-2.9 16.6-22.3z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/logo-bitbucket.svg b/ionic/platforms/android/app/src/main/assets/www/svg/logo-bitbucket.svg deleted file mode 100644 index 73aa8efd28dcc4e13c01c3c82ad7584374074743..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/logo-bitbucket.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Logo Bitbucket</title><path d="M483.13 32.23a19.65 19.65 0 00-2.54-.23h-449C23 31.88 16.12 38.88 16 47.75a11.44 11.44 0 00.23 2.8l65.3 411.25a22.52 22.52 0 007 12.95A20 20 0 00102 480h313.18a15.45 15.45 0 0015.34-13.42l38.88-247.91H325.19l-18.46 112H205.21l-25.73-148h295.58l20.76-132c1.27-8.75-4.38-17.04-12.69-18.44z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/logo-bitcoin.svg b/ionic/platforms/android/app/src/main/assets/www/svg/logo-bitcoin.svg deleted file mode 100644 index ba4aa44cebb4da1abaa59e7af03c9c1d10b5e042..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/logo-bitcoin.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Logo Bitcoin</title><path d="M410.47 279.2c-5-11.5-12.7-21.6-28.1-30.1a98.15 98.15 0 00-25.4-10 62.22 62.22 0 0016.3-11 56.37 56.37 0 0015.6-23.3 77.11 77.11 0 003.5-28.2c-1.1-16.8-4.4-33.1-13.2-44.8s-21.2-20.7-37.6-27c-12.6-4.8-25.5-7.8-45.5-8.9V32h-40v64h-32V32h-41v64H96v48h27.87c8.7 0 14.6.8 17.6 2.3a13.22 13.22 0 016.5 6c1.3 2.5 1.9 8.4 1.9 17.5V343c0 9-.6 14.8-1.9 17.4s-2 4.9-5.1 6.3-3.2 1.3-11.8 1.3h-26.4L96 416h87v64h41v-64h32v64h40v-64.4c26-1.3 44.5-4.7 59.4-10.3 19.3-7.2 34.1-17.7 44.7-31.5s14-34.9 14.93-51.2c.67-14.5-.03-33.2-4.56-43.4zM224 150h32v74h-32zm0 212v-90h32v90zm72-208.1c6 2.5 9.9 7.5 13.8 12.7 4.3 5.7 6.5 13.3 6.5 21.4 0 7.8-2.9 14.5-7.5 20.5-3.8 4.9-6.8 8.3-12.8 11.1zm28.8 186.7c-7.8 6.9-12.3 10.1-22.1 13.8a56.06 56.06 0 01-6.7 1.9v-82.8a40.74 40.74 0 0111.3 3.4c7.8 3.3 15.2 6.9 19.8 13.2a43.82 43.82 0 018 24.7c-.03 10.9-2.83 19.2-10.33 25.8z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/logo-buffer.svg b/ionic/platforms/android/app/src/main/assets/www/svg/logo-buffer.svg deleted file mode 100644 index f96b364f6cbd8f1d372b9ad2ec2071af33da96c2..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/logo-buffer.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Logo Buffer</title><path d="M39.93 149.25l197.4 95.32c5.14 2.45 12 3.73 18.79 3.73s13.65-1.28 18.78-3.73l197.4-95.32c10.38-5 10.38-13.18 0-18.2L274.9 35.73c-5.13-2.45-12-3.73-18.78-3.73s-13.65 1.28-18.79 3.73l-197.4 95.32c-10.38 5.02-10.38 13.18 0 18.2z"/><path d="M472.3 246.9s-36.05-17.38-40.83-19.72-6.07-2.21-11.09.12-145.6 70.23-145.6 70.23a45.71 45.71 0 01-18.78 3.74c-6.77 0-13.65-1.29-18.78-3.74 0 0-136.85-66-143.27-69.18C87 225 85 225 78.67 228l-39 18.78c-10.38 5-10.38 13.19 0 18.2L237.1 360.3c5.13 2.45 12 3.73 18.78 3.73s13.65-1.28 18.79-3.73l197.4-95.3c10.61-4.92 10.61-13.08.23-18.1z"/><path d="M472.3 362.75s-36.05-17.38-40.83-19.75-6.07-2.21-11.09.12S274.9 413.5 274.9 413.5a45.74 45.74 0 01-18.78 3.73c-6.77 0-13.65-1.28-18.79-3.73 0 0-136.85-66-143.26-69.18-7-3.39-9-3.39-15.29-.35l-39 18.78c-10.39 5-10.39 13.18 0 18.2l197.4 95.32c5.13 2.56 12 3.73 18.78 3.73s13.65-1.28 18.78-3.73L472.18 381c10.5-5.07 10.5-13.23.12-18.25z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/logo-capacitor.svg b/ionic/platforms/android/app/src/main/assets/www/svg/logo-capacitor.svg deleted file mode 100644 index 7fbc5c903acf426eb8fcab061ad6c0c14ea409b6..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/logo-capacitor.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Logo Capacitor</title><path d="M480 101.09L372.37 208.72l106.86 107.06-69.3 69.3-283.22-283.23L196 32.54l107.07 106.88L410.67 32zM32.55 196l69.3-69.31 283.22 283.24-69.3 69.3-107-106.87L101.08 480 32 410.67l107.42-107.61z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/logo-chrome.svg b/ionic/platforms/android/app/src/main/assets/www/svg/logo-chrome.svg deleted file mode 100644 index 504f65a38cfe339197f866000cd02c89d2228e61..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/logo-chrome.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Logo Chrome</title><path d="M188.8 255.93a67.2 67.2 0 1067.2-67.18 67.38 67.38 0 00-67.2 67.18z"/><path d="M476.75 217.79v.05a206.63 206.63 0 00-7-28.84h-.11a202.16 202.16 0 017.07 29 203.5 203.5 0 00-7.07-29h-155.4c19.05 17 31.36 40.17 31.36 67.05a86.55 86.55 0 01-12.31 44.73L231 478.45a2.44 2.44 0 010 .27v.28-.26a224 224 0 0025 1.26c6.84 0 13.61-.39 20.3-1a222.91 222.91 0 0029.78-4.74C405.68 451.52 480 362.4 480 255.94a225.25 225.25 0 00-3.25-38.15z"/><path d="M256 345.5c-33.6 0-61.6-17.91-77.29-44.79L76 123.05l-.14-.24A224 224 0 00207.4 474.55v-.05l77.69-134.6a84.13 84.13 0 01-29.09 5.6z"/><path d="M91.29 104.57l77.35 133.25A89.19 89.19 0 01256 166h205.17a246.51 246.51 0 00-25.78-43.94l.12.08A245.26 245.26 0 01461.17 166h.17a245.91 245.91 0 00-25.66-44 2.63 2.63 0 01-.35-.26 223.93 223.93 0 00-344.19-17.4l.14.24z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/logo-closed-captioning.svg b/ionic/platforms/android/app/src/main/assets/www/svg/logo-closed-captioning.svg deleted file mode 100644 index dc73cbca2a7140a260b6362871321db78ceed835..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/logo-closed-captioning.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Logo Closed Captioning</title><path d="M0 80v352h512V80zm464 175.78c0 25.74-1.6 45.32-3.77 77.22s-19.2 54.34-59.09 57.86-95.77 3.85-145.14 3.74c-49 .11-105.14-.11-145.14-3.74s-56.8-26-59.09-57.86S48 281.52 48 255.78s.11-42.46 3.77-77.22 23-54.12 59.09-57.64 98.28-3.52 145.14-3.52 109 0 145.14 3.52 55.43 23 59.09 57.64 3.77 51.59 3.77 77.22z"/><path d="M367.57 282.84v.77c0 17.93-11.11 28.49-25.95 28.49s-24.84-11.88-26.27-28.49c0 0-1.31-8.69-1.31-26.29a229.5 229.5 0 011.53-28.6c2.64-18.7 11.77-28.49 26.6-28.49s26.49 12.76 26.49 32.12v.55h49.58c0-24.09-6.05-45.76-18.25-59.4S369.76 153 345.8 153a108.06 108.06 0 00-33 4.73 58.82 58.82 0 00-25.94 16.61c-7.23 7.96-12.86 18.52-16.86 31.83s-6 30-6 50.27c0 19.8 1.65 36.3 4.84 49.61s8 23.87 14.4 31.79a49.76 49.76 0 0024 16.5q14.5 4.62 34 4.62c27.47 0 47.26-7 59.13-20.57S418 305.06 418 279.1h-50.65c.22 0 .22 2.75.22 3.74zM197.3 282.84v.77c0 17.93-11.1 28.49-25.94 28.49s-24.84-11.88-26.27-28.49c0 0-1.31-8.69-1.31-26.29a229.5 229.5 0 011.53-28.6c2.64-18.7 11.77-28.49 26.6-28.49S198.4 213 198.4 232.35v.55H248c0-24.09-6-45.76-18.25-59.4S199.5 153 175.54 153a108.06 108.06 0 00-33 4.73 58.82 58.82 0 00-25.94 16.61c-7.26 7.92-12.86 18.48-16.93 31.79s-6 30-6 50.27c0 19.8 1.65 36.3 4.84 49.61s8 23.87 14.4 31.79a49.76 49.76 0 0024 16.5q14.51 4.62 34 4.62c27.48 0 47.27-7 59.14-20.57s17.81-33.33 17.81-59.29h-50.78c.22.04.22 2.79.22 3.78z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/logo-codepen.svg b/ionic/platforms/android/app/src/main/assets/www/svg/logo-codepen.svg deleted file mode 100644 index 703a2bc918d4101e90fee87d074494fff542819a..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/logo-codepen.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Logo Codepen</title><path d="M241.24 303.94c-15.32-10.36-30.74-20.57-46.06-30.93-2-1.38-3.43-1.48-5.5 0l-38.88 26.12C182 319.9 244 361.32 244 361.32v-53.79c0-1.22-1.55-2.78-2.76-3.59zM195.09 240.67q23.19-15.24 46.11-30.86a7.54 7.54 0 002.8-5.34v-51.7s-62 41.12-93.26 61.94c13.7 9.16 26.67 17.91 39.78 26.44 1.02.66 3.4.28 4.57-.48zM269.84 209.35q23.71 16.07 47.63 31.82a4.3 4.3 0 003.83 0l39.76-26.47L268 152.48v53.35a4.79 4.79 0 001.84 3.52zM258.11 230.37a5.27 5.27 0 00-4.74.17c-4.82 3-9.47 6.2-14.17 9.35-8.25 5.53-25.35 17-25.35 17l38.84 25.86a6.18 6.18 0 006.26.11l39-26s-34.07-22.66-39.84-26.49zM141 237.12v39.61l29.62-19.84L141 237.12z"/><path d="M256 32C132.29 32 32 132.29 32 256s100.29 224 224 224 224-100.29 224-224S379.71 32 256 32zm139 265c0 5.78-2.65 9.86-7.51 13.09q-61.71 41-123.29 82.19c-5.85 3.92-11.17 3.75-17-.14q-61.17-41-122.63-81.67c-5.11-3.39-7.59-7.56-7.59-13.73V217c0-6.14 2.52-10.34 7.62-13.72 40.91-27.13 81.94-54.36 122.73-81.68 5.82-3.89 11.09-4 16.94-.09q61.54 41.21 123.26 82.19c4.68 3.11 7.45 6.95 7.45 12.66z"/><path d="M316.25 273.23q-22.59 15.34-45.39 30.34c-2.41 1.58-2.89 3.31-2.86 6.19v51.34l93-62-38.53-25.88c-2.3-1.61-3.89-1.57-6.22.01zM370 276.68v-39.62l-29.59 19.87L370 276.68z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/logo-css3.svg b/ionic/platforms/android/app/src/main/assets/www/svg/logo-css3.svg deleted file mode 100644 index 02ae41572f0ebcbe0a1e02b70bd490f757f3b0eb..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/logo-css3.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Logo Css3</title><path d="M64 32l35 403.22L255.77 480 413 435.15 448 32zm290.68 334.9L256.07 395l-98.46-28.24-6.75-77.76h48.26l3.43 39.56 53.59 15.16.13.28 53.47-14.85 5.64-64.15H203l-4-50h120.65l4.35-51H140l-4-49h240.58z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/logo-designernews.svg b/ionic/platforms/android/app/src/main/assets/www/svg/logo-designernews.svg deleted file mode 100644 index a84b0b79b7df660363489f9059a0a2d55b96dbe1..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/logo-designernews.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Logo Designernews</title><path d="M295.31 122.8L222.86 64l72.68 122.64-.23-63.84z"/><path d="M339.43 64v195.6h-41.6L225.6 141.28l1.94 118.32h-45.83V131.2L139.09 96c1.14 1.44 2.28 2.88 3.31 4.44 11.43 16.68 17.14 36.6 17.14 60.6 0 59-35 98.52-87.88 98.52H0v.48L228.11 448H512V205.72z"/><path d="M111.89 162.52c0-34.8-16.23-54.12-45.38-54.12H44.57v106.8h21.72c29.71 0 45.6-18.48 45.6-52.68z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/logo-deviantart.svg b/ionic/platforms/android/app/src/main/assets/www/svg/logo-deviantart.svg deleted file mode 100644 index d9bca80fa6890fd159d979142442a1d5d4ff7448..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/logo-deviantart.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Logo Deviantart</title><path d="M408 103.28V16h-89.31l-8.9 8.78-42.15 78.48-13.25 8.74H104v119.85h82.68l7.36 8.71L104 408.72V496h89.3l8.91-8.79 42.14-78.48 13.26-8.73H408V280.13h-82.68l-7.36-8.75L408 103.28z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/logo-discord.svg b/ionic/platforms/android/app/src/main/assets/www/svg/logo-discord.svg deleted file mode 100644 index c2405759a06e1da3ab3eab00d8336f6ccfdb5c50..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/logo-discord.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Logo Discord</title><path d="M464 66.52A50 50 0 00414.12 17L97.64 16A49.65 49.65 0 0048 65.52V392c0 27.3 22.28 48 49.64 48H368l-13-44 109 100zM324.65 329.81s-8.72-10.39-16-19.32C340.39 301.55 352.5 282 352.5 282a139 139 0 01-27.85 14.25 173.31 173.31 0 01-35.11 10.39 170.05 170.05 0 01-62.72-.24 184.45 184.45 0 01-35.59-10.4 141.46 141.46 0 01-17.68-8.21c-.73-.48-1.45-.72-2.18-1.21-.49-.24-.73-.48-1-.48-4.36-2.42-6.78-4.11-6.78-4.11s11.62 19.09 42.38 28.26c-7.27 9.18-16.23 19.81-16.23 19.81-53.51-1.69-73.85-36.47-73.85-36.47 0-77.06 34.87-139.62 34.87-139.62 34.87-25.85 67.8-25.12 67.8-25.12l2.42 2.9c-43.59 12.32-63.44 31.4-63.44 31.4s5.32-2.9 14.28-6.77c25.91-11.35 46.5-14.25 55-15.21a24 24 0 014.12-.49 205.62 205.62 0 0148.91-.48 201.62 201.62 0 0172.89 22.95s-19.13-18.15-60.3-30.45l3.39-3.86s33.17-.73 67.81 25.16c0 0 34.87 62.56 34.87 139.62 0-.28-20.35 34.5-73.86 36.19z"/><path d="M212.05 218c-13.8 0-24.7 11.84-24.7 26.57s11.14 26.57 24.7 26.57c13.8 0 24.7-11.83 24.7-26.57.25-14.76-10.9-26.57-24.7-26.57zM300.43 218c-13.8 0-24.7 11.84-24.7 26.57s11.14 26.57 24.7 26.57c13.81 0 24.7-11.83 24.7-26.57S314 218 300.43 218z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/logo-docker.svg b/ionic/platforms/android/app/src/main/assets/www/svg/logo-docker.svg deleted file mode 100644 index 8b294bdb49ced02a71117a3dc5c0c42dfc84f6d5..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/logo-docker.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Logo Docker</title><path d="M507 211.16c-1.42-1.19-14.25-10.94-41.79-10.94a132.55 132.55 0 00-21.61 1.9c-5.22-36.4-35.38-54-36.57-55l-7.36-4.28-4.75 6.9a101.65 101.65 0 00-13.06 30.45c-5 20.7-1.9 40.2 8.55 56.85-12.59 7.14-33 8.8-37.28 9H15.94A15.93 15.93 0 000 262.07a241.25 241.25 0 0014.75 86.83C26.39 379.35 43.72 402 66 415.74 91.22 431.2 132.3 440 178.6 440a344.23 344.23 0 0062.45-5.71 257.44 257.44 0 0081.69-29.73 223.55 223.55 0 0055.57-45.67c26.83-30.21 42.74-64 54.38-94h4.75c29.21 0 47.26-11.66 57.23-21.65a63.31 63.31 0 0015.2-22.36l2.14-6.18z"/><path d="M47.29 236.37H92.4a4 4 0 004-4v-40.48a4 4 0 00-4-4H47.29a4 4 0 00-4 4v40.44a4.16 4.16 0 004 4M109.5 236.37h45.12a4 4 0 004-4v-40.48a4 4 0 00-4-4H109.5a4 4 0 00-4 4v40.44a4.16 4.16 0 004 4M172.9 236.37H218a4 4 0 004-4v-40.48a4 4 0 00-4-4h-45.1a4 4 0 00-4 4v40.44a3.87 3.87 0 004 4M235.36 236.37h45.12a4 4 0 004-4v-40.48a4 4 0 00-4-4h-45.12a4 4 0 00-4 4v40.44a4 4 0 004 4M109.5 178.57h45.12a4.16 4.16 0 004-4v-40.48a4 4 0 00-4-4H109.5a4 4 0 00-4 4v40.44a4.34 4.34 0 004 4M172.9 178.57H218a4.16 4.16 0 004-4v-40.48a4 4 0 00-4-4h-45.1a4 4 0 00-4 4v40.44a4 4 0 004 4M235.36 178.57h45.12a4.16 4.16 0 004-4v-40.48a4.16 4.16 0 00-4-4h-45.12a4 4 0 00-4 4v40.44a4.16 4.16 0 004 4M235.36 120.53h45.12a4 4 0 004-4V76a4.16 4.16 0 00-4-4h-45.12a4 4 0 00-4 4v40.44a4.17 4.17 0 004 4M298.28 236.37h45.12a4 4 0 004-4v-40.48a4 4 0 00-4-4h-45.12a4 4 0 00-4 4v40.44a4.16 4.16 0 004 4"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/logo-dribbble.svg b/ionic/platforms/android/app/src/main/assets/www/svg/logo-dribbble.svg deleted file mode 100644 index 1734d1a8d9fcd0285ca5183519bef6dc2cdfeaa7..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/logo-dribbble.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Logo Dribbble</title><path d="M256 32C132.33 32 32 132.33 32 256s100.33 224 224 224 224-100.22 224-224S379.67 32 256 32zm142.22 103.25a186.36 186.36 0 0144 108.38c-40.37-2.1-88.67-2.1-127.4 1.52-4.9-12.37-9.92-24.5-15.4-36.17 44.66-19.36 79.08-44.8 98.8-73.73zM256 69.33a185.81 185.81 0 01119.12 42.94c-20.3 25.66-52.15 48-91.82 64.86C261.6 137 236.63 102.47 210 75.28a187.51 187.51 0 0146-5.95zm-84.47 20.42c26.95 26.83 52.27 61 74.44 101C203.85 203.62 155.55 211 104 211c-9.8 0-19.36-.35-28.81-.94a186.78 186.78 0 0196.34-120.31zM69.68 247.13c10.62.47 21.35.7 32.2.59 58.8-.7 113.52-9.92 160.54-25q6.65 13.83 12.6 28.35a115.43 115.43 0 00-16.69 5c-64.28 27-114.91 70.51-142.33 123.13A186 186 0 0169.33 256c0-3 .12-5.95.35-8.87zM256 442.67a185.57 185.57 0 01-114.45-39.32c24.85-49.23 69.18-90 125.07-115.27 5.25-2.45 12.25-4.43 20.3-6.18q10 27.64 17.85 57.4A678 678 0 01322 430.42a185.06 185.06 0 01-66 12.25zm100.92-29.75a672.61 672.61 0 00-17.39-92.05c-4-15.17-8.51-29.87-13.41-44.22 36.63-3 80.5-2.57 115.38 0a186.5 186.5 0 01-84.58 136.27z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/logo-dropbox.svg b/ionic/platforms/android/app/src/main/assets/www/svg/logo-dropbox.svg deleted file mode 100644 index 87097a8702b12b64e236394a60505ed939d94fb9..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/logo-dropbox.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Logo Dropbox</title><path d="M256.32 126.24l-120.16 78.25 120.16 78.24L136.16 361 16 282.08l120.16-78.24L16 126.24 136.16 48zm-120.8 259.52l120.16-78.25 120.16 78.25L255.68 464zm120.8-103.68l120.16-78.24-120.16-77.6L375.84 48 496 126.24l-120.16 78.25L496 282.73 375.84 361z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/logo-edge.svg b/ionic/platforms/android/app/src/main/assets/www/svg/logo-edge.svg deleted file mode 100644 index 22b98214144e87f393edc9d1b981d7eaae1ba4d9..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/logo-edge.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Logo Edge</title><path d="M255.5 15c-132 0-240 108-240 240s108 240 240 240c85.4 0 160.8-45.2 203.3-112.9a6.87 6.87 0 00-9.1-9.7 108.64 108.64 0 01-18.4 8.6c-36.8 12.6-57.1 13.1-82.1 12-27.9-1.2-61.9-10.8-85.8-25s-43.5-34.6-54.1-52.3-17-39.9-14.1-68.3c2.9-29 29.4-52.6 60.4-52.6 33.5 0 60.8 26.6 60.8 60.1 0 17-8.1 31.7-18.5 43.5-2.3 2.1-7.6 9.7 5.8 20 15.9 12.2 51.6 18 79.9 16.6s59.1-12.6 80.2-34.8c16.8-17.7 31.8-46.1 31.8-77.4C495.5 97.7 379.5 15 255.5 15z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/logo-electron.svg b/ionic/platforms/android/app/src/main/assets/www/svg/logo-electron.svg deleted file mode 100644 index 6b2aad8955cefe8c43af1b79fe3417b577e8defc..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/logo-electron.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Logo Electron</title><path d="M86.76 255a9.89 9.89 0 004.87-1.29 9.82 9.82 0 003.65-13.43c-16.46-28.56-17.81-52.12-7.45-70 14.26-24.57 53.61-33.65 105.27-24.29a9.86 9.86 0 0011.45-7.9 9.84 9.84 0 00-7.93-11.44c-29.19-5.28-56-5.18-77.39.3-22.3 5.71-39 17.28-48.45 33.48-14 24.19-12.7 54.73 7.42 89.62a9.85 9.85 0 008.56 4.95zM361.61 143.73c32.24.42 52.61 9.31 62.79 26.86 14.21 24.48 2.52 62.81-31.27 102.52a9.82 9.82 0 007.51 16.18 9.88 9.88 0 007.52-3.46c19.12-22.47 32.35-45.54 38.25-66.71 6.14-22 4.43-42.21-5-58.38-13.8-23.78-40.13-36.15-79.59-36.67h-.14a9.83 9.83 0 00-.12 19.66zM326.47 414.89a9.88 9.88 0 00-13.5 3.35c-16.41 27.15-36.57 42.1-56.77 42.1-28.49 0-56-29.31-73.73-78.42a9.87 9.87 0 00-12.59-5.92 9.83 9.83 0 00-6 12.58c10 27.77 23.47 50.75 39 66.46 16.11 16.34 34.55 25 53.32 25 27.38 0 53.54-18.33 73.65-51.61a9.81 9.81 0 00-3.38-13.5zM431.7 338.54a32.14 32.14 0 00-29.9 44.33c-41.8 19.5-119.8 4.79-191.87-36.62-32.91-18.9-62.16-41.86-84.6-66.39a9.9 9.9 0 00-13.91-.65 9.8 9.8 0 00-.65 13.9c23.79 26 54.68 50.28 89.33 70.18 40.28 23.13 82.27 38.63 121.43 44.81a225.54 225.54 0 0035 2.91c23.12 0 43-4.3 58.51-12.79a32.2 32.2 0 1016.7-59.68zm0 44.66a12.6 12.6 0 01-7.82-2.72 10 10 0 00-2.2-2.21 12.61 12.61 0 1110 4.93z"/><path d="M82.09 338.59c.57-21.26 12.41-47 33.68-73.16 23.19-28.45 56.69-56 94.34-77.65 33.25-19.1 65.2-31.9 98.07-38.91a9.83 9.83 0 10-4.12-19.22c-34.85 7.43-68.78 21-103.79 41.09C116.09 219.09 59.9 289.88 62.46 343.9a32.32 32.32 0 1019.63-5.31zM80.3 383.2a12.5 12.5 0 1112.59-12.5 12.56 12.56 0 01-12.59 12.5z"/><path d="M256.2 96.32a32.23 32.23 0 0026.53-13.81c17.89 11.69 34 35 45.81 66.12 13 34.39 19.84 75.38 19.84 118.54 0 37.18-5.19 72.35-15 103.6a9.72 9.72 0 00.66 7.49 9.82 9.82 0 005.8 4.84 9.89 9.89 0 0012.34-6.44c10.42-33.14 15.93-70.34 15.93-109.49 0-47.17-7.77-91.77-22.47-129-14.41-36.48-34.13-62.4-57.14-75.16a32.3 32.3 0 10-32.3 33.31zm0-44.66a12.5 12.5 0 11-12.59 12.5 12.56 12.56 0 0112.59-12.5zM251 243.36a24.35 24.35 0 005.16 48.16 24.68 24.68 0 005.16-.55A24.36 24.36 0 10251 243.36z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/logo-euro.svg b/ionic/platforms/android/app/src/main/assets/www/svg/logo-euro.svg deleted file mode 100644 index fdbc6bcc855be8ea8d253d861ebc24b3c4eb2f0b..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/logo-euro.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Logo Euro</title><path d="M231.8 272v-48H376l8-48H231.8v-8.12c0-38.69 16.47-62.56 87.18-62.56 28.89 0 61.45 2.69 102.5 9.42l10.52-70A508.54 508.54 0 00315.46 32C189.26 32 135 76.4 135 158.46V176H80v48h55v48H80v48h55v33.54C135 435.6 189.23 480 315.43 480a507.76 507.76 0 00116.44-12.78l-10.58-70c-41.05 6.73-73.46 9.42-102.35 9.42-70.7 0-87.14-20.18-87.14-67.94V320h128.47l7.87-48z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/logo-facebook.svg b/ionic/platforms/android/app/src/main/assets/www/svg/logo-facebook.svg deleted file mode 100644 index 5f03ae8e44a8469d0c76532ba24bc027e622aebc..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/logo-facebook.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Logo Facebook</title><path d="M480 257.35c0-123.7-100.3-224-224-224s-224 100.3-224 224c0 111.8 81.9 204.47 189 221.29V322.12h-56.89v-64.77H221V208c0-56.13 33.45-87.16 84.61-87.16 24.51 0 50.15 4.38 50.15 4.38v55.13H327.5c-27.81 0-36.51 17.26-36.51 35v42h62.12l-9.92 64.77H291v156.54c107.1-16.81 189-109.48 189-221.31z" fill-rule="evenodd"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/logo-figma.svg b/ionic/platforms/android/app/src/main/assets/www/svg/logo-figma.svg deleted file mode 100644 index 2f74fb30e9f8de69887a9cf9b3e265621d8e6666..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/logo-figma.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Logo Figma</title><path d="M336 176a80 80 0 000-160H176a80 80 0 000 160 80 80 0 000 160 80 80 0 1080 80V176z"/><circle cx="336" cy="256" r="80"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/logo-firebase.svg b/ionic/platforms/android/app/src/main/assets/www/svg/logo-firebase.svg deleted file mode 100644 index 46aa64431c56bb8c23c363773b3f0a895ce0e812..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/logo-firebase.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Logo Firebase</title><path d="M93.19 329.38l47.45-304.07c1.64-10.37 15.55-12.82 20.46-3.55l51 95.45zM432 400l-46.74-276.79a11 11 0 00-18.54-6L80 400l159.36 91.91a33.18 33.18 0 0031.91 0zM302.36 158.93l-36.54-69.54a10.86 10.86 0 00-19.36 0L85.83 375.74z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/logo-firefox.svg b/ionic/platforms/android/app/src/main/assets/www/svg/logo-firefox.svg deleted file mode 100644 index 6ec90bd183b88613b68805c7e880ce75704d10ae..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/logo-firefox.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Logo Firefox</title><path d="M471.46 194.62v-.07c-.22-.76-.45-1.52-.68-2.28-.05-.19-.11-.38-.17-.56-.43-1.44-.87-2.88-1.33-4.31l-.06-.2a223.24 223.24 0 00-10-25.56 191.77 191.77 0 00-12.9-23.8 225.15 225.15 0 00-74.74-73.74A222.9 222.9 0 00256 32c-7 0-14 .34-20.82 1-24.12 2.54-64.78 11.21-97.77 40.18C257.5 11.86 417.94 85.7 404.29 223c-4.86 49-46.46 82.67-85.19 88.35a73.73 73.73 0 01-20.8.21c-94.59-13.15-88.8-90.68-60.06-123.83-38-.24-67.47 46.79-53.15 93-32.95-61.18.35-157 70.93-186-82.95-12-160.71 28.2-185.7 98.07A330.23 330.23 0 0188.07 118s-45.22 35.74-54.44 110.9c-.14 1.16-.27 2.32-.39 3.49-.05.4-.09.8-.13 1.21q-.53 5.25-.8 10.57v.81c-.07 1.48-.13 3-.17 4.46v1.25c0 1.76-.07 3.52-.07 5.29 0 123.71 100.29 224 224 224S480 379.71 480 256a224 224 0 00-8.54-61.38z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/logo-flickr.svg b/ionic/platforms/android/app/src/main/assets/www/svg/logo-flickr.svg deleted file mode 100644 index 256039fd2d82f8b8e27871ca30a9efbbd702c958..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/logo-flickr.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Logo Flickr</title><path d="M256 32C132.8 32 32 132.8 32 256s100.8 224 224 224 224-100.8 224-224S379.2 32 256 32zm-82.16 280A56 56 0 11228 257.84 56 56 0 01173.84 312zm168 0A56 56 0 11396 257.84 56 56 0 01341.84 312z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/logo-foursquare.svg b/ionic/platforms/android/app/src/main/assets/www/svg/logo-foursquare.svg deleted file mode 100644 index 0b7f44c4f6de1a382cee3d4c12ac59a4014a6d26..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/logo-foursquare.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Logo Foursquare</title><path d="M376.76 32H138.54C105.67 32 96 56.8 96 72.41v379.64c0 17.59 9.42 24.12 14.72 26.27s19.91 4 28.67-6.17c0 0 112.47-130.89 114.4-132.83 2.92-2.93 2.92-2.93 5.84-2.93h72.77c30.58 0 35.49-21.87 38.69-34.75 2.65-10.79 32.48-164 42.45-212.56C421.14 52 411.74 32 376.76 32zm-5.67 269.64c2.65-10.79 32.48-164 42.45-212.56m-50.85 7.59l-10 51.73c-1.19 5.65-8.28 11.6-14.86 11.6h-95.92c-10.44 0-17.91 6.14-17.91 16.6v13.45c0 10.47 7.52 17.89 18 17.89h81.85c7.38 0 14.61 8.11 13 16s-9.09 46.57-10 50.89-5.84 11.72-14.61 11.72H248c-11.7 0-15.24 1.54-23.07 11.3s-78.26 94.59-78.26 94.59c-.71.82-1.41.58-1.41-.31V95.9c0-6.69 5.8-14.53 14.48-14.53h191.14a12.42 12.42 0 0111.81 15.3z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/logo-github.svg b/ionic/platforms/android/app/src/main/assets/www/svg/logo-github.svg deleted file mode 100644 index 6676102aea46aa9455ff863e20fbf36d87467e74..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/logo-github.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Logo Github</title><path d="M256 32C132.3 32 32 134.9 32 261.7c0 101.5 64.2 187.5 153.2 217.9a17.56 17.56 0 003.8.4c8.3 0 11.5-6.1 11.5-11.4 0-5.5-.2-19.9-.3-39.1a102.4 102.4 0 01-22.6 2.7c-43.1 0-52.9-33.5-52.9-33.5-10.2-26.5-24.9-33.6-24.9-33.6-19.5-13.7-.1-14.1 1.4-14.1h.1c22.5 2 34.3 23.8 34.3 23.8 11.2 19.6 26.2 25.1 39.6 25.1a63 63 0 0025.6-6c2-14.8 7.8-24.9 14.2-30.7-49.7-5.8-102-25.5-102-113.5 0-25.1 8.7-45.6 23-61.6-2.3-5.8-10-29.2 2.2-60.8a18.64 18.64 0 015-.5c8.1 0 26.4 3.1 56.6 24.1a208.21 208.21 0 01112.2 0c30.2-21 48.5-24.1 56.6-24.1a18.64 18.64 0 015 .5c12.2 31.6 4.5 55 2.2 60.8 14.3 16.1 23 36.6 23 61.6 0 88.2-52.4 107.6-102.3 113.3 8 7.1 15.2 21.1 15.2 42.5 0 30.7-.3 55.5-.3 63 0 5.4 3.1 11.5 11.4 11.5a19.35 19.35 0 004-.4C415.9 449.2 480 363.1 480 261.7 480 134.9 379.7 32 256 32z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/logo-gitlab.svg b/ionic/platforms/android/app/src/main/assets/www/svg/logo-gitlab.svg deleted file mode 100644 index 6a2f0c749c45d572b21d1b424ad208336b2b6d50..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/logo-gitlab.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Logo Gitlab</title><path d="M494.07 281.6l-25.18-78.08a11 11 0 00-.61-2.1l-50.5-156.94a20.08 20.08 0 00-19.17-13.82 19.77 19.77 0 00-18.95 13.94l-48.14 149.55h-152L131.34 44.59a19.76 19.76 0 00-18.86-13.94h-.11a20.15 20.15 0 00-19.12 14L42.7 201.73c0 .14-.11.26-.16.4l-25.63 79.48a29.15 29.15 0 0010.44 32.46l221.44 162.41a11.25 11.25 0 0013.38-.07l221.48-162.34a29.13 29.13 0 0010.42-32.47m-331-64.51l61.73 191.76L76.63 217.09m209.64 191.8l59.19-183.84 2.55-8h86.52L300.47 390.44M398.8 59.31l43.37 134.83h-86.82M324.16 217l-43 133.58-25.66 79.56L186.94 217M112.27 59.31l43.46 134.83H69M40.68 295.58a6.19 6.19 0 01-2.21-6.9l19-59 139.61 180.59m273.26-114.69L313.92 410.22l.52-.69L453.5 229.64l19 59a6.2 6.2 0 01-2.19 6.92"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/logo-google-playstore.svg b/ionic/platforms/android/app/src/main/assets/www/svg/logo-google-playstore.svg deleted file mode 100644 index 20798ac494d42ae47235a3db65ae1f6667673d83..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/logo-google-playstore.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Logo Google Playstore</title><path d="M48 59.49v393a4.33 4.33 0 007.37 3.07L260 256 55.37 56.42A4.33 4.33 0 0048 59.49zM345.8 174L89.22 32.64l-.16-.09c-4.42-2.4-8.62 3.58-5 7.06l201.13 192.32zM84.08 472.39c-3.64 3.48.56 9.46 5 7.06l.16-.09L345.8 338l-60.61-57.95zM449.38 231l-71.65-39.46L310.36 256l67.37 64.43L449.38 281c19.49-10.77 19.49-39.23 0-50z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/logo-google.svg b/ionic/platforms/android/app/src/main/assets/www/svg/logo-google.svg deleted file mode 100644 index 30959f9701aa4971002b898d8b9faccb6d0bdbab..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/logo-google.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Logo Google</title><path d="M473.16 221.48l-2.26-9.59H262.46v88.22H387c-12.93 61.4-72.93 93.72-121.94 93.72-35.66 0-73.25-15-98.13-39.11a140.08 140.08 0 01-41.8-98.88c0-37.16 16.7-74.33 41-98.78s61-38.13 97.49-38.13c41.79 0 71.74 22.19 82.94 32.31l62.69-62.36C390.86 72.72 340.34 32 261.6 32c-60.75 0-119 23.27-161.58 65.71C58 139.5 36.25 199.93 36.25 256s20.58 113.48 61.3 155.6c43.51 44.92 105.13 68.4 168.58 68.4 57.73 0 112.45-22.62 151.45-63.66 38.34-40.4 58.17-96.3 58.17-154.9 0-24.67-2.48-39.32-2.59-39.96z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/logo-hackernews.svg b/ionic/platforms/android/app/src/main/assets/www/svg/logo-hackernews.svg deleted file mode 100644 index 4e913da632aff67885741f0333af599e2f322273..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/logo-hackernews.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Logo Hackernews</title><path d="M32 32v448h448V32zm249.67 250.83v84H235v-84l-77-140h55l46.32 97.54 44.33-97.54h52.73z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/logo-html5.svg b/ionic/platforms/android/app/src/main/assets/www/svg/logo-html5.svg deleted file mode 100644 index 2d4859c725f05d8e8326b84c594fe5b1f537b7be..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/logo-html5.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Logo Html5</title><path d="M64 32l34.94 403.21L255.77 480 413 435.15 448 32zm308 132H188l4 51h176l-13.51 151.39L256 394.48l-98.68-28-6.78-77.48h48.26l3.42 39.29L256 343.07l53.42-14.92L315 264H148l-12.59-149.59H376.2z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/logo-instagram.svg b/ionic/platforms/android/app/src/main/assets/www/svg/logo-instagram.svg deleted file mode 100644 index dada6d9eff1f52851873b9ce062eb786022b5468..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/logo-instagram.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Logo Instagram</title><path d="M349.33 69.33a93.62 93.62 0 0193.34 93.34v186.66a93.62 93.62 0 01-93.34 93.34H162.67a93.62 93.62 0 01-93.34-93.34V162.67a93.62 93.62 0 0193.34-93.34h186.66m0-37.33H162.67C90.8 32 32 90.8 32 162.67v186.66C32 421.2 90.8 480 162.67 480h186.66C421.2 480 480 421.2 480 349.33V162.67C480 90.8 421.2 32 349.33 32z"/><path d="M377.33 162.67a28 28 0 1128-28 27.94 27.94 0 01-28 28zM256 181.33A74.67 74.67 0 11181.33 256 74.75 74.75 0 01256 181.33m0-37.33a112 112 0 10112 112 112 112 0 00-112-112z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/logo-ionic.svg b/ionic/platforms/android/app/src/main/assets/www/svg/logo-ionic.svg deleted file mode 100644 index d9513aadcff57b6eb2b73d6140b3ffc2d57e3146..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/logo-ionic.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Logo Ionic</title><path d="M256 153.9A102.1 102.1 0 10358.1 256 102.23 102.23 0 00256 153.9z"/><circle cx="402.59" cy="116.45" r="46.52"/><path d="M459.86 163.2l-1.95-4.28-3.11 3.52a70 70 0 01-28.06 19.32l-3 1.1 1.22 2.93A181.43 181.43 0 01439 256c0 100.92-82.1 183-183 183S73 356.92 73 256 155.08 73 256 73a180.94 180.94 0 0178.43 17.7l2.87 1.3 1.25-2.92A70.19 70.19 0 01359.21 62l3.67-2.93-4.17-2.07A221.61 221.61 0 00256 32C132.49 32 32 132.49 32 256s100.49 224 224 224 224-100.49 224-224a222.19 222.19 0 00-20.14-92.8z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/logo-ionitron.svg b/ionic/platforms/android/app/src/main/assets/www/svg/logo-ionitron.svg deleted file mode 100644 index c9f815f1ea6a14a5afa812fe2aeaf5e92c119984..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/logo-ionitron.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Logo Ionitron</title><path d="M468.41 269.19c-2.64-33.39-11.76-58-31.44-57.39a1 1 0 00-.92 1.37c5.11 12.59 9.68 36.9 9.17 58.07a1 1 0 01-2 .08c-2.19-21.21-7.1-41.19-16.22-59.43a186.69 186.69 0 00-348.91 41 4 4 0 01-3.33 3.11l-8.65 1.22c-17.2 2.4-26.9 34.9-21.7 72.5s23.5 66.2 40.7 63.8l13.24-1.85a4 4 0 013.93 1.84 186.71 186.71 0 00339-56.07 4 4 0 013.68-3.08l4.4-.24c15.15-2.53 21.75-31.23 19.05-64.93zM94.5 270.42a1 1 0 011.59-1.19c9.63 10 20.25 27.65 23.32 49.86 3.24 23.05-2.24 45.2-9.13 57.87a1 1 0 01-1.84-.73c4.07-14.44 5.16-33.83 2.27-54.74-2.8-20.32-8.71-38.27-16.21-51.07zm178.77 109.79a15.53 15.53 0 01-15.41-13.83 15.48 15.48 0 1115.41 13.83zm81.84-4.72a15.37 15.37 0 1114.6-16.2 15.43 15.43 0 01-14.6 16.2z"/><path d="M165.51 70a.31.31 0 01.1.2c.1.2.2.3.3.5v.1a5.78 5.78 0 002.3 2.7c2 1.5 5 2.4 8.6 3a63.69 63.69 0 0011.9.5 28.25 28.25 0 002.9-.2c-.4-.4-.8-.9-1.2-1.3h-1.3a52 52 0 01-11.6-.9 19.71 19.71 0 01-8.4-3.4 9.24 9.24 0 01-1.4-1.4 4.48 4.48 0 010-2.3c.5-2.3 2.4-4.8 5.5-7.4a57.25 57.25 0 0110.9-7c.9-.4 1.7-.9 2.6-1.3.1-.1.3-.1.5-.2a24.69 24.69 0 00-.2 10.5c2.3 11.9 11.6 20.3 23.2 20.6l4 24.3 12.7-3-4-23.3c10.8-4.6 16.3-16.1 14-28a25.8 25.8 0 00-3.9-9.5c-5.3-.8-15.6-.8-29.2 2.1 1.1-.3 2.1-.7 3.2-1a135.27 135.27 0 0121.5-4.2c.6-.1 1.2-.1 1.8-.2l3.5-.3h.6a61.83 61.83 0 0110.8.3 29 29 0 016.1 1.4 5.71 5.71 0 00-.9 3.2 6.12 6.12 0 004.3 5.8 25.53 25.53 0 01-2.1 2.8 26 26 0 01-2.9 2.8c-1.1.9-2.3 1.8-3.5 2.7l-6.5 3.8-.3 1.5a.35.35 0 00.2-.1l8.4-4.7c1.2-.8 2.4-1.6 3.4-2.4a29.15 29.15 0 003.2-2.8 29.86 29.86 0 002.4-2.8l.3-.6a6.14 6.14 0 005.4-6 6.06 6.06 0 00-6.1-6.1 6.81 6.81 0 00-2.8.7 24.6 24.6 0 00-8.2-2.7 63.48 63.48 0 00-15.5-.6 14.92 14.92 0 00-2.1.2 13.55 13.55 0 01-2 .2 25.15 25.15 0 00-18.7-3.7 25.86 25.86 0 00-17.8 13c-1.3.5-2.6 1.1-3.8 1.7-.7.3-1.3.6-2 .9a60.75 60.75 0 00-13.9 9.1c-3.1 2.9-4.9 5.7-5.3 8.3a6.14 6.14 0 00.7 4 2.19 2.19 0 01.3.5z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/logo-javascript.svg b/ionic/platforms/android/app/src/main/assets/www/svg/logo-javascript.svg deleted file mode 100644 index 81ccfbcd4eeca19b5dae26a34bfa7f01b15f8da0..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/logo-javascript.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Logo Javascript</title><path d="M32 32v448h448V32zm240 348c0 43.61-25.76 64.87-63.05 64.87-33.68 0-53.23-17.44-63.15-38.49l34.28-20.75c6.61 11.73 11.63 21.65 26.06 21.65 12 0 21.86-5.41 21.86-26.46V240h44zm99.35 63.87c-39.09 0-64.35-17.64-76.68-42L329 382c9 14.74 20.75 24.56 41.5 24.56 17.44 0 27.57-7.72 27.57-19.75 0-14.43-10.43-19.54-29.68-28l-10.52-4.52c-30.38-12.92-50.52-29.16-50.52-63.45 0-31.57 24.05-54.63 61.64-54.63 26.77 0 46 8.32 59.85 32.68L396 290c-7.22-12.93-15-18-27.06-18-12.33 0-20.15 7.82-20.15 18 0 12.63 7.82 17.74 25.86 25.56l10.52 4.51c35.79 15.34 55.94 31 55.94 66.16.01 37.9-29.76 57.64-69.76 57.64z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/logo-laravel.svg b/ionic/platforms/android/app/src/main/assets/www/svg/logo-laravel.svg deleted file mode 100644 index 72e4b04ddade030e817d1272c66d314b63e5be21..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/logo-laravel.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Logo Laravel</title><path d="M505.57 234.62c-3.28-3.53-26.82-32.29-39.51-47.79-6.75-8.24-12.08-14.75-14.32-17.45l-.18-.22-.2-.21c-5.22-5.83-12.64-12.51-23.78-12.51a39.78 39.78 0 00-5.41.44c-.37.05-.75.11-1.15.15-2.45.27-10.06 1.5-28.14 4.48-14 2.29-35.11 5.77-38.31 6.07l-.71.06-.69.13c-10 1.78-16.62 6.22-19.56 13.19-1.55 3.68-3.22 11.15 2.94 19.86 1.53 2.22 6.83 9.56 15.94 22.17 6.06 8.4 12.87 17.82 18.75 26L259.9 275 150.66 96.05l-.2-.34-.23-.33-.44-.65C145.32 88.17 139.76 80 123.7 80c-1.13 0-2.31 0-3.63.11-4.6.25-21.42 1.57-40.89 3.11-21.49 1.69-50.9 4-54.72 4.1h-.73l-.79.08c-9.14.89-15.77 4.6-19.7 11-6.55 10.69-1.42 22.69.26 26.63C6.87 133 37.56 197.7 64.63 254.81c18 37.94 36.58 77.17 38.1 80.65a34.85 34.85 0 0032.94 21.59 46.62 46.62 0 009.86-1.1h.21l.2-.05c13.86-3.38 57.83-14.54 89.2-22.59 1.9 3.32 3.9 6.83 6 10.44 21.93 38.5 37.9 66.35 43.16 73.46C287 421 295 432 310.06 432c5.46 0 10.46-1.4 15.74-2.89l1.53-.43h.12c10.53-3 150.69-52.16 157.87-55.35l.22-.1c5.44-2.41 13.66-6.05 16.18-15.4 1.65-6.12.18-12.33-4.38-18.46l-.07-.09-.07-.09c-.85-1.1-4-5.21-8.27-10.9-9.13-12.07-23.88-31.57-36.84-48.54 17.37-4.5 38.8-10.11 43.38-11.55 11.47-3.43 14.94-10.69 16-14.73.79-3.15 1.82-11.2-5.9-18.85zm-320 58.19c-17.81 4.17-30.22 7.08-37.89 8.9-6.67-13.34-19.74-39.65-32.5-65.33-29.74-59.92-45.1-90.77-53.18-106.9l8.15-.7c13.34-1.15 31.61-2.72 41.78-3.57 16.76 28.26 74.32 125.3 96.3 162.3zM427.58 172zM310.06 416.4zm53.67-56.95c-24.21 8-37.33 12.37-44.42 14.74-6.3-10.34-20.16-33.52-32.47-54.19l115.7-29.48c5 6.81 14.57 19.72 33.46 44.93-18.07 6.04-48.2 16.02-72.27 24zm55.87-121.63l-23.76-31.53c13.67-2.39 21.54-3.77 26.15-4.6l12 14.88 11.94 14.82c-8.2 1.99-17.74 4.32-26.33 6.43z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/logo-linkedin.svg b/ionic/platforms/android/app/src/main/assets/www/svg/logo-linkedin.svg deleted file mode 100644 index 7cab47104d5ab1c10f0af8345d6b320f2386d5b9..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/logo-linkedin.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Logo Linkedin</title><path d="M444.17 32H70.28C49.85 32 32 46.7 32 66.89v374.72C32 461.91 49.85 480 70.28 480h373.78c20.54 0 35.94-18.21 35.94-38.39V66.89C480.12 46.7 464.6 32 444.17 32zm-273.3 373.43h-64.18V205.88h64.18zM141 175.54h-.46c-20.54 0-33.84-15.29-33.84-34.43 0-19.49 13.65-34.42 34.65-34.42s33.85 14.82 34.31 34.42c-.01 19.14-13.31 34.43-34.66 34.43zm264.43 229.89h-64.18V296.32c0-26.14-9.34-44-32.56-44-17.74 0-28.24 12-32.91 23.69-1.75 4.2-2.22 9.92-2.22 15.76v113.66h-64.18V205.88h64.18v27.77c9.34-13.3 23.93-32.44 57.88-32.44 42.13 0 74 27.77 74 87.64z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/logo-markdown.svg b/ionic/platforms/android/app/src/main/assets/www/svg/logo-markdown.svg deleted file mode 100644 index d5a5f74c71cc65e6980a5bef9013d821125b31cc..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/logo-markdown.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Logo Markdown</title><path d="M475 64H37C16.58 64 0 81.38 0 102.77v306.42C0 430.59 16.58 448 37 448h438c20.38 0 37-17.41 37-38.81V102.77C512 81.38 495.42 64 475 64zM288 368h-64V256l-48 64-48-64v112H64V144h64l48 80 48-80h64zm96 0l-80-112h48.05L352 144h64v112h48z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/logo-mastodon.svg b/ionic/platforms/android/app/src/main/assets/www/svg/logo-mastodon.svg deleted file mode 100644 index 2fbfef224829140d828ccb6df3076795cf450636..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/logo-mastodon.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Logo Mastodon</title><path d="M480 173.59c0-104.13-68.26-134.65-68.26-134.65C377.3 23.15 318.2 16.5 256.8 16h-1.51c-61.4.5-120.46 7.15-154.88 22.94 0 0-68.27 30.52-68.27 134.65 0 23.85-.46 52.35.29 82.59C34.91 358 51.11 458.37 145.32 483.29c43.43 11.49 80.73 13.89 110.76 12.24 54.47-3 85-19.42 85-19.42l-1.79-39.5s-38.93 12.27-82.64 10.77c-43.31-1.48-89-4.67-96-57.81a108.44 108.44 0 01-1-14.9 558.91 558.91 0 0096.39 12.85c32.95 1.51 63.84-1.93 95.22-5.67 60.18-7.18 112.58-44.24 119.16-78.09 10.42-53.34 9.58-130.17 9.58-130.17zm-80.54 134.16h-50V185.38c0-25.8-10.86-38.89-32.58-38.89-24 0-36.06 15.53-36.06 46.24v67h-49.66v-67c0-30.71-12-46.24-36.06-46.24-21.72 0-32.58 13.09-32.58 38.89v122.37h-50V181.67q0-38.65 19.75-61.39c13.6-15.15 31.4-22.92 53.51-22.92 25.58 0 44.95 9.82 57.75 29.48L256 147.69l12.45-20.85c12.81-19.66 32.17-29.48 57.75-29.48 22.11 0 39.91 7.77 53.51 22.92q19.79 22.72 19.75 61.39z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/logo-medium.svg b/ionic/platforms/android/app/src/main/assets/www/svg/logo-medium.svg deleted file mode 100644 index 899eacb6cbcd25e9c8a2385c66b2d1c3d0056cdb..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/logo-medium.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Logo Medium</title><path d="M28 28v456h456V28H28zm378.83 108.04l-24.46 23.45a7.162 7.162 0 00-2.72 6.86v172.28c-.44 2.61.61 5.26 2.72 6.86l23.88 23.45v5.15H286.13v-5.15l24.74-24.02c2.43-2.43 2.43-3.15 2.43-6.86V198.81l-68.79 174.71h-9.3l-80.09-174.71v117.1c-.67 4.92.97 9.88 4.43 13.44l32.18 39.03v5.15h-91.24v-5.15l32.18-39.03c3.44-3.57 4.98-8.56 4.15-13.44V180.5c.38-3.76-1.05-7.48-3.86-10.01l-28.6-34.46v-5.15h88.81l68.65 150.55 60.35-150.55h84.66v5.16z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/logo-no-smoking.svg b/ionic/platforms/android/app/src/main/assets/www/svg/logo-no-smoking.svg deleted file mode 100644 index 6b4ea48cc1772bd9311230af17b8f2dab5d840f1..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/logo-no-smoking.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Logo No Smoking</title><path d="M360 256h16v48h-16zM112 304h129.6l-48-48H112v48z"/><path d="M364.5 60.1a8.79 8.79 0 01-1-.6 218.79 218.79 0 00-34.4-14.8l-5.4-1.8A223.2 223.2 0 00256 32C132.3 32 32 132.3 32 256a223.71 223.71 0 00115.4 195.8c.4.2.7.5 1.1.7a218.79 218.79 0 0034.4 14.8l5.4 1.8A222.7 222.7 0 00256 480c123.7 0 224-100.3 224-224A223.76 223.76 0 00364.5 60.1zM256 426.4a161.85 161.85 0 01-27.2-2.4 170.14 170.14 0 01-28.5-7.3c-1.9-.6-3.8-1.2-5.6-1.9a162.39 162.39 0 01-19-8.6 170.33 170.33 0 01-90.1-150.3c0-37.2 12.4-71.4 32.7-99.4l237.2 237.2c-28.1 20.3-62.3 32.7-99.5 32.7zm137.8-71L156.6 118.2c28-20.2 62.1-32.6 99.4-32.6a162.79 162.79 0 0127.2 2.4 170.14 170.14 0 0128.5 7.3c1.8.6 3.7 1.2 5.6 1.9a162 162 0 0118 8.1 170.25 170.25 0 0191.2 150.8c-.1 37.2-12.5 71.3-32.7 99.3z"/><path d="M352 256h-34l34 34v-34zM384 256h16v48h-16zM360.1 212.7c-8.8-4.1-22-5.7-45.6-5.7h-3.6c-12.7.1-15.9-.1-20-6.1-2.8-4.2-1-14.8 3.7-21.9a8 8 0 00.4-8.2 8.26 8.26 0 00-7-4.3 53.67 53.67 0 01-18.3-3.9c-10.6-4.5-15.6-12.1-15.6-23.1 0-25.8 21.8-27.7 22.8-27.7v-16c-12 0-38.8 11-38.8 43.7 0 17.5 9 31 25.7 38a66.58 66.58 0 0012 3.6c-3.3 9.8-3.6 20.9 1.7 28.7 9 13.3 20.3 13.2 33.3 13.1h3.5c26.3 0 34.6 2.3 38.9 4.3 5.7 2.6 6.8 7.5 6.6 15.7v1h16v-1c0-7.1.3-22.8-15.7-30.2z"/><path d="M400 244c0-25.7-3-39.2-9.1-49.6C382.3 180 368.5 172 352 172h-17.4c2.9-8.3 5.4-19.8 3.5-30.9-3.2-18.8-19.1-30-43.1-30v16c21 0 26.1 9.1 27.4 16.7 2.5 14.5-6.8 32.1-6.9 32.3a8 8 0 00.1 7.9 8.06 8.06 0 006.9 3.9H352c10.9 0 19.4 4.9 25.1 14.6 3.1 5.3 6.9 13.5 6.9 41.4h16z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/logo-nodejs.svg b/ionic/platforms/android/app/src/main/assets/www/svg/logo-nodejs.svg deleted file mode 100644 index 04c82d1389e39d0c36d6819db23125fc6234e57f..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/logo-nodejs.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Logo Nodejs</title><path d="M429.76 130.07L274.33 36.85a37 37 0 00-36.65 0L82.24 130.06A38.2 38.2 0 0064 162.83V349a38.26 38.26 0 0018.24 32.8L123 406.14l.23.13c20.58 10.53 28.46 10.53 37.59 10.53 32.14 0 52.11-20.8 52.11-54.29V182a8.51 8.51 0 00-8.42-8.58h-22.38a8.51 8.51 0 00-8.42 8.58v180.51a15 15 0 01-6.85 13.07c-5.9 3.6-14.47 2.84-24.14-2.15l-39.06-23.51a1.1 1.1 0 01-.48-.92V165.46a1.32 1.32 0 01.59-1.06l151.84-93a.82.82 0 01.73 0l151.93 93a1.34 1.34 0 01.55 1.1V349a1.28 1.28 0 01-.45 1l-152.06 90.65a1.22 1.22 0 01-.8 0l-38.83-23.06a7.8 7.8 0 00-7.83-.41l-.34.2c-10.72 6.35-13.6 8-23.54 11.62-1.62.59-5.43 2-5.76 5.77s3.29 6.45 6.51 8.32l51.9 31.87a35.67 35.67 0 0018.3 5.07h.58a35.87 35.87 0 0017.83-5.07l155.43-93.13A38.37 38.37 0 00448 349V162.83a38.21 38.21 0 00-18.24-32.76z"/><path d="M307.88 318.05c-37.29 0-45.24-10.42-47.6-27.24a8.43 8.43 0 00-8.22-7.32h-19.8a8.44 8.44 0 00-8.26 8.58c0 14.58 5.12 62.17 83.92 62.17 24.38 0 44.66-5.7 58.63-16.49S388 311.26 388 292.55c0-37.55-24.5-47.83-72.75-54.55-49.05-6.82-49.05-10.29-49.05-17.89 0-5.47 0-18.28 35.46-18.28 25.23 0 38.74 3.19 43.06 20a8.35 8.35 0 008.06 6.67h19.87a8.24 8.24 0 006.16-2.86 8.91 8.91 0 002.12-6.44c-2.57-35.55-28.56-53.58-79.24-53.58-46.06 0-73.55 20.75-73.55 55.5 0 38.1 28.49 48.87 71.29 53.33 50 5.17 50 12.71 50 19.37.03 10.38-4.28 24.23-41.55 24.23z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/logo-npm.svg b/ionic/platforms/android/app/src/main/assets/www/svg/logo-npm.svg deleted file mode 100644 index d93e23126abb987063a07aab6d0471d01eb1f676..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/logo-npm.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Logo Npm</title><path d="M227.6 213.1H256v57.1h-28.4z"/><path d="M0 156v171.4h142.2V356H256v-28.6h256V156zm142.2 142.9h-28.4v-85.7H85.3v85.7H28.4V184.6h113.8zm142.2 0h-56.9v28.6h-56.9V184.6h113.8zm199.2 0h-28.4v-85.7h-28.4v85.7h-28.4v-85.7H370v85.7h-56.9V184.6h170.7v114.3z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/logo-octocat.svg b/ionic/platforms/android/app/src/main/assets/www/svg/logo-octocat.svg deleted file mode 100644 index 871aa7fd2dd0719473f2e33c7504d0ef7b059ce0..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/logo-octocat.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Logo Octocat</title><path d="M172.86 290.12c-9.75 0-18.11 4.56-24.86 13.87s-10.07 20.58-10.07 34 3.43 24.91 10.07 34.12S163 386 172.86 386c9.1 0 17-4.66 23.68-13.87s10.07-20.58 10.07-34.12-3.43-24.81-10.07-34-14.54-13.89-23.68-13.89zM340.32 290.12c-9.64 0-18.11 4.56-24.86 13.87s-10.07 20.58-10.07 34 3.43 24.91 10.07 34.12S330.57 386 340.32 386c9.11 0 17-4.66 23.79-13.87s10.07-20.58 10.07-34.12-3.43-24.81-10.07-34-14.57-13.89-23.79-13.89z"/><path d="M459.36 165c-.11 0 2.89-15.49.32-42.47-2.36-27-8-51.78-17.25-74.53 0 0-4.72.87-13.72 3.14S405 58 384.89 67.18c-19.82 9.2-40.71 21.44-62.46 36.29-14.79-4.23-36.86-6.39-66.43-6.39-28.18 0-50.25 2.16-66.43 6.39Q117.9 53.25 69.46 48q-13.81 34.13-17.14 74.75c-2.57 27 .43 42.58.43 42.58C26.71 193.82 16 234.88 16 268.78c0 26.22.75 49.94 6.54 71 6 20.91 13.6 38 22.6 51.14A147.49 147.49 0 0079 425.43c13.39 10.08 25.71 17.34 36.86 21.89 11.25 4.76 24 8.23 38.57 10.72a279.19 279.19 0 0032.68 4.34s30 1.62 69 1.62 68.89-1.62 68.89-1.62a285.25 285.25 0 0032.68-4.38 178.91 178.91 0 0038.46-10.72c11.15-4.66 23.47-11.81 37-21.89a145 145 0 0033.75-34.55c9-13.11 16.6-30.23 22.6-51.14s6.51-44.81 6.51-71.03c0-32.82-10.71-74.42-36.64-103.67zm-70.07 253.07C359.39 432.26 315.46 438 257.18 438h-2.25c-58.29 0-102.22-5.63-131.57-19.93s-44.25-43.45-44.25-87.43c0-26.32 9.21-47.66 27.32-64 7.93-7 17.57-11.92 29.57-14.84s22.93-3 33.21-2.71c10.08.43 24.22 2.38 42.11 3.79s31.39 3.25 44.79 3.25c12.53 0 29.14-2.17 55.82-4.33s46.61-3.25 59.46-1.09c13.18 2.17 24.65 6.72 34.4 15.93q28.44 25.67 28.5 64c-.11 43.98-15.22 73.24-45 87.43z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/logo-paypal.svg b/ionic/platforms/android/app/src/main/assets/www/svg/logo-paypal.svg deleted file mode 100644 index 1a363b75e1031109cdda104c154a64a13de94445..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/logo-paypal.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Logo Paypal</title><path d="M424.81 148.79c-.43 2.76-.93 5.58-1.49 8.48-19.17 98-84.76 131.8-168.54 131.8h-42.65a20.67 20.67 0 00-20.47 17.46l-21.84 137.84-6.18 39.07a10.86 10.86 0 009.07 12.42 10.72 10.72 0 001.7.13h75.65a18.18 18.18 0 0018-15.27l.74-3.83 14.24-90 .91-4.94a18.16 18.16 0 0118-15.3h11.31c73.3 0 130.67-29.62 147.44-115.32 7-35.8 3.38-65.69-15.16-86.72a72.27 72.27 0 00-20.73-15.82z"/><path d="M385.52 51.09C363.84 26.52 324.71 16 274.63 16H129.25a20.75 20.75 0 00-20.54 17.48l-60.55 382a12.43 12.43 0 0010.39 14.22 12.58 12.58 0 001.94.15h89.76l22.54-142.29-.7 4.46a20.67 20.67 0 0120.47-17.46h42.65c83.77 0 149.36-33.86 168.54-131.8.57-2.9 1.05-5.72 1.49-8.48 5.7-36.22-.05-60.87-19.72-83.19z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/logo-pinterest.svg b/ionic/platforms/android/app/src/main/assets/www/svg/logo-pinterest.svg deleted file mode 100644 index 912fb72dbd62ebdb8485cec7b240c9b3186959b3..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/logo-pinterest.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Logo Pinterest</title><path d="M256.05 32c-123.7 0-224 100.3-224 224 0 91.7 55.2 170.5 134.1 205.2-.6-15.6-.1-34.4 3.9-51.4 4.3-18.2 28.8-122.1 28.8-122.1s-7.2-14.3-7.2-35.4c0-33.2 19.2-58 43.2-58 20.4 0 30.2 15.3 30.2 33.6 0 20.5-13.1 51.1-19.8 79.5-5.6 23.8 11.9 43.1 35.4 43.1 42.4 0 71-54.5 71-119.1 0-49.1-33.1-85.8-93.2-85.8-67.9 0-110.3 50.7-110.3 107.3 0 19.5 5.8 33.3 14.8 43.9 4.1 4.9 4.7 6.9 3.2 12.5-1.1 4.1-3.5 14-4.6 18-1.5 5.7-6.1 7.7-11.2 5.6-31.3-12.8-45.9-47-45.9-85.6 0-63.6 53.7-139.9 160.1-139.9 85.5 0 141.8 61.9 141.8 128.3 0 87.9-48.9 153.5-120.9 153.5-24.2 0-46.9-13.1-54.7-27.9 0 0-13 51.6-15.8 61.6-4.7 17.3-14 34.5-22.5 48a225.13 225.13 0 0063.5 9.2c123.7 0 224-100.3 224-224S379.75 32 256.05 32z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/logo-playstation.svg b/ionic/platforms/android/app/src/main/assets/www/svg/logo-playstation.svg deleted file mode 100644 index 79c36f51966bb6e5b8aec93f2139e7ba5c25c3bd..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/logo-playstation.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Logo Playstation</title><path d="M399.77 203c-.8-17.1-3.3-34.5-10.8-50.1a82.45 82.45 0 00-16.5-23.2 105.59 105.59 0 00-21.3-16.3c-17.1-10.2-37.5-17-84.4-31S192 64 192 64v358.3l79.9 25.7s.1-198.8.1-299.5v-3.8c0-9.3 7.5-16.8 16.1-16.8h.5c8.5 0 15.5 7.5 15.5 16.8V278c11 5.3 29.2 9.3 41.8 9.1a47.79 47.79 0 0024-5.7 49.11 49.11 0 0018.4-17.8 78.64 78.64 0 009.9-27.3c1.87-10.8 1.97-22.1 1.57-33.3zM86.67 357.8c27.4-9.8 89.3-29.5 89.3-29.5v-47.2s-76.5 24.8-111.3 37.1c-8.6 3.1-17.3 5.9-25.7 9.5-9.8 4.1-19.4 8.7-28.1 14.8a26.29 26.29 0 00-9.2 10.1 17.36 17.36 0 00-.5 13.6c2 5.1 5.8 9.3 10.1 12.6 7.8 5.9 17.1 9.5 26.4 12.2a262.42 262.42 0 0088.4 13.3c14.5-.2 36-1.9 50-4.4v-42s-11 2.5-41.3 12.5c-4.6 1.5-9.2 3.3-14 4.3a104.87 104.87 0 01-21.6 2.2c-6.5-.3-13.2-.7-19.3-3.1-2.2-1-4.6-2.2-5.5-4.6-.8-2 .3-4 1.7-5.4 2.8-2.9 6.8-4.5 10.6-6z"/><path d="M512 345.9c-.1-6-3.7-11.2-7.9-15-7.1-6.3-15.9-10.3-24.7-13.5-5.5-1.9-9.3-3.3-14.7-5-25.2-8.2-51.9-11.2-78.3-11.3-8 .3-23.1.5-31 1.4-21.9 2.5-67.3 15.4-67.3 15.4v48.8s67.5-21.6 96.5-31.8a94.43 94.43 0 0130.3-4.6c6.5.2 13.2.7 19.4 3.1 2.2.9 4.5 2.2 5.5 4.5.9 2.6-.9 5-2.9 6.5-4.7 3.8-10.7 5.3-16.2 7.4-41 14.5-132.7 44.7-132.7 44.7v47s117.2-39.6 170.8-58.8c8.9-3.3 17.9-6.1 26.4-10.4 7.9-4 15.8-8.6 21.8-15.3a19.74 19.74 0 005-13.1z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/logo-pwa.svg b/ionic/platforms/android/app/src/main/assets/www/svg/logo-pwa.svg deleted file mode 100644 index 5b3bfb6833f5eb70f914d242368d61b29f39d1ac..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/logo-pwa.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Logo Pwa</title><path d="M330.7 352l77.72-192H356.9l-53.16 124.07L265.93 160h-39.61l-40.58 124.07-28.63-56.53-25.9 79.46 26.3 45h50.7l36.68-111.27 35 111.27zM48.79 286.09h31.65a93.39 93.39 0 0025.62-3.21l8.18-25.19 22.88-70.39a55.75 55.75 0 00-6-7.82Q113.54 160 79.59 160H0v192h48.79zm41.9-81.92q6.89 6.92 6.88 18.52t-6 18.53q-6.64 7.62-24.44 7.61H48.79v-51.58h18.42q16.59 0 23.48 6.92zm286.16 113.44l14.79-37.25h42.69l-20.26-56.51L439.41 160 512 352h-53.53l-12.4-34.39z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/logo-python.svg b/ionic/platforms/android/app/src/main/assets/www/svg/logo-python.svg deleted file mode 100644 index c10100c912f83ef85f0992b9775d9efb954e1af8..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/logo-python.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Logo Python</title><path d="M314 36.38c-18.59-3.06-45.8-4.47-64.27-4.38a311.09 311.09 0 00-51.66 4.38c-45.74 8-54.07 24.7-54.07 55.54V128h112v16H107.62C66.06 144 32.33 193.67 32 255.12v.88a162.91 162.91 0 003.13 32c9.29 46.28 38.23 80 72.49 80H128v-54c0-31.3 20.84-59.95 55-66.1l9.87-1.23H314a56.05 56.05 0 0015.06-2A52.48 52.48 0 00368 193.68V91.92c0-28.92-24.68-50.73-54-55.54zM194.93 105.5a20.37 20.37 0 1120.3-20.3 20.29 20.29 0 01-20.3 20.3z"/><path d="M475.28 217c-10.7-42.61-38.41-73-70.9-73h-17.71v47.45c0 39.57-26 68.22-57.74 73.13a63.54 63.54 0 01-9.69.75H198.08a60 60 0 00-15.23 1.95C160.54 273.14 144 291.7 144 315.77v101.77c0 29 29.14 46 57.73 54.31 34.21 9.95 71.48 11.75 112.42 0 27.19-7.77 53.85-23.48 53.85-54.31V384H256v-16h148.38c29.44 0 54.95-24.93 67.45-61.31A156.83 156.83 0 00480 256a160.64 160.64 0 00-4.72-39zM316.51 404a20.37 20.37 0 11-20.3 20.3 20.29 20.29 0 0120.3-20.3z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/logo-react.svg b/ionic/platforms/android/app/src/main/assets/www/svg/logo-react.svg deleted file mode 100644 index 8fc39c4b7bd403e6c77da5ade321750728b6d761..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/logo-react.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Logo React</title><path d="M410.66 180.72q-7.67-2.62-15.45-4.88 1.29-5.25 2.38-10.56c11.7-56.9 4.05-102.74-22.06-117.83-25-14.48-66 .61-107.36 36.69q-6.1 5.34-11.95 11-3.9-3.76-8-7.36c-43.35-38.58-86.8-54.83-112.88-39.69-25 14.51-32.43 57.6-21.9 111.53q1.58 8 3.55 15.93a320.85 320.85 0 00-17.77 5.6C48.46 198.9 16 226.73 16 255.59c0 29.82 34.84 59.72 87.77 77.85q6.44 2.19 13 4.07-2.13 8.49-3.77 17.17c-10 53-2.2 95.07 22.75 109.49 25.77 14.89 69-.41 111.14-37.31q5-4.38 10-9.25 6.32 6.11 13 11.86c40.8 35.18 81.09 49.39 106 34.93 25.75-14.94 34.12-60.14 23.25-115.13q-1.25-6.3-2.88-12.86 4.56-1.35 8.93-2.79c55-18.27 90.83-47.81 90.83-78-.02-29-33.52-57.01-85.36-74.9zm-129-81.08c35.43-30.91 68.55-43.11 83.65-34.39 16.07 9.29 22.32 46.75 12.22 95.88q-1 4.8-2.16 9.57a487.83 487.83 0 00-64.18-10.16 481.27 481.27 0 00-40.57-50.75q5.38-5.22 11.02-10.15zM157.73 280.25q6.51 12.6 13.61 24.89 7.23 12.54 15.07 24.71a435.28 435.28 0 01-44.24-7.13c4.24-13.72 9.46-27.97 15.56-42.47zm0-48.33c-6-14.19-11.08-28.15-15.25-41.63 13.7-3.07 28.3-5.58 43.52-7.48q-7.65 11.94-14.72 24.23t-13.58 24.88zm10.9 24.17q9.48-19.77 20.42-38.78 10.93-19 23.27-37.13c14.28-1.08 28.92-1.65 43.71-1.65s29.52.57 43.79 1.66q12.21 18.09 23.13 37t20.69 38.6Q334 275.63 323 294.73q-10.91 19-23 37.24c-14.25 1-29 1.55-44 1.55s-29.47-.47-43.46-1.38q-12.43-18.19-23.46-37.29t-20.48-38.76zM340.75 305q7.25-12.58 13.92-25.49a440.41 440.41 0 0116.12 42.32 434.44 434.44 0 01-44.79 7.65q7.62-12.09 14.75-24.48zm13.72-73.07q-6.64-12.65-13.81-25-7-12.18-14.59-24.06c15.31 1.94 30 4.52 43.77 7.67a439.89 439.89 0 01-15.37 41.39zm-98.24-107.45a439.75 439.75 0 0128.25 34.18q-28.35-1.35-56.74 0c9.33-12.34 18.88-23.79 28.49-34.18zM145.66 65.86c16.06-9.32 51.57 4 89 37.27 2.39 2.13 4.8 4.36 7.2 6.67A491.37 491.37 0 00201 160.51a499.12 499.12 0 00-64.06 10q-1.83-7.36-3.3-14.82c-9.05-46.23-3.06-81.08 12.02-89.83zm-23.41 251.85q-6-1.71-11.85-3.71c-23.4-8-42.73-18.44-56-29.81-11.88-10.19-17.9-20.36-17.9-28.6 0-17.51 26.06-39.85 69.52-55q8.19-2.85 16.52-5.21a493.54 493.54 0 0023.4 60.75 502.46 502.46 0 00-23.69 61.58zm111.13 93.67c-18.63 16.32-37.29 27.89-53.74 33.72-14.78 5.23-26.55 5.38-33.66 1.27-15.14-8.75-21.44-42.54-12.85-87.86q1.53-8 3.5-16a480.85 480.85 0 0064.69 9.39 501.2 501.2 0 0041.2 51c-2.98 2.93-6.03 5.75-9.14 8.48zm23.42-23.22c-9.72-10.51-19.42-22.14-28.88-34.64q13.79.54 28.08.54c9.78 0 19.46-.21 29-.64a439.33 439.33 0 01-28.2 34.74zm124.52 28.59c-2.86 15.44-8.61 25.74-15.72 29.86-15.13 8.78-47.48-2.63-82.36-32.72-4-3.44-8-7.13-12.07-11a484.54 484.54 0 0040.23-51.2 477.84 477.84 0 0065-10.05q1.47 5.94 2.6 11.64c4.81 24.3 5.5 46.28 2.32 63.47zm17.4-102.64c-2.62.87-5.32 1.71-8.06 2.53a483.26 483.26 0 00-24.31-60.94 481.52 481.52 0 0023.36-60.06c4.91 1.43 9.68 2.93 14.27 4.52 44.42 15.32 71.52 38 71.52 55.43 0 18.6-29.27 42.74-76.78 58.52z"/><path d="M256 298.55a43 43 0 10-42.86-43 42.91 42.91 0 0042.86 43z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/logo-reddit.svg b/ionic/platforms/android/app/src/main/assets/www/svg/logo-reddit.svg deleted file mode 100644 index 42bcef081d2f8285844f6060f0463518257c05bb..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/logo-reddit.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Logo Reddit</title><path d="M324 256a36 36 0 1036 36 36 36 0 00-36-36z"/><circle cx="188" cy="292" r="36" transform="rotate(-22.5 187.997 291.992)"/><path d="M496 253.77c0-31.19-25.14-56.56-56-56.56a55.72 55.72 0 00-35.61 12.86c-35-23.77-80.78-38.32-129.65-41.27l22-79 66.41 13.2c1.9 26.48 24 47.49 50.65 47.49 28 0 50.78-23 50.78-51.21S441 48 413 48c-19.53 0-36.31 11.19-44.85 28.77l-90-17.89-31.1 109.52-4.63.13c-50.63 2.21-98.34 16.93-134.77 41.53A55.38 55.38 0 0072 197.21c-30.89 0-56 25.37-56 56.56a56.43 56.43 0 0028.11 49.06 98.65 98.65 0 00-.89 13.34c.11 39.74 22.49 77 63 105C146.36 448.77 199.51 464 256 464s109.76-15.23 149.83-42.89c40.53-28 62.85-65.27 62.85-105.06a109.32 109.32 0 00-.84-13.3A56.32 56.32 0 00496 253.77zM414 75a24 24 0 11-24 24 24 24 0 0124-24zM42.72 253.77a29.6 29.6 0 0129.42-29.71 29 29 0 0113.62 3.43c-15.5 14.41-26.93 30.41-34.07 47.68a30.23 30.23 0 01-8.97-21.4zM390.82 399c-35.74 24.59-83.6 38.14-134.77 38.14S157 423.61 121.29 399c-33-22.79-51.24-52.26-51.24-83A78.5 78.5 0 0175 288.72c5.68-15.74 16.16-30.48 31.15-43.79a155.17 155.17 0 0114.76-11.53l.3-.21.24-.17c35.72-24.52 83.52-38 134.61-38s98.9 13.51 134.62 38l.23.17.34.25A156.57 156.57 0 01406 244.92c15 13.32 25.48 28.05 31.16 43.81a85.44 85.44 0 014.31 17.67 77.29 77.29 0 01.6 9.65c-.01 30.72-18.21 60.19-51.25 82.95zm69.6-123.92c-7.13-17.28-18.56-33.29-34.07-47.72A29.09 29.09 0 01440 224a29.59 29.59 0 0129.41 29.71 30.07 30.07 0 01-8.99 21.39z"/><path d="M323.23 362.22c-.25.25-25.56 26.07-67.15 26.27-42-.2-66.28-25.23-67.31-26.27a4.14 4.14 0 00-5.83 0l-13.7 13.47a4.15 4.15 0 000 5.89c3.4 3.4 34.7 34.23 86.78 34.45 51.94-.22 83.38-31.05 86.78-34.45a4.16 4.16 0 000-5.9l-13.71-13.47a4.13 4.13 0 00-5.81 0z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/logo-rss.svg b/ionic/platforms/android/app/src/main/assets/www/svg/logo-rss.svg deleted file mode 100644 index acb34a2ed69a3466baa46e401604b14a21b0e954..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/logo-rss.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Logo Rss</title><path d="M108.56 342.78a60.34 60.34 0 1060.56 60.44 60.63 60.63 0 00-60.56-60.44z"/><path d="M48 186.67v86.55c52 0 101.94 15.39 138.67 52.11s52 86.56 52 138.67h86.66c0-151.56-125.66-277.33-277.33-277.33z"/><path d="M48 48v86.56c185.25 0 329.22 144.08 329.22 329.44H464C464 234.66 277.67 48 48 48z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/logo-sass.svg b/ionic/platforms/android/app/src/main/assets/www/svg/logo-sass.svg deleted file mode 100644 index 9ab2b538b7252989e29ccc797c7b55e066dfc4cd..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/logo-sass.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Logo Sass</title><path d="M511.78 328.07c-1.47-11.92-7.51-22.26-18-30.77a3.58 3.58 0 00-.43-.44l-.53-.38-.17-.12-5.57-4-.19-.14-.71-.5a3.5 3.5 0 00-.83-.35c-17.62-10.49-46.79-17.84-91.42-2.09-10.65-17.92-11.86-32.28-4.73-54.28 1.27-3.83.09-6.36-3.71-8-7.64-3.25-18.1-1.59-25.52.37-3.46.9-5.54 2.86-6.2 5.83-4.7 22-18.36 42.1-31.57 61.5l-.78 1.14c-8.14-17.26-6.45-30.63-.78-47.38 1.13-3.34.24-5.56-2.89-7.22-8.74-4.51-21.85-1.41-27.07.13-6.62 1.93-13.72 19.82-21.65 41.24-2 5.39-3.72 10-4.75 12.15-2.45 5-4.79 10.7-7.27 16.75-5.6 13.69-11.91 29.1-20.93 38.78-3.28-7.25 1.88-18.68 6.89-29.77 5.93-13.11 11.53-25.5 5.08-33.41a11.82 11.82 0 00-8.33-4.32 13.26 13.26 0 00-6.15 1c.67-5.65.7-10.11-.95-15.5-2.36-7.69-8.49-12-16.93-11.77-19.22.56-35.48 14.88-45.75 26.8-6.84 8-22 14.1-35.31 19.45-5.26 2.23-10.26 4.23-14.43 6.23-6.65-5.62-15.1-11.29-24-17.28-25-16.78-53.33-35.81-54.31-61.61-1.4-38.11 42-65.14 79.88-84.43 28.71-14.6 53.67-24.28 76.31-29.57 31.8-7.43 58.66-5.93 79.82 4.44 11.58 5.67 17 18 13.56 30.68-9 32.95-46.29 55.53-78.18 65.69-19.21 6.12-35.56 8.68-50 7.84-18.1-1.05-32.88-10.13-39.2-14a21.18 21.18 0 00-3.2-1.8l-.29-.07a3.21 3.21 0 00-3.19 1c-1.3 1.55-.84 4-.37 5.24 6.15 16.07 18.85 26.22 37.74 30.17a92.09 92.09 0 0018.78 1.79c44.21 0 100.62-25.49 121.34-46.48 14.13-14.3 24.42-29 28.68-54.35 4.45-26.55-13.55-45-31.89-53.5-44.57-20.57-95.19-12.44-129.81-2-40.5 12.21-82.4 34.41-114.94 60.93-40.12 32.67-54.62 63-43.12 90.25 11.81 27.93 40.61 45.4 68.46 62.3 9 5.45 17.56 10.64 25.27 16-2.32 1.13-4.69 2.28-7.1 3.43-23.38 11.33-49.9 24.08-64.61 45.15-10.68 15.35-12.68 30.63-5.94 45.42 3.6 7.87 10 13.21 18.89 15.87A50 50 0 0053 432c17.31 0 36.36-7 46.73-13.47 18.32-11.5 30.19-26.94 35.29-45.89 4.54-16.86 3.45-33.61-3.15-48.56l22.45-11.32c-10.83 36-2.53 57.5 6.59 69.36 3.36 4.37 9.42 7 16.19 7.12s13-2.43 16.52-6.77c6.66-8.25 11.58-17.9 16.11-27.55-.24 6.3.06 12.68 2.21 18.09 1.93 4.87 5.11 8.1 9.21 9.34 4.36 1.33 9.47.21 14.39-3.15 22.17-15.17 37.33-51.58 49.51-80.85 1.73-4.16 3.39-8.16 5-11.9a152.5 152.5 0 0012.5 31.07c1.18 2.14 1.08 3.08-.52 4.84-2.41 2.64-5.77 5.83-9.33 9.21-10.78 10.23-24.2 23-26 34.23-.7 4.5 2.4 8.6 7.21 9.53 14.47 2.88 31.9-1.33 46.64-11.25 13.4-9 18.44-21.55 15-37.19-3.33-15.06 4.27-33.76 22.59-55.62 3 12.53 7 22.66 12.52 31.53l-.15.12c-13.34 11.65-31.62 27.6-28.78 46.95a13.35 13.35 0 005.58 9.22 14.22 14.22 0 0011.2 2.06c17.47-3.67 30.62-11.06 40.18-22.57s6.07-24.27 2.85-34.17c25-6.78 47.26-6.61 68.1.5 11.7 4 20.09 10.57 24.93 19.64 6.09 11.41 2.8 21.94-9.29 29.65-3.71 2.37-5.5 3.82-5.61 5.65a2.65 2.65 0 001 2.23c1.4 1.15 5.72 3.15 15.49-3 9-5.65 14.28-13.34 15.63-23a39 39 0 00-.01-8.01zm-399.73 25.06l-.1 1.28c-1.56 14.64-9 27.4-22.15 38-8.26 6.66-17.23 10.75-25.25 11.53-5.6.54-9.67-.22-12.09-2.27-1.81-1.53-2.78-3.82-3-7-1.64-25.48 38.32-50.8 60.81-59.13a51.39 51.39 0 011.78 17.59zm102.35-71.86c-3.7 21.09-14.49 60.9-31.45 76.35-.81.74-1.49 1-1.8.93s-.55-.44-.8-1c-5.66-13.12-3.57-35.28 5-52.69 6.59-13.42 16-22.31 26.52-25a5.29 5.29 0 011.34-.19 1.58 1.58 0 011 .27 1.64 1.64 0 01.19 1.33zm83.49 76.88c-3.19 3.33-7.56 2.88-6.53 1.66l16.24-17.24c-1.31 5.93-5.18 10.84-9.71 15.58zm67.37-14.91a14.07 14.07 0 01-4.93 1.39c-.46-9.07 8.33-19.28 17-26.09 2.33 9.46-2.44 19.46-12.07 24.7z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/logo-skype.svg b/ionic/platforms/android/app/src/main/assets/www/svg/logo-skype.svg deleted file mode 100644 index 76788ca941b5168bac3d54feb75b66db4be6ff1c..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/logo-skype.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Logo Skype</title><path d="M467.16 303.6a205.69 205.69 0 004.9-45.15c0-116.32-95.69-210.7-213.79-210.7a221.83 221.83 0 00-36.52 3A123.58 123.58 0 00155.93 32C87.55 32 32 86.72 32 154.15A119.56 119.56 0 0049 216a211.16 211.16 0 00-4.32 42.35c0 116.44 95.69 210.7 213.67 210.7a214 214 0 0039.09-3.5A125.45 125.45 0 00356.07 480C424.57 480 480 425.28 480 357.85a118 118 0 00-12.84-54.25zM368 359c-9.92 13.76-24.51 24.73-43.41 32.43S283.36 403 257.69 403c-30.69 0-56.36-5.37-76.55-15.87a101 101 0 01-35.24-30.8c-9.11-12.83-13.66-25.66-13.66-38 0-7.7 3-14.35 8.87-19.95 5.84-5.37 13.42-8.17 22.29-8.17 7.35 0 13.65 2.1 18.79 6.42 4.9 4.08 9.1 10.15 12.48 18.08A108.09 108.09 0 00207 336.15q6.32 8.22 17.86 13.65c7.82 3.62 18.2 5.48 31 5.48 17.62 0 32.09-3.73 42.94-11.08 10.74-7.12 15.88-15.75 15.88-26.25 0-8.28-2.69-14.82-8.29-19.95-5.83-5.37-13.42-9.57-22.87-12.37-9.69-3-22.87-6.18-39.21-9.56-22.17-4.67-41-10.27-56-16.57-15.28-6.42-27.65-15.4-36.76-26.48-9.22-11.32-13.77-25.55-13.77-42.24a67.86 67.86 0 0114.47-42.58c9.57-12.25 23.46-21.82 41.55-28.35 17.74-6.53 38.86-9.8 62.66-9.8 19.14 0 35.83 2.22 49.83 6.42s25.91 10.15 35.36 17.38 16.34 14.93 20.77 23 6.66 16.22 6.66 24c0 7.46-2.92 14.35-8.76 20.3a29.65 29.65 0 01-21.94 9.1c-7.93 0-14.12-1.87-18.43-5.6-4-3.5-8.17-8.87-12.72-16.69-5.37-9.91-11.79-17.85-19.14-23.45-7.24-5.36-19.14-8.16-35.71-8.16-15.29 0-27.77 3-37 9-8.87 5.72-13.19 12.37-13.19 20.18a18.26 18.26 0 004.32 12.25 38.13 38.13 0 0012.72 9.57 90.14 90.14 0 0017.15 6.53c6 1.64 15.87 4.09 29.53 7.12 17.38 3.62 33.25 7.82 47.26 12.13 14.24 4.55 26.49 10 36.52 16.45a72.93 72.93 0 0124.16 25.09c5.72 10 8.64 22.63 8.64 37.1A75.09 75.09 0 01368 359z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/logo-slack.svg b/ionic/platforms/android/app/src/main/assets/www/svg/logo-slack.svg deleted file mode 100644 index 0491f79bb02d355760de0c5b51916eef5d420087..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/logo-slack.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Logo Slack</title><path d="M126.12 315.1A47.06 47.06 0 1179.06 268h47.06zM149.84 315.1a47.06 47.06 0 0194.12 0v117.84a47.06 47.06 0 11-94.12 0zM196.9 126.12A47.06 47.06 0 11244 79.06v47.06zM196.9 149.84a47.06 47.06 0 010 94.12H79.06a47.06 47.06 0 010-94.12zM385.88 196.9a47.06 47.06 0 1147.06 47.1h-47.06zM362.16 196.9a47.06 47.06 0 01-94.12 0V79.06a47.06 47.06 0 1194.12 0zM315.1 385.88a47.06 47.06 0 11-47.1 47.06v-47.06zM315.1 362.16a47.06 47.06 0 010-94.12h117.84a47.06 47.06 0 110 94.12z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/logo-snapchat.svg b/ionic/platforms/android/app/src/main/assets/www/svg/logo-snapchat.svg deleted file mode 100644 index 389cf0704a427b909e3883a122266e7d5d0dced7..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/logo-snapchat.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Logo Snapchat</title><path d="M496 347.21a190.31 190.31 0 01-32.79-5.31c-27.28-6.63-54.84-24.26-68.12-52.43-6.9-14.63-2.64-18.59 11.86-24 14.18-5.27 29.8-7.72 36.86-23 5.89-12.76 1.13-27.76-10.41-35.49-15.71-10.53-30.35-.21-46.62 2.07 3.73-46.66 8.66-88.57-22.67-127.73C338.14 48.86 297.34 32 256.29 32s-81.86 16.86-107.81 49.33c-31.38 39.26-26.4 81.18-22.67 127.92-16.32-2.25-30.81-12.79-46.63-2.18-14.72 9.85-17 29.76-5.44 43s31.64 9.5 43.45 20.6c6.49 6.09 3.49 12.61-.35 20.14-14.48 28.4-39.26 45.74-69.84 51.56-4 .76-22.31 2.87-31 3.65 0 9.28.52 16.78 1.63 21.73 2.94 13.06 12.32 23.58 23.69 30.1 11.18 6.4 35.48 6.43 41.68 15.51 3 4.48 1.76 12.28 5.33 17.38a23.8 23.8 0 0015.37 9.75c18.61 3.61 37.32-7.2 56.42-2.1 14.85 3.95 26.52 15.87 39.26 24 15.51 9.85 32.34 16.42 50.83 17.49 38.1 2.21 59.93-18.91 90.58-36.42 19.5-11.14 38.15-3.86 58.88-2.68 20.1 1.15 23.53-9.25 29.62-24.88a27.37 27.37 0 001.54-4.85 10.52 10.52 0 002.28-1.47c2-1.57 10.55-2.34 12.76-2.86 10.28-2.44 20.34-5.15 29.17-11.2 11.31-7.76 17.65-18.5 19.58-32.64a93.73 93.73 0 001.38-15.67zM208 128c8.84 0 16 10.74 16 24s-7.16 24-16 24-16-10.74-16-24 7.16-24 16-24zm103.62 77.7c-15.25 15-35 23.3-55.62 23.3a78.37 78.37 0 01-55.66-23.34 8 8 0 0111.32-11.32A62.46 62.46 0 00256 213c16.39 0 32.15-6.64 44.39-18.7a8 8 0 0111.23 11.4zM304 176c-8.84 0-16-10.75-16-24s7.16-24 16-24 16 10.75 16 24-7.16 24-16 24z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/logo-soundcloud.svg b/ionic/platforms/android/app/src/main/assets/www/svg/logo-soundcloud.svg deleted file mode 100644 index 696805c2ba82098b6ae6753f7af84d6818f37a59..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/logo-soundcloud.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Logo Soundcloud</title><path d="M5.8 278a2.11 2.11 0 00-2 2L0 308.64l3.74 28.16a2.12 2.12 0 002.05 2 2.14 2.14 0 002-2l4.44-28.17L7.83 280a2.14 2.14 0 00-2-2zM26.85 262.32a2.13 2.13 0 00-4.26 0l-5 46.32 5 45.3a2.13 2.13 0 004.26 0l5.73-45.31-5.73-46.32zM106.17 219.59a4 4 0 00-3.87 3.87l-4 85.22 4 55.08a3.88 3.88 0 007.75 0l4.53-55.08-4.53-85.22a4 4 0 00-3.88-3.87zM65.12 249.21a3.09 3.09 0 00-3 3l-4.52 56.45 4.51 54.63a3 3 0 006 0l5.13-54.63-5.13-56.48a3.1 3.1 0 00-2.99-2.97zM147.88 367.6a4.83 4.83 0 004.75-4.74l3.93-54.15-3.93-113.46a4.75 4.75 0 00-9.5 0l-3.49 113.45 3.49 54.17a4.81 4.81 0 004.75 4.73zM233.28 367.85a6.6 6.6 0 006.5-6.52l2.74-52.6-2.74-131a6.5 6.5 0 10-13 0l-2.45 131c0 .08 2.45 52.67 2.45 52.67a6.59 6.59 0 006.5 6.45zM190.26 367.65a5.67 5.67 0 005.62-5.64l3.34-53.33-3.34-114.28a5.63 5.63 0 10-11.25 0l-3 114.29 3 53.32a5.66 5.66 0 005.63 5.6zM85.56 367.15a3.53 3.53 0 003.44-3.41l4.83-55.09-4.83-52.4a3.44 3.44 0 00-6.88 0l-4.26 52.38 4.26 55.08a3.5 3.5 0 003.44 3.44zM44.84 364.13a2.67 2.67 0 002.57-2.52l5.43-53-5.42-55a2.57 2.57 0 00-5.14 0l-4.78 55 4.78 53a2.62 2.62 0 002.56 2.53zM211.69 192.53a6.1 6.1 0 00-6.07 6.09l-2.71 110.11 2.71 53a6.07 6.07 0 0012.13 0l3-53-3-110.13a6.1 6.1 0 00-6.06-6.07zM127 367.71a4.41 4.41 0 004.31-4.3l4.23-54.71-4.28-104.7a4.32 4.32 0 00-8.63 0l-3.74 104.7 3.75 54.73a4.38 4.38 0 004.36 4.28zM174.17 362.54l3.63-53.8-3.63-117.28a5.19 5.19 0 10-10.37 0l-3.23 117.28 3.23 53.83a5.18 5.18 0 0010.36 0zM449 241.1a62.42 62.42 0 00-24.33 4.9c-5-57.18-52.61-102-110.66-102a111.92 111.92 0 00-40.28 7.58c-4.75 1.85-6 3.76-6.06 7.46V360.4a7.66 7.66 0 006.8 7.5l174.56.11c34.78 0 63-28.41 63-63.45s-28.2-63.46-63-63.46zM254.79 158.87a7 7 0 00-6.94 7L245 308.75l2.85 51.87a6.94 6.94 0 1013.87-.06v.06l3.09-51.87-3.09-142.93a7 7 0 00-6.93-6.95z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/logo-stackoverflow.svg b/ionic/platforms/android/app/src/main/assets/www/svg/logo-stackoverflow.svg deleted file mode 100644 index 4236e284e9eb2d835a13a3157fda8e23eb615c28..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/logo-stackoverflow.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Logo Stackoverflow</title><path d="M392 440V320h40v160H64V320h40v120z"/><path d="M149.1 308.77l198.57 40.87 8.4-39.32-198.57-40.87zm26.27-93.12L359.22 300 376 263.76l-183.82-84.84zm50.95-89l156 127.78 25.74-30.52-156-127.78zM328 32l-33.39 23.8 120.82 160.37L448 192zM144 400h204v-40H144z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/logo-steam.svg b/ionic/platforms/android/app/src/main/assets/www/svg/logo-steam.svg deleted file mode 100644 index 25a8e8e4274c16b114293115f82116db5f6c84d3..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/logo-steam.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Logo Steam</title><path d="M478.8 208.2a36 36 0 11-36-36 36 36 0 0136 36zM442.6 139a69.42 69.42 0 00-69.4 68.7l-43.2 62a48.86 48.86 0 00-5.4-.3 51.27 51.27 0 00-26.4 7.3L102.4 198a51.8 51.8 0 10-50.6 62.9 51.27 51.27 0 0026.4-7.3L274 332.2a51.76 51.76 0 00102.1-5.9l66.5-48.6a69.35 69.35 0 100-138.7zm0 22.9a46.45 46.45 0 11-46.5 46.5 46.54 46.54 0 0146.5-46.5zm-390.8 9a38.18 38.18 0 0133.7 20.2l-18.9-7.6v.1a30.21 30.21 0 00-22.6 56v.1l16.1 6.4a36.8 36.8 0 01-8.2.9 38.05 38.05 0 01-.1-76.1zm272.8 112.2a38.1 38.1 0 11-33.7 55.9c6.3 2.5 12.5 5 18.8 7.6a30.27 30.27 0 1022.5-56.2l-15.9-6.4a46.83 46.83 0 018.3-.9z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/logo-stencil.svg b/ionic/platforms/android/app/src/main/assets/www/svg/logo-stencil.svg deleted file mode 100644 index 615d66e28a4254c3e4fff7570a3a86491601ff48..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/logo-stencil.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Logo Stencil</title><path d="M188.8 334.07h197.33L279.47 448H83.2zM512 199H106.61L0 313h405.39zM232.2 64h196.6L322.62 177.93H125.87z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/logo-tableau.svg b/ionic/platforms/android/app/src/main/assets/www/svg/logo-tableau.svg deleted file mode 100644 index 47a5cecda2644f51fda8eb47430eb48d5aa0a33c..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/logo-tableau.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Logo Tableau</title><path d="M242.69 340.3h26.62v-72.6h67v-25.82h-67v-72.6h-26.62v72.6h-66.15v25.82h66.15zM119.26 445.18h22.59v-64.54h59.7v-20.17h-59.7v-65.34h-22.59v65.34h-59.7v20.17h59.7zM370.15 212h22.59v-64.5h60.5v-19.37h-60.5V62.79h-22.59v65.34h-59.7v19.37h59.7zM246.72 496h19.36v-46h41.15v-16.92h-41.15v-46h-19.36v46h-40.33V450h40.33zM120.07 212h21v-65.31h60.51v-18.56H141V62.79h-21v65.34H59.56v18.56h60.51zM435.72 308.84h19.36v-45.18H496v-17.74h-40.92v-45.18h-19.36v45.18h-40.33v17.74h40.33z"/><path fill-rule="evenodd" d="M370.15 445.18h22.59v-64.54h60.5v-20.17h-60.5v-65.34h-22.59v65.34h-59.7v20.17h59.7z"/><path d="M307 74.08V60.37h-40.34V16h-14.52v44.37h-40.33v13.71h40.33v44.37h14.52V74.08zM56.11 305.61h14.52v-44.37H111v-13.71H70.63V204H56.11v43.56H16v14.52l40.11-.08z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/logo-tiktok.svg b/ionic/platforms/android/app/src/main/assets/www/svg/logo-tiktok.svg deleted file mode 100644 index a4995f3e691823c2ee8fb178911c87461d4b96ee..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/logo-tiktok.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Logo Tiktok</title><path d="M412.19 118.66a109.27 109.27 0 01-9.45-5.5 132.87 132.87 0 01-24.27-20.62c-18.1-20.71-24.86-41.72-27.35-56.43h.1C349.14 23.9 350 16 350.13 16h-82.44v318.78c0 4.28 0 8.51-.18 12.69 0 .52-.05 1-.08 1.56 0 .23 0 .47-.05.71v.18a70 70 0 01-35.22 55.56 68.8 68.8 0 01-34.11 9c-38.41 0-69.54-31.32-69.54-70s31.13-70 69.54-70a68.9 68.9 0 0121.41 3.39l.1-83.94a153.14 153.14 0 00-118 34.52 161.79 161.79 0 00-35.3 43.53c-3.48 6-16.61 30.11-18.2 69.24-1 22.21 5.67 45.22 8.85 54.73v.2c2 5.6 9.75 24.71 22.38 40.82A167.53 167.53 0 00115 470.66v-.2l.2.2c39.91 27.12 84.16 25.34 84.16 25.34 7.66-.31 33.32 0 62.46-13.81 32.32-15.31 50.72-38.12 50.72-38.12a158.46 158.46 0 0027.64-45.93c7.46-19.61 9.95-43.13 9.95-52.53V176.49c1 .6 14.32 9.41 14.32 9.41s19.19 12.3 49.13 20.31c21.48 5.7 50.42 6.9 50.42 6.9v-81.84c-10.14 1.1-30.73-2.1-51.81-12.61z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/logo-tumblr.svg b/ionic/platforms/android/app/src/main/assets/www/svg/logo-tumblr.svg deleted file mode 100644 index 9bb39d99777335c225ae4c65791b943217b8a3f9..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/logo-tumblr.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Logo Tumblr</title><path d="M390 32H120c-49.19 0-88 38.81-88 88v270c0 49.19 38.81 90 88 90h270c49.19 0 90-40.81 90-90V120c0-49.19-40.81-88-90-88zm-54 364h-52c-42.51 0-72-23.68-72-76v-80h-36v-48c42.51-11 57.95-48.32 60-80h44v72h52v56h-52l-.39 70.51c0 21.87 11 29.43 28.62 29.43L336 340z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/logo-tux.svg b/ionic/platforms/android/app/src/main/assets/www/svg/logo-tux.svg deleted file mode 100644 index 3299f27c6a66c23d0eb69d5d7b0b51ae8444fd87..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/logo-tux.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Logo Tux</title><path d="M443.66 405.05c-1.46-.79-2.85-1.54-4-2.2-6.47-3.83-13-10.52-11.85-17.83 2.42-15.94 2.89-23.47-.49-28.79a15.61 15.61 0 00-7.67-6.2v-.06c1.41-2.56 2.26-5.66 2.83-10.12 1.44-11-5-44-13.7-70.7-8.08-24.68-29.24-50-44.7-68.56l-3.61-4.34c-23.88-28.93-24.34-38.19-26.55-82.67-.32-6.47-.69-13.8-1.17-22C329.87 41.43 304 16 256 16c-25.2 0-44.62 7.15-57.72 21.26C187.79 48.55 182 64 182 80.78c0 29.52 2 53 2.15 54.29 1.4 35.7 1 41.22-8.31 57.55-2.23 3.93-8.38 10.87-14.89 18.21-8.48 9.57-18.09 20.41-23.36 29.22-3.77 6.31-5.88 12.63-8.11 19.33-3.4 10.21-7.26 21.78-18.15 36.57-12.57 17.07-15.52 29.61-11 47.45-4.94 6.45-4.83 14.37-4.75 20.23a25.84 25.84 0 01-.3 6.09c-2.29 7.59-12.42 9.4-22 10.18-1.58.12-3.1.21-4.55.29-7.26.39-13.53.74-17.13 6.3-3.47 5.36-1.12 13.8 2.14 25.48.72 2.58 1.46 5.25 2.19 8.06 1.83 7-.16 10.48-2.68 14.84-2.44 4.21-5.21 9-5.21 17.55 0 14.67 20 18 43.05 21.94 7.36 1.24 15 2.53 22.63 4.24a225.58 225.58 0 0134.08 10.68c9.72 3.73 17.4 6.68 26.43 6.68 16.18 0 28.25-9.77 39.92-19.21l2.15-1.75c5.53-4.49 21.5-4 34.34-3.64 3.46.1 6.73.2 9.65.2h6.22c13.48-.08 31.94-.18 42.23 2.5 3.75 1 6.2 3.72 9.29 7.19 5.87 6.56 13.17 14.75 33.39 14.75 19.39 0 29.55-8.71 41.32-18.8 7.16-6.13 14.56-12.48 25.07-17.86 3.92-2 7.62-3.87 11.08-5.61 22.64-11.38 35.11-17.65 35.11-27.82 0-9.91-12.24-16.5-20.34-20.86zM211.11 88.38a13.91 13.91 0 0112.47 9c1.95 5.55 1.81 10.42.21 12.94 0 0-.22-1-.36-1.44a14.85 14.85 0 00-6.44-8.59 11.35 11.35 0 00-8.94-1.47c-4.26 1.13-8.41 5-8.91 18.79-5.16-10.47-2.31-18 .92-23 2.31-3.73 7.47-6.33 11.05-6.23zm-17.5 375C192 479.24 175.2 479 170.09 478.59c-9.81-.82-21.66-4.69-33.13-8.43-4.52-1.47-9.19-3-13.73-4.34-13.2-3.89-30.12-6.74-43.72-9-3.22-.55-6.27-1.06-9.05-1.55s-4.61-1.27-5.2-2.3c-1-1.65.38-5.25 1.93-9.41C69.27 438 72.11 430.34 72 421c0-3.91-1.47-8.3-2.84-12.56-1.62-5-3.28-10.17-1.93-12.62 1.23-2.23 6.75-2.49 11.6-2.49h2.26c3.55 0 6.62.06 8.75-.53 6.51-1.81 14.86-6.92 17.81-13.88.9-2.17 1.37-6.94 2-14 .37-4.12.74-8.37 1.22-10.58a3.55 3.55 0 012.11-2.55c1.65-.77 6.78-1.91 18.63 4.08 11.18 5.65 22.88 25.84 34.2 45.37 3.56 6.14 6.92 11.94 10.3 17.36 14.04 22.54 18.83 31.6 17.5 44.8zm128.84-31.56a68.74 68.74 0 01-4.55 10.9.58.58 0 01-1.08-.42 56.61 56.61 0 002.11-18.43c-.25-4.73-.4-7.59-2.66-8.51s-4.26.83-9.45 5.54c-1.1 1-2.36 2.14-3.78 3.4-10.8 9.47-26.88 20.68-55.61 23.37-16.84 1.59-27.59-4.63-30.92-8.14a2.16 2.16 0 00-3.07-.08 2.23 2.23 0 00-.51 2.29c2.12 6.84 1.2 12.26-.49 16.19-.95 2.2-1.85 2.05-2-.34-.25-4.64-1-9.88-3-14.19-3.11-6.94-7-14.34-8.89-17.88v-.05c3.24-1.49 8.86-4.83 11.37-10.88s4.48-18-9.82-31.74c-6.28-6.05-22.1-17.16-36.06-27-10.9-7.65-22.17-15.56-23.65-17.51-4.49-5.89-6.37-9.3-6.94-19.65.07-2.3.13-4.59.19-6.89l.27-2.49a.58.58 0 011.15 0 63.07 63.07 0 002 9.72c1.08 3.73 2.4 7.58 3.62 9.18 3.19 4.22 7.56 7.39 11.67 8.49a5.48 5.48 0 005-.72c2.93-2.33 2.65-7.6 2.19-16.34-.47-9-1.11-21.34 1.85-34.55 5.62-25 10.91-32.51 17.61-42 .86-1.22 1.75-2.47 2.65-3.79 1.44-2.08 3-4.1 4.67-6.23 7.47-9.61 15.93-20.49 13.92-40.95-.51-5.19-.76-8.83-.86-11.39a1 1 0 011.88-.59l.49.77 1.21 2c4.86 8 13.64 22.57 25.1 22.57a13.62 13.62 0 002.36-.21c23.39-3.93 51.9-30.25 52.17-30.51 3.12-3 2.84-6.14 1.64-7.91a5.18 5.18 0 00-6.45-1.72c-3.29 1.4-7.14 3.15-11.22 5-13.82 6.27-37 16.75-42.25 14.34a23.11 23.11 0 01-6.32-5.13 1 1 0 011.14-1.65c5.59 2.29 9.55 1.45 14.2-.08l1-.34c9.37-3.09 14.2-4.77 30.76-12.08a97.55 97.55 0 0116.26-5.93c4-1 6.42-1.63 7.71-4.34a6.65 6.65 0 00-.5-7.13c-1.53-1.87-4.07-2.57-7-1.9-3.22.75-4.7 3-6.41 4.49-2.4 2.05-5 4.16-17.19 8.65-27 10-34.58 10.61-45.21 3.43-9.84-6.69-15.15-13.23-15.15-16 0-2.13 5.45-5.7 8.71-7.84 1.33-.87 2.59-1.69 3.62-2.46 4.34-3.22 13-11.39 13.38-11.73 5.4-5.41 17.91-2.18 25 2.58a2.23 2.23 0 001.72.41 2.14 2.14 0 001.68-2.58c-4.2-17.46-.13-27.34 4-32.55a22.58 22.58 0 0117.48-8.48c12.81 0 21.76 10 21.76 24.42 0 11-2.82 16.79-5.48 20.3a1.73 1.73 0 01-2.58.18 1.78 1.78 0 01-.24-2.2A24.61 24.61 0 00290 114a16.58 16.58 0 00-16.84-16.67c-3.94 0-13.48 1.5-16.77 15.44a29.81 29.81 0 00-.34 11.07l.08.71c.9 7.38 15.3 12.51 27.23 15.51 11.36 2.85 13 6.22 8.84 19.63s3.11 26.23 5.7 29.57a78.3 78.3 0 018.31 12.47 93.8 93.8 0 016.62 16.48c2.17 6.79 4.05 12.65 10.63 21.22 11.07 14.4 17.66 48.64 15 78-.21 2.41-.53 4.29-.77 5.67-.43 2.53-.72 4.2.66 5.38s3.16.7 7.26-.63l3.43-1.09a109.33 109.33 0 0112.58-2.8 2.15 2.15 0 001.59-1.16c3.43-6.91 3.85-15.22 4-22.47q0-1.31.06-2.79c.19-7.77.45-18.93-2.95-32a1 1 0 011.93-.64 93 93 0 016.66 25.55c2.55 22.58-1.9 32.09-1.94 32.17a1.61 1.61 0 00.95 2.25 17.12 17.12 0 016.95 4.67c1.46 1.66.93 2.4-1.14 1.62a36.26 36.26 0 00-12.77-2.29c-10.4 0-18.09 4.95-21.51 9.19-3.19 3.94-3.7 7.67-3.83 11.27l-.06.05c-7.48-.75-12.94 1.21-17.47 6.21l-.08.09c-6.26 7.75-4 24.63-1.29 38.48 1.28 6.45 5.59 25.52 1.73 37.68zm96.1 10.07c-15.71 6.71-25.43 14.51-34 21.39-5.65 4.53-11 8.81-17.28 12.14-10.12 5.34-24.91 6.53-33.27-7.7-2.37-4-.71-9.86 1.58-17.95 3.05-10.75 7.23-25.46 3.71-44.65-.94-5.12-1.77-9.51-2.49-13.31C334 377 332.9 371.43 334 367c.63-2.45 3.43-3 5.87-3a20.83 20.83 0 012.63.19 29.51 29.51 0 007 12.1c5.7 5.86 13.63 8.83 23.56 8.85 2.1.17 25.94 1.55 36.54-22.4 1.46.18 3.65.7 4.3 2.3 1.28 3.19-.27 8.91-1.52 13.5-.9 3.31-1.68 6.16-1.63 8.37.31 16 11 22.78 25.83 32.16 1.79 1.13 3.66 2.31 5.55 3.54S445 425 445 426c-.52 4.79-20 13.16-26.45 15.91z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/logo-twitch.svg b/ionic/platforms/android/app/src/main/assets/www/svg/logo-twitch.svg deleted file mode 100644 index 7f4f3c30d3ab4284b233af3c9ee387568280fa22..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/logo-twitch.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Logo Twitch</title><path d="M80 32l-32 80v304h96v64h64l64-64h80l112-112V32zm336 256l-64 64h-96l-64 64v-64h-80V80h304z"/><path d="M320 143h48v129h-48zM208 143h48v129h-48z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/logo-twitter.svg b/ionic/platforms/android/app/src/main/assets/www/svg/logo-twitter.svg deleted file mode 100644 index 9b068f88afa4240353e8e3798f301d3a2b2dfa7f..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/logo-twitter.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Logo Twitter</title><path d="M496 109.5a201.8 201.8 0 01-56.55 15.3 97.51 97.51 0 0043.33-53.6 197.74 197.74 0 01-62.56 23.5A99.14 99.14 0 00348.31 64c-54.42 0-98.46 43.4-98.46 96.9a93.21 93.21 0 002.54 22.1 280.7 280.7 0 01-203-101.3A95.69 95.69 0 0036 130.4c0 33.6 17.53 63.3 44 80.7A97.5 97.5 0 0135.22 199v1.2c0 47 34 86.1 79 95a100.76 100.76 0 01-25.94 3.4 94.38 94.38 0 01-18.51-1.8c12.51 38.5 48.92 66.5 92.05 67.3A199.59 199.59 0 0139.5 405.6a203 203 0 01-23.5-1.4A278.68 278.68 0 00166.74 448c181.36 0 280.44-147.7 280.44-275.8 0-4.2-.11-8.4-.31-12.5A198.48 198.48 0 00496 109.5z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/logo-usd.svg b/ionic/platforms/android/app/src/main/assets/www/svg/logo-usd.svg deleted file mode 100644 index 77b003e0639e7bb3fa934ed2f3093ed397c7fe58..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/logo-usd.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Logo Usd</title><path d="M240 480v-36.42C160.53 439 112.25 398.06 112 336h72c1.77 26.34 23.86 46.45 56 50v-98l-26.77-7c-61-14.18-93.64-49.39-93.64-102.08C119.59 116.81 164.08 76.08 240 70V32h32v38c77.39 6.3 119 47.74 120 106h-72c-.76-24.06-15.83-43.39-48-46v92l30.82 7.28C367.61 243.46 400 277 400 332c0 64.34-43.74 105.88-128 111.32V480zm0-264v-86c-27.59 1.52-47.27 18.47-47.27 42.53 0 22.3 16.39 36.88 47.27 43.47zm32 78v92c38.15-1.54 56.38-18.92 56.38-45.77 0-24.58-18.23-41.13-56.38-46.23z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/logo-venmo.svg b/ionic/platforms/android/app/src/main/assets/www/svg/logo-venmo.svg deleted file mode 100644 index 546b6bea31194b514cccef7a5b698f54d8221175..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/logo-venmo.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Logo Venmo</title><path d="M444.17 32H70.28C49.85 32 32 46.7 32 66.89V441.6c0 20.31 17.85 38.4 38.28 38.4h373.78c20.54 0 35.94-18.2 35.94-38.39V66.89C480.12 46.7 464.6 32 444.17 32zM278 387H174.32l-41.57-248.56 90.75-8.62 22 176.87c20.53-33.45 45.88-86 45.88-121.87 0-19.62-3.36-33-8.61-44l82.63-16.72c9.56 15.78 13.86 32 13.86 52.57-.01 65.5-55.92 150.59-101.26 210.33z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/logo-vercel.svg b/ionic/platforms/android/app/src/main/assets/www/svg/logo-vercel.svg deleted file mode 100644 index 57976b6aa49b225ab2b21a46bd39658b3cf5a207..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/logo-vercel.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Logo Vercel</title><path fill-rule="evenodd" d="M256 48l240 416H16z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/logo-vimeo.svg b/ionic/platforms/android/app/src/main/assets/www/svg/logo-vimeo.svg deleted file mode 100644 index ba12c2b258c0e65336639981909d3a0d42a871fd..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/logo-vimeo.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Logo Vimeo</title><path d="M476.9 114c-5-23.39-17.51-38.78-40.61-46.27s-64.92-4.5-94.12 16.79c-26.79 19.51-46.26 54.42-54 78.28a4 4 0 005.13 5c10.77-3.8 21.72-7.1 34-6.45 15 .8 24.51 12 24.91 25.29.3 9.79-.2 18.69-3.6 27.68-10.74 28.68-27.61 56.46-47.55 80.75a72.49 72.49 0 01-10 9.89c-10.21 8.29-18.81 6.1-25.41-5.2-5.4-9.29-9-18.88-12.2-29.08-12.4-39.67-16.81-80.84-23.81-121.52-3.3-19.48-7-39.77-18-56.86-11.6-17.79-28.61-24.58-50-22-14.7 1.8-36.91 17.49-47.81 26.39 0 0-56 46.87-81.82 71.35l21.2 27s17.91-12.49 27.51-18.29c5.7-3.39 12.4-4.09 17.2.2 4.51 3.9 9.61 9 12.31 14.1 5.7 10.69 11.2 21.88 14.7 33.37 13.2 44.27 25.51 88.64 37.81 133.22 6.3 22.78 13.9 44.17 28 63.55 19.31 26.59 39.61 32.68 70.92 21.49 25.41-9.09 46.61-26.18 66-43.87 33.11-30.18 59.12-65.36 85.52-101.14 20.41-27.67 37.31-55.67 51.41-86.95C478.5 179.74 484 147.26 476.9 114z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/logo-vk.svg b/ionic/platforms/android/app/src/main/assets/www/svg/logo-vk.svg deleted file mode 100644 index 0db6c7d0bed605776abd6714ca827ea99028ab12..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/logo-vk.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Logo Vk</title><path d="M484.7 132c3.56-11.28 0-19.48-15.75-19.48h-52.37c-13.21 0-19.31 7.18-22.87 14.86 0 0-26.94 65.6-64.56 108.13-12.2 12.3-17.79 16.4-24.4 16.4-3.56 0-8.14-4.1-8.14-15.37V131.47c0-13.32-4.06-19.47-15.25-19.47H199c-8.14 0-13.22 6.15-13.22 12.3 0 12.81 18.81 15.89 20.84 51.76V254c0 16.91-3 20-9.66 20-17.79 0-61-66.11-86.92-141.44C105 117.64 99.88 112 86.66 112H33.79C18.54 112 16 119.17 16 126.86c0 13.84 17.79 83.53 82.86 175.77 43.21 63 104.72 96.86 160.13 96.86 33.56 0 37.62-7.69 37.62-20.5v-47.66c0-15.37 3.05-17.93 13.73-17.93 7.62 0 21.35 4.09 52.36 34.33C398.28 383.6 404.38 400 424.21 400h52.36c15.25 0 22.37-7.69 18.3-22.55-4.57-14.86-21.86-36.38-44.23-62-12.2-14.34-30.5-30.23-36.09-37.92-7.62-10.25-5.59-14.35 0-23.57-.51 0 63.55-91.22 70.15-122" fill-rule="evenodd"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/logo-vue.svg b/ionic/platforms/android/app/src/main/assets/www/svg/logo-vue.svg deleted file mode 100644 index b23ab2a28b19875cdc15d69914d4e1e447ccece9..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/logo-vue.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Logo Vue</title><path d="M256 144.03l-55.49-96.11h-79.43L256 281.61 390.92 47.92h-79.43L256 144.03z"/><path d="M409.4 47.92L256 313.61 102.6 47.92H15.74L256 464.08 496.26 47.92H409.4z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/logo-web-component.svg b/ionic/platforms/android/app/src/main/assets/www/svg/logo-web-component.svg deleted file mode 100644 index 440c75dae859db61b27c892f6b4eb7cc9b131a7c..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/logo-web-component.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Logo Web Component</title><path d="M179.9 388l-76.16-132 76.16 132zM179.9 388h152.21l76.15-132-76.15-132H179.9l-76.16 132 76.16 132zM103.74 256l76.16-132-76.16 132z" class="ionicon-fill-none"/><path d="M496 256L376 48H239.74l-43.84 76h136.21l76.15 132-76.15 132H195.9l43.84 76H376l120-208z"/><path d="M179.9 388l-76.16-132 76.16-132 43.84-76H136L16 256l120 208h87.74l-43.84-76z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/logo-wechat.svg b/ionic/platforms/android/app/src/main/assets/www/svg/logo-wechat.svg deleted file mode 100644 index 2c7191d116184afad41c9e0d347e5ed26f161e69..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/logo-wechat.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Logo Wechat</title><path data-name="XMLID 501 -1" d="M408.67 298.53a21 21 0 1120.9-21 20.85 20.85 0 01-20.9 21m-102.17 0a21 21 0 1120.9-21 20.84 20.84 0 01-20.9 21m152.09 118.86C491.1 394.08 512 359.13 512 319.51c0-71.08-68.5-129.35-154.41-129.35s-154.42 58.27-154.42 129.35 68.5 129.34 154.42 129.34c17.41 0 34.83-2.33 49.92-7 2.49-.86 3.48-1.17 4.64-1.17a16.67 16.67 0 018.13 2.34L454 462.83a11.62 11.62 0 003.48 1.17 5 5 0 004.65-4.66 14.27 14.27 0 00-.77-3.86c-.41-1.46-5-16-7.36-25.27a18.94 18.94 0 01-.33-3.47 11.4 11.4 0 015-9.35"/><path data-name="XMLID 505 -7" d="M246.13 178.51a24.47 24.47 0 010-48.94c12.77 0 24.38 11.65 24.38 24.47 1.16 12.82-10.45 24.47-24.38 24.47m-123.06 0A24.47 24.47 0 11147.45 154a24.57 24.57 0 01-24.38 24.47M184.6 48C82.43 48 0 116.75 0 203c0 46.61 24.38 88.56 63.85 116.53C67.34 321.84 68 327 68 329a11.38 11.38 0 01-.66 4.49C63.85 345.14 59.4 364 59.21 365s-1.16 3.5-1.16 4.66a5.49 5.49 0 005.8 5.83 7.15 7.15 0 003.49-1.17L108 351c3.49-2.33 5.81-2.33 9.29-2.33a16.33 16.33 0 015.81 1.16c18.57 5.83 39.47 8.16 60.37 8.16h10.45a133.24 133.24 0 01-5.81-38.45c0-78.08 75.47-141 168.35-141h10.45C354.1 105.1 277.48 48 184.6 48"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/logo-whatsapp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/logo-whatsapp.svg deleted file mode 100644 index c1b8ac0f9a0771b5b04e6df446dbe2b6fdc44019..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/logo-whatsapp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Logo Whatsapp</title><path d="M414.73 97.1A222.14 222.14 0 00256.94 32C134 32 33.92 131.58 33.87 254a220.61 220.61 0 0029.78 111L32 480l118.25-30.87a223.63 223.63 0 00106.6 27h.09c122.93 0 223-99.59 223.06-222A220.18 220.18 0 00414.73 97.1zM256.94 438.66h-.08a185.75 185.75 0 01-94.36-25.72l-6.77-4-70.17 18.32 18.73-68.09-4.41-7A183.46 183.46 0 0171.53 254c0-101.73 83.21-184.5 185.48-184.5a185 185 0 01185.33 184.64c-.04 101.74-83.21 184.52-185.4 184.52zm101.69-138.19c-5.57-2.78-33-16.2-38.08-18.05s-8.83-2.78-12.54 2.78-14.4 18-17.65 21.75-6.5 4.16-12.07 1.38-23.54-8.63-44.83-27.53c-16.57-14.71-27.75-32.87-31-38.42s-.35-8.56 2.44-11.32c2.51-2.49 5.57-6.48 8.36-9.72s3.72-5.56 5.57-9.26.93-6.94-.46-9.71-12.54-30.08-17.18-41.19c-4.53-10.82-9.12-9.35-12.54-9.52-3.25-.16-7-.2-10.69-.2a20.53 20.53 0 00-14.86 6.94c-5.11 5.56-19.51 19-19.51 46.28s20 53.68 22.76 57.38 39.3 59.73 95.21 83.76a323.11 323.11 0 0031.78 11.68c13.35 4.22 25.5 3.63 35.1 2.2 10.71-1.59 33-13.42 37.63-26.38s4.64-24.06 3.25-26.37-5.11-3.71-10.69-6.48z" fill-rule="evenodd"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/logo-windows.svg b/ionic/platforms/android/app/src/main/assets/www/svg/logo-windows.svg deleted file mode 100644 index d27186159c6160633b2925c9f0bda621617134fd..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/logo-windows.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Logo Windows</title><path d="M480 265H232v179l248 36V265zM216 265H32v150l184 26.7V265zM480 32L232 67.4V249h248V32zM216 69.7L32 96v153h184V69.7z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/logo-wordpress.svg b/ionic/platforms/android/app/src/main/assets/www/svg/logo-wordpress.svg deleted file mode 100644 index f56991600305f2171f9dc369c080b818a285423b..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/logo-wordpress.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Logo Wordpress</title><path d="M259 271.3L226.2 367h-.1l-25.4 73.1c1.8.5 3.5.9 5.3 1.4h.3a192.51 192.51 0 0049.5 6.5 157 157 0 0024.9-1.8 184.3 184.3 0 0032.5-7.1c2.6-.8 5.2-1.7 7.8-2.6-2.8-6-8.8-19.3-9.1-19.9zM80.8 180.5C70.8 203.1 64 230.9 64 256c0 6.3.3 12.6.9 18.8 6.9 71.2 52.9 131 116.1 157.9 2.6 1.1 5.3 2.2 8 3.2L96 180.6c-8-.3-9.5.2-15.2-.1z"/><path d="M430.2 175.4a188 188 0 00-15.1-26.6c-1.6-2.4-3.4-4.8-5.1-7.2A193 193 0 00325.1 77a189.2 189.2 0 00-69.2-13 191.51 191.51 0 00-149.4 71.7A196 196 0 0089 161.3c14.2.1 31.8.1 33.8.1 18.1 0 46-2.2 46-2.2 9.4-.6 10.4 13.1 1.1 14.2 0 0-9.4 1.1-19.8 1.6L213 362l37.8-113.3-26.8-73.6c-9.4-.5-18.1-1.6-18.1-1.6-9.4-.5-8.2-14.8 1-14.2 0 0 28.5 2.2 45.5 2.2 18.1 0 46-2.2 46-2.2 9.3-.6 10.5 13.1 1.1 14.2 0 0-9.3 1.1-19.7 1.6l62.3 185.6 17.3-57.6c8.7-22.4 13.1-40.9 13.1-55.7 0-21.3-7.7-36.1-14.3-47.6-8.7-14.3-16.9-26.3-16.9-40.4 0-15.9 12-30.7 29-30.7h2.2c26.2-.7 34.8 25.3 35.9 43v.6c.4 7.2.1 12.5.1 18.8 0 17.4-3.3 37.1-13.1 61.8l-39 112.8-22.3 65.7c1.8-.8 3.5-1.6 5.3-2.5 56.7-27.4 98-82 106.7-146.7a172.07 172.07 0 001.9-26 191.11 191.11 0 00-17.8-80.8z"/><path d="M256 48a208.06 208.06 0 0181 399.66A208.06 208.06 0 01175 64.34 206.7 206.7 0 01256 48m0-16C132.29 32 32 132.29 32 256s100.29 224 224 224 224-100.29 224-224S379.71 32 256 32z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/logo-xbox.svg b/ionic/platforms/android/app/src/main/assets/www/svg/logo-xbox.svg deleted file mode 100644 index 12ebed72299540301a414c3a4bd4a55b4dfb26ae..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/logo-xbox.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Logo Xbox</title><path d="M126.8 248.3c39.7-58.6 77.9-92.8 77.9-92.8s-42.1-48.9-92.8-67.4l-3.3-.8A224.13 224.13 0 0077.2 391c0-4.4.6-70.3 49.6-142.7zM480 256a223.71 223.71 0 00-76.6-168.7l-3.2.9c-50.7 18.5-92.9 67.4-92.9 67.4s38.2 34.2 77.9 92.8c49 72.4 49.6 138.3 49.5 142.7A222.8 222.8 0 00480 256zM201.2 80.9c29.3 13.1 54.6 34.6 54.6 34.6s25.5-21.4 54.8-34.6c36.8-16.5 64.9-11.3 72.3-9.5a224.06 224.06 0 00-253.8 0c7.2-1.8 35.2-7.1 72.1 9.5zM358.7 292.9C312.4 236 255.8 199 255.8 199s-56.3 37-102.7 93.9c-39.8 48.9-54.6 84.8-62.6 107.8l-1.3 4.8a224 224 0 00333.6 0l-1.4-4.8c-8-23-22.9-58.9-62.7-107.8z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/logo-xing.svg b/ionic/platforms/android/app/src/main/assets/www/svg/logo-xing.svg deleted file mode 100644 index 21f80eb84a105e4cf92ed06f67df09fbfb040878..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/logo-xing.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Logo Xing</title><path d="M313.8 303.9L469 32H365L209.4 303.8a1.35 1.35 0 000 1.7l98.9 173.8c.4.7.8.7 1.6.7H413l-99.3-174.7a1.74 1.74 0 01.1-1.4zM221.9 216.2L163 113a2 2 0 00-2-1H65l58.9 104.4a1.13 1.13 0 01.1.8L43 352h96.8a1.54 1.54 0 001.6-.9l80.5-133.7a2.44 2.44 0 000-1.2z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/logo-yahoo.svg b/ionic/platforms/android/app/src/main/assets/www/svg/logo-yahoo.svg deleted file mode 100644 index f6f1e56eb511f2e4008b327197bfd93f057b13cf..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/logo-yahoo.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Logo Yahoo</title><path d="M410.32 37.13c-13.56 0-27-.93-39.12-5.13L256 218.67 140.8 32c-12.12 4.2-24.84 5.13-38.4 5.13-13.32 0-26.52-1.05-38.4-5.13l153.6 248.15V480c12-4.08 25-5.13 38.4-5.13s26.4 1.05 38.4 5.13V280.5L448 32c-11.88 4-24.36 5.13-37.68 5.13z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/logo-yen.svg b/ionic/platforms/android/app/src/main/assets/www/svg/logo-yen.svg deleted file mode 100644 index fa22d953fa956479c4ee20647ac1b9125e39bcad..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/logo-yen.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Logo Yen</title><path d="M448 32h-80L256 253.13 144 32H64l112.37 208H128v48h73.56L216 319v17h-88v48h88v96h80v-96h88v-48h-88v-17l14.89-31H384v-48h-48.29z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/logo-youtube.svg b/ionic/platforms/android/app/src/main/assets/www/svg/logo-youtube.svg deleted file mode 100644 index 3ea6896ab4d4dc1183007583ec941bbfc52e2d1a..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/logo-youtube.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Logo Youtube</title><path d="M508.64 148.79c0-45-33.1-81.2-74-81.2C379.24 65 322.74 64 265 64h-18c-57.6 0-114.2 1-169.6 3.6C36.6 67.6 3.5 104 3.5 149 1 184.59-.06 220.19 0 255.79q-.15 53.4 3.4 106.9c0 45 33.1 81.5 73.9 81.5 58.2 2.7 117.9 3.9 178.6 3.8q91.2.3 178.6-3.8c40.9 0 74-36.5 74-81.5 2.4-35.7 3.5-71.3 3.4-107q.34-53.4-3.26-106.9zM207 353.89v-196.5l145 98.2z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/magnet-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/magnet-outline.svg deleted file mode 100644 index a5d7d837cd15d7c78787ad59700a158832a33000..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/magnet-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Magnet</title><path d="M421.83 293.82A144 144 0 00218.18 90.17M353.94 225.94a48 48 0 00-67.88-67.88" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-miterlimit="10" d="M192 464v-48M90.18 421.82l33.94-33.94M48 320h48" class="ionicon-stroke-width"/><path d="M286.06 158.06L172.92 271.19a32 32 0 01-45.25 0L105 248.57a32 32 0 010-45.26L218.18 90.17M421.83 293.82L308.69 407a32 32 0 01-45.26 0l-22.62-22.63a32 32 0 010-45.26l113.13-113.17M139.6 169.98l67.88 67.89M275.36 305.75l67.89 67.88" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/magnet-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/magnet-sharp.svg deleted file mode 100644 index 3db0dc52e9d86bb0c0e756cdc6e88df5fa591f7f..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/magnet-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Magnet</title><path stroke-linecap="square" stroke-miterlimit="10" d="M191.98 463.58v-48M90.16 421.4l33.94-33.94M47.98 319.58h48" class="ionicon-stroke-width"/><path d="M422.2 89.82a144 144 0 00-203.71-.07l-67.88 67.88 67.88 67.89 67.88-67.89a48 48 0 0168.46.59c18.3 18.92 17.48 49.24-1.14 67.86l-67.32 67.32 67.88 67.88 66.91-66.91c56.37-56.37 57.37-148.15 1.04-204.55zM82.718 225.517l45.255-45.254 67.883 67.882L150.6 293.4zM218.49 361.27l45.254-45.254 67.882 67.882-45.255 45.255z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/magnet.svg b/ionic/platforms/android/app/src/main/assets/www/svg/magnet.svg deleted file mode 100644 index 7ea4d118f581e514edb0351d053cc4ed6ddb2aeb..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/magnet.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Magnet</title><path stroke-linecap="round" stroke-miterlimit="10" d="M191.98 463.79v-48M90.16 421.61l33.94-33.94M47.98 319.79h48" class="ionicon-stroke-width"/><path d="M267.56 312.32l-31.11 31.11a16 16 0 000 22.63l45.26 45.25a16 16 0 0022.62 0l31.12-31.11a4 4 0 000-5.66l-62.23-62.22a4 4 0 00-5.66 0zM131.8 176.55l-31.11 31.12a16 16 0 000 22.62l45.25 45.26a16 16 0 0022.63 0l31.11-31.11a4 4 0 000-5.66l-62.22-62.23a4 4 0 00-5.66 0zM428.85 83.28a144 144 0 00-203.71-.06l-65.06 65.05a4 4 0 000 5.66l62.23 62.22a4 4 0 005.66 0l65-65.05a48 48 0 0168.46.59c18.3 18.92 17.47 49.24-1.14 67.85L295.85 284a4 4 0 000 5.66l62.22 62.23a4 4 0 005.66 0l64.08-64.08c56.37-56.34 57.37-148.13 1.04-204.53z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/mail-open-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/mail-open-outline.svg deleted file mode 100644 index d3d314b599a2ada9ceb4487a3b042d8c71c32252..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/mail-open-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Mail Open</title><path d="M441.6 171.61L266.87 85.37a24.57 24.57 0 00-21.74 0L70.4 171.61A40 40 0 0048 207.39V392c0 22.09 18.14 40 40.52 40h335c22.38 0 40.52-17.91 40.52-40V207.39a40 40 0 00-22.44-35.78z" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M397.33 368L268.07 267.46a24 24 0 00-29.47 0L109.33 368M309.33 295l136-103M61.33 192l139 105" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/mail-open-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/mail-open-sharp.svg deleted file mode 100644 index d304842e8526176abdfca6a289e504f0ef48afd5..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/mail-open-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Mail Open</title><path d="M471.05 168.36L263.24 65.69a16.37 16.37 0 00-14.48 0L41 168.36a16 16 0 00-9 14.31V432a16.09 16.09 0 0016.19 16h415.62A16.09 16.09 0 00480 432V182.67a16 16 0 00-8.95-14.31zM256 97.89l173 85.44-175.7 86.78-173-85.44z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/mail-open.svg b/ionic/platforms/android/app/src/main/assets/www/svg/mail-open.svg deleted file mode 100644 index c50a0e02c646944df1a9d24f184f7c46fc7c3a20..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/mail-open.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Mail Open</title><path d="M448.67 154.45L274.1 68.2a41.1 41.1 0 00-36.2 0L63.33 154.45A55.6 55.6 0 0032 204.53v184.61c0 30.88 25.42 56 56.67 56h334.66c31.25 0 56.67-25.12 56.67-56V204.53a55.6 55.6 0 00-31.33-50.08zM252.38 96.82a8.22 8.22 0 017.24 0L429 180.48l-172 85a8.22 8.22 0 01-7.24 0L80.35 181.81z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/mail-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/mail-outline.svg deleted file mode 100644 index 1208487769bfd1aaf18f42e39f6fcbb00b434b84..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/mail-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Mail</title><rect x="48" y="96" width="416" height="320" rx="40" ry="40" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-linejoin="round" d="M112 160l144 112 144-112" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/mail-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/mail-sharp.svg deleted file mode 100644 index db5d684828205ef2c66e3c9f2a6ff963df106cab..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/mail-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Mail</title><path d="M464 80H48a16 16 0 00-16 16v320a16 16 0 0016 16h416a16 16 0 0016-16V96a16 16 0 00-16-16zM265.82 284.63a16 16 0 01-19.64 0L89.55 162.81l19.64-25.26L256 251.73l146.81-114.18 19.64 25.26z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/mail-unread-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/mail-unread-outline.svg deleted file mode 100644 index 266571ccb9d7958f02067e6732bff6fcb7a9d254..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/mail-unread-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Mail Unread</title><path d="M320 96H88a40 40 0 00-40 40v240a40 40 0 0040 40h334.73a40 40 0 0040-40V239" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-linejoin="round" d="M112 160l144 112 87-65.67" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="431.95" cy="128.05" r="47.95"/><path d="M432 192a63.95 63.95 0 1163.95-63.95A64 64 0 01432 192zm0-95.9a32 32 0 1031.95 32 32 32 0 00-31.95-32z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/mail-unread-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/mail-unread-sharp.svg deleted file mode 100644 index c600b4c9a491224f229f8018b4b795881cf4c17b..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/mail-unread-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Mail Unread</title><path d="M374.09 101c-.11.23-.21.46-.31.7-.34.75-.67 1.5-1 2.26l-.36.9c-.27.71-.54 1.42-.79 2.14-.12.35-.24.7-.35 1-.23.68-.44 1.37-.64 2.07l-.33 1.15q-.27 1-.51 2c-.1.41-.2.82-.28 1.23-.15.67-.28 1.36-.4 2-.08.42-.16.84-.23 1.27-.11.69-.2 1.4-.29 2.1-.05.42-.11.83-.16 1.25-.08.77-.13 1.54-.19 2.31 0 .36-.06.72-.08 1.09-.06 1.13-.09 2.27-.09 3.41 0 1 0 2 .07 2.94v.62c.05.95.12 1.89.21 2.83l.06.46c.09.87.2 1.72.32 2.57 0 .15 0 .31.07.46.14.92.31 1.84.49 2.75l.12.59c.2.92.4 1.84.64 2.75.23.92.5 1.82.77 2.71.06.19.12.38.17.57.28.88.57 1.74.88 2.59.05.15.11.29.16.43.29.78.6 1.55.92 2.32.05.14.11.28.17.42.35.83.73 1.65 1.11 2.47l.27.53c.4.82.81 1.64 1.24 2.44a64.21 64.21 0 0029.56 27.63l.37.17c1.78.8 3.59 1.53 5.45 2.17l.95.32 1.5.47c.45.14.9.26 1.36.39l1.92.5c.57.14 1.14.27 1.72.39l1.15.24 1.83.32.93.16c.9.13 1.81.24 2.72.34l.77.07c.73.07 1.47.13 2.22.17l.85.05c1 0 1.94.07 2.93.07 1.15 0 2.29 0 3.43-.09l1.09-.09c.77 0 1.54-.11 2.3-.19.42 0 .83-.1 1.25-.16.7-.08 1.41-.17 2.1-.28l1.27-.23c.68-.12 1.36-.25 2-.39l1.24-.29c.67-.16 1.35-.32 2-.51.39-.1.78-.21 1.16-.33.69-.2 1.37-.41 2.05-.63l1.07-.36c.7-.24 1.4-.5 2.1-.77l.94-.37c.74-.3 1.47-.62 2.19-.95l.77-.34c.8-.37 1.58-.77 2.36-1.17.17-.09.35-.17.52-.27.91-.48 1.8-1 2.68-1.5l.12-.07a63.95 63.95 0 10-89.21-84.88l-.21.39c-.3 1.03-.72 1.86-1.11 2.69z"/><path d="M371.51 202.43l-105.69 82.2a16 16 0 01-19.64 0L89.55 162.81l19.64-25.26L256 251.73l94.36-73.39A95.81 95.81 0 01349 80H48a16 16 0 00-16 16v320a16 16 0 0016 16h416a16 16 0 0016-16V211.13a95.75 95.75 0 01-108.49-8.7z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/mail-unread.svg b/ionic/platforms/android/app/src/main/assets/www/svg/mail-unread.svg deleted file mode 100644 index 829bf2fa1d7e03ecb194b682fa079f3f63d36482..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/mail-unread.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Mail Unread</title><path d="M496 128.05A64 64 0 00389.62 80a64.52 64.52 0 00-12.71 15.3v.06c-.54.9-1.05 1.82-1.55 2.74l-.24.49c-.42.79-.81 1.59-1.19 2.4-.12.25-.23.5-.34.75-.33.73-.65 1.47-.95 2.22-.13.31-.25.62-.37.93-.27.7-.53 1.4-.78 2.11l-.36 1.06c-.22.68-.43 1.37-.63 2.06-.12.39-.23.77-.33 1.16-.19.67-.35 1.35-.51 2-.1.41-.2.82-.29 1.23-.14.68-.27 1.37-.39 2-.08.42-.16.84-.23 1.26-.11.7-.2 1.41-.29 2.12-.05.41-.11.82-.16 1.24-.08.77-.13 1.54-.19 2.32 0 .36-.06.72-.08 1.08-.06 1.14-.1 2.28-.1 3.44 0 1 0 2 .08 2.94v.64q.08 1.41.21 2.82l.06.48c.09.85.19 1.69.32 2.52 0 .17 0 .35.07.52.14.91.31 1.81.49 2.71 0 .22.09.43.13.65.18.86.38 1.72.6 2.57v.19c.23.89.48 1.76.75 2.63l.21.68c.27.85.55 1.68.85 2.51.06.18.13.36.2.54.27.71.55 1.42.84 2.12.08.21.16.41.25.61.34.79.69 1.58 1.06 2.36l.33.67c.35.7.7 1.4 1.07 2.09a64.34 64.34 0 0022.14 23.81 62.22 62.22 0 007.62 4.15l.39.18q2.66 1.2 5.43 2.16l.95.32 1.5.47c.45.14.9.26 1.36.39l1.92.5 1.73.4 1.15.23 1.83.33.94.15c.9.13 1.81.25 2.72.35l.77.07c.73.06 1.47.12 2.21.16l.86.05c1 0 1.94.08 2.92.08 1.16 0 2.3 0 3.44-.1l1.08-.08c.78-.06 1.55-.11 2.32-.19l1.25-.16c.7-.09 1.41-.18 2.11-.29l1.26-.23c.68-.12 1.37-.25 2-.39l1.23-.29c.68-.16 1.36-.32 2-.51.39-.1.77-.21 1.16-.33.69-.2 1.38-.41 2.06-.63l1.06-.36c.71-.25 1.41-.51 2.11-.78l.93-.37c.75-.3 1.49-.62 2.22-.95l.75-.34c.81-.38 1.61-.77 2.4-1.19l.49-.24c.92-.5 1.84-1 2.74-1.55h.06A64.52 64.52 0 00480 170.38a63.81 63.81 0 0016-42.33z"/><path d="M371.38 202.53l-105.56 82.1a16 16 0 01-19.64 0l-144-112a16 16 0 1119.64-25.26L256 251.73l94.22-73.28A95.86 95.86 0 01348.81 80H88a56.06 56.06 0 00-56 56v240a56.06 56.06 0 0056 56h336a56.06 56.06 0 0056-56V211.19a95.85 95.85 0 01-108.62-8.66z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/mail.svg b/ionic/platforms/android/app/src/main/assets/www/svg/mail.svg deleted file mode 100644 index ed02c3d9aa958fba5b450dbc2cd65bb7c6abba71..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/mail.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Mail</title><path d="M424 80H88a56.06 56.06 0 00-56 56v240a56.06 56.06 0 0056 56h336a56.06 56.06 0 0056-56V136a56.06 56.06 0 00-56-56zm-14.18 92.63l-144 112a16 16 0 01-19.64 0l-144-112a16 16 0 1119.64-25.26L256 251.73l134.18-104.36a16 16 0 0119.64 25.26z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/male-female-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/male-female-outline.svg deleted file mode 100644 index d82e39f233a552f92b6f7a4e36a215781d7e2397..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/male-female-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Male Female</title><circle cx="216" cy="200" r="136" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-linejoin="round" d="M216 352v128M272 416H160M432 112V32h-80M335.28 128.72L432 32" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/male-female-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/male-female-sharp.svg deleted file mode 100644 index ed432388b5394101b5d0de6f7829821f974cf50e..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/male-female-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Male Female</title><path d="M330 16v44h42.89l-37.1 37.09A157.67 157.67 0 00216 42c-87.12 0-158 70.88-158 158 0 79.66 59.26 145.72 136 156.46V394h-50v44h50v58h44v-58h50v-44h-50v-37.54c76.74-10.74 136-76.8 136-156.46a157.23 157.23 0 00-14-64.93l44-44V134h44V16zM216 314a114 114 0 11114-114 114.13 114.13 0 01-114 114z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/male-female.svg b/ionic/platforms/android/app/src/main/assets/www/svg/male-female.svg deleted file mode 100644 index c193eb9376c2a981f1453147f96e87854b72a345..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/male-female.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Male Female</title><path d="M426 16h-74a22 22 0 000 44h20.89l-37.1 37.09A157.68 157.68 0 00216 42c-87.12 0-158 70.88-158 158 0 79.66 59.26 145.72 136 156.46V394h-28a22 22 0 000 44h28v36a22 22 0 0044 0v-36h28a22 22 0 000-44h-28v-37.54c76.74-10.74 136-76.8 136-156.46a157.15 157.15 0 00-14-64.92l44-44V112a22 22 0 0044 0V38a22 22 0 00-22-22zM216 314a114 114 0 11114-114 114.13 114.13 0 01-114 114z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/male-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/male-outline.svg deleted file mode 100644 index c2b9cd2803158ced6e66ad383fdf15fc4c8f3618..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/male-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Male</title><circle cx="216" cy="296" r="152" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-linejoin="round" d="M448 160V64h-96M324 188L448 64" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/male-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/male-sharp.svg deleted file mode 100644 index 16c1f76d496337dbddf9f9f7963abdba7f7c4958..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/male-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Male</title><path d="M330 48v44h58.89l-60.39 60.39c-68.2-52.86-167-48-229.54 14.57C31.12 234.81 31.12 345.19 99 413a174.21 174.21 0 00246 0c62.57-62.58 67.43-161.34 14.57-229.54L420 123.11V182h44V48zm-16.08 333.92a130.13 130.13 0 01-183.84 0c-50.69-50.68-50.69-133.16 0-183.84s133.16-50.69 183.84 0 50.69 133.16 0 183.84z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/male.svg b/ionic/platforms/android/app/src/main/assets/www/svg/male.svg deleted file mode 100644 index 0e560df54b677b96b3352e0a260fc8e4f0a0a5d9..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/male.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Male</title><path d="M442 48h-90a22 22 0 000 44h36.89l-60.39 60.39c-68.19-52.86-167-48-229.54 14.57C31.12 234.81 31.12 345.19 99 413a174.21 174.21 0 00246 0c62.57-62.58 67.43-161.35 14.57-229.54L420 123.11V160a22 22 0 0044 0V70a22 22 0 00-22-22zM313.92 381.92a130.13 130.13 0 01-183.84 0c-50.69-50.68-50.69-133.16 0-183.84s133.16-50.69 183.84 0 50.69 133.16 0 183.84z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/man-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/man-outline.svg deleted file mode 100644 index 226e27a9e19ab103cf2569bbc6c98c66f0b6e468..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/man-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Man</title><path d="M208 208v264a23.73 23.73 0 0024 24h0a23.73 23.73 0 0024-24" stroke-linecap="round" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><path d="M256 336v136a23.73 23.73 0 0024 24h0a23.73 23.73 0 0024-24V208" stroke-linecap="round" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><path d="M208 192v88a23.72 23.72 0 01-24 24h0a23.72 23.72 0 01-24-24v-88a48 48 0 0148-48h96a48 48 0 0148 48v88a23.72 23.72 0 01-24 24h0a23.72 23.72 0 01-24-24v-88" stroke-linecap="round" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="256" cy="56" r="40" stroke-linecap="round" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/man-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/man-sharp.svg deleted file mode 100644 index 74d09cf61b8ba9523c697201098a40667091238f..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/man-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Man</title><circle cx="256" cy="56" r="56"/><path d="M336 128H176a32 32 0 00-32 32v160h48V192h8v320h52V328h8v184h52V192h8v128h48V160a32 32 0 00-32-32z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/man.svg b/ionic/platforms/android/app/src/main/assets/www/svg/man.svg deleted file mode 100644 index 73c5cae765a08cdf3845938d162eeefb420c5fc2..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/man.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Man</title><circle cx="256" cy="56" r="56"/><path d="M304 128h-96a64.19 64.19 0 00-64 64v107.52c0 10.85 8.43 20.08 19.27 20.47A20 20 0 00184 300v-99.73a8.18 8.18 0 017.47-8.25 8 8 0 018.53 8V489a23 23 0 0023 23 23 23 0 0023-23V346.34a10.24 10.24 0 019.33-10.34A10 10 0 01266 346v143a23 23 0 0023 23 23 23 0 0023-23V200.27a8.18 8.18 0 017.47-8.25 8 8 0 018.53 8v99.52c0 10.85 8.43 20.08 19.27 20.47A20 20 0 00368 300V192a64.19 64.19 0 00-64-64z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/map-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/map-outline.svg deleted file mode 100644 index e91a813c0d945c29014bde9548c7359045c23038..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/map-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Map</title><path d="M313.27 124.64L198.73 51.36a32 32 0 00-29.28.35L56.51 127.49A16 16 0 0048 141.63v295.8a16 16 0 0023.49 14.14l97.82-63.79a32 32 0 0129.5-.24l111.86 73a32 32 0 0029.27-.11l115.43-75.94a16 16 0 008.63-14.2V74.57a16 16 0 00-23.49-14.14l-98 63.86a32 32 0 01-29.24.35zM328 128v336M184 48v336" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/map-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/map-sharp.svg deleted file mode 100644 index 9db556191a8eaffe21d144883df0bf0f792e5fc3..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/map-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Map</title><path d="M327.71 130.93L184 39 32 144v336l152.29-98.93L328 473l152-105V32zM312 421l-112-72V91l112 72z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/map.svg b/ionic/platforms/android/app/src/main/assets/www/svg/map.svg deleted file mode 100644 index 21a97316856065ac79a43ca14cf54e0bca8ff156..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/map.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Map</title><path d="M48.17 113.34A32 32 0 0032 141.24V438a32 32 0 0047 28.37c.43-.23.85-.47 1.26-.74l84.14-55.05a8 8 0 003.63-6.72V46.45a8 8 0 00-12.51-6.63zM212.36 39.31A8 8 0 00200 46v357.56a8 8 0 003.63 6.72l96 62.42A8 8 0 00312 466V108.67a8 8 0 00-3.64-6.73zM464.53 46.47a31.64 31.64 0 00-31.5-.88 12.07 12.07 0 00-1.25.74l-84.15 55a8 8 0 00-3.63 6.72v357.46a8 8 0 0012.52 6.63l107.07-73.46a32 32 0 0016.41-28v-296a32.76 32.76 0 00-15.47-28.21z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/medal-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/medal-outline.svg deleted file mode 100644 index d4c44c06b71783a966936edc68638962ea6c8076..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/medal-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Medal</title><circle cx="256" cy="352" r="112" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="256" cy="352" r="48" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M147 323L41.84 159.32a32 32 0 01-1.7-31.61l31-62A32 32 0 0199.78 48h312.44a32 32 0 0128.62 17.69l31 62a32 32 0 01-1.7 31.61L365 323M371 144H37M428.74 52.6L305 250M140.55 144L207 250" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/medal-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/medal-sharp.svg deleted file mode 100644 index 1157e9ea5feba24ddbfb369adbe5cde1856e201f..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/medal-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Medal</title><path d="M80 32L16 160h289.11l80.22-128H80z"/><path d="M496 144L424 32 298 231.08a128 128 0 00-84 0L189.53 192H43.82l86.66 134.89a128 128 0 10251 0zM256 422a70 70 0 1170-70 70.08 70.08 0 01-70 70z"/><circle cx="256" cy="352" r="32"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/medal.svg b/ionic/platforms/android/app/src/main/assets/www/svg/medal.svg deleted file mode 100644 index dd8156f5280189ed59a7a5600151a1e99764be11..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/medal.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Medal</title><circle cx="256" cy="352" r="32"/><path d="M99.78 32a48 48 0 00-42.94 26.53l-31 62A48.26 48.26 0 0024.28 160h278.2a4 4 0 003.39-1.87l75.5-120A4 4 0 00378 32z"/><path d="M486.17 120.56l-31-62a47.7 47.7 0 00-32.79-25.46L342.5 160 298 231.08a128 128 0 00-84 0l-23.32-37.2a4 4 0 00-3.39-1.88H51.14a4 4 0 00-3.36 6.16l82.7 128.73a128 128 0 10251 0L483.62 168a48.22 48.22 0 002.55-47.44zm-226 295.31a64 64 0 1159.69-59.69 64.08 64.08 0 01-59.68 59.69z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/medical-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/medical-outline.svg deleted file mode 100644 index 0349f7c003e40c376797ab8a4b4cc698a160d9ce..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/medical-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Medical</title><path d="M429.93 174.27l-16.47-28.59a15.49 15.49 0 00-21.15-5.7l-98.39 57a4 4 0 01-6-3.5L288 80a16 16 0 00-16-16h-32a16 16 0 00-16 16l.07 113.57a4 4 0 01-6 3.5l-98.39-57a15.49 15.49 0 00-21.15 5.7l-16.46 28.6a15.42 15.42 0 005.69 21.1l98.49 57.08a4 4 0 010 6.9l-98.49 57.08a15.54 15.54 0 00-5.69 21.1l16.47 28.59a15.49 15.49 0 0021.15 5.7l98.39-57a4 4 0 016 3.5L224 432a16 16 0 0016 16h32a16 16 0 0016-16l-.07-113.67a4 4 0 016-3.5l98.39 57a15.49 15.49 0 0021.15-5.7l16.47-28.59a15.42 15.42 0 00-5.69-21.1l-98.49-57.08a4 4 0 010-6.9l98.49-57.08a15.51 15.51 0 005.68-21.11z" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/medical-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/medical-sharp.svg deleted file mode 100644 index 8c463b19608fc2701090cafeacefb16b9bc5a61a..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/medical-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Medical</title><path d="M351.9 256L460 193.6l-48-83.2-108 62.4V48h-96v124.8l-108-62.4-48 83.2L160.1 256 52 318.4l48 83.2 108-62.4V464h96V339.2l108 62.4 48-83.2L351.9 256z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/medical.svg b/ionic/platforms/android/app/src/main/assets/www/svg/medical.svg deleted file mode 100644 index 6ae33970035b23ece5d22f1c07454e49dcfe03f3..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/medical.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Medical</title><path d="M272 464h-32a32 32 0 01-32-32l.05-85.82a4 4 0 00-6-3.47l-74.34 43.06a31.48 31.48 0 01-43-11.52l-16.5-28.64-.06-.1a31.65 31.65 0 0111.56-42.8l74.61-43.25a4 4 0 000-6.92l-74.54-43.21a31.41 31.41 0 01-11.55-43l16.44-28.55a31.48 31.48 0 0119.27-14.74 31.14 31.14 0 0123.8 3.2l74.31 43a4 4 0 006-3.47L208 80a32 32 0 0132-32h32a32 32 0 0132 32v85.72a4 4 0 006 3.47l74.34-43.06a31.51 31.51 0 0143 11.52l16.49 28.64.06.09a31.52 31.52 0 01-11.64 42.86l-74.53 43.2a4 4 0 000 6.92l74.53 43.2a31.42 31.42 0 0111.56 43l-16.44 28.55a31.48 31.48 0 01-19.27 14.74 31.14 31.14 0 01-23.8-3.2l-74.31-43a4 4 0 00-6 3.46L304 432a32 32 0 01-32 32zm-93.56-197.48zm0-21zm155.1-.08zm0 0z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/medkit-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/medkit-outline.svg deleted file mode 100644 index 3d798f6c44f0a5c68e6ff19baaa45ee53e7dc8f5..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/medkit-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Medkit</title><rect x="32" y="112" width="448" height="352" rx="48" ry="48" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M144 112V80a32 32 0 0132-32h160a32 32 0 0132 32v32M256 208v160M336 288H176" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/medkit-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/medkit-sharp.svg deleted file mode 100644 index 67c1a5c35d683a914d228fb315aad32407e976f2..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/medkit-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Medkit</title><path d="M168 72h176v24H168z" class="ionicon-fill-none"/><path d="M484 96H384V40a8 8 0 00-8-8H136a8 8 0 00-8 8v56H28a12 12 0 00-12 12v360a12 12 0 0012 12h456a12 12 0 0012-12V108a12 12 0 00-12-12zM168 72h176v24H168zm184 238h-74v74h-44v-74h-74v-44h74v-74h44v74h74z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/medkit.svg b/ionic/platforms/android/app/src/main/assets/www/svg/medkit.svg deleted file mode 100644 index a2056cbb4bec0762b2efcb70fbc8f821fce9f5db..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/medkit.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Medkit</title><path d="M336 64H176a16 16 0 00-16 16v16h192V80a16 16 0 00-16-16z" class="ionicon-fill-none"/><path d="M432 96h-48V80a48.05 48.05 0 00-48-48H176a48.05 48.05 0 00-48 48v16H80a64.07 64.07 0 00-64 64v256a64 64 0 0064 64h352a64 64 0 0064-64V160a64.07 64.07 0 00-64-64zm-96 208h-64v64a16 16 0 01-32 0v-64h-64a16 16 0 010-32h64v-64a16 16 0 0132 0v64h64a16 16 0 010 32zm16-208H160V80a16 16 0 0116-16h160a16 16 0 0116 16z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/megaphone-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/megaphone-outline.svg deleted file mode 100644 index c31ee724429434a955409ee4a593e5cb1952feed..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/megaphone-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Megaphone</title><path d="M407.94 52.22S321.3 160 240 160H80a16 16 0 00-16 16v96a16 16 0 0016 16h160c81.3 0 167.94 108.23 167.94 108.23 6.06 8 24.06 2.52 24.06-9.83V62c0-12.31-17-18.82-24.06-9.78zM64 256s-16-6-16-32 16-32 16-32M448 246s16-4.33 16-22-16-22-16-22M256 160v128M112 160v128" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M144 288v168a8 8 0 008 8h53a16 16 0 0015.29-20.73C211.91 416.39 192 386.08 192 336h16a16 16 0 0016-16v-16a16 16 0 00-16-16h-16" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/megaphone-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/megaphone-sharp.svg deleted file mode 100644 index 28ecca5f257e7cb41f79424ac1f59850134fee1c..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/megaphone-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Megaphone</title><path d="M128 144v332a4 4 0 004 4h100.07a8 8 0 007.82-9.7L208.71 352H232a8 8 0 008-8V144zM452.18 186.55L448 185.5V36a4 4 0 00-4-4h-42.5a4 4 0 00-2.63 1L272 144v160l126.87 111a4 4 0 002.63 1H444a4 4 0 004-4V262.5l4.18-1.05C461.8 258.84 480 247.67 480 224s-18.2-34.84-27.82-37.45zM96 144H52a4 4 0 00-4 4v35.59a43 43 0 00-4.24 4.35C38.4 194.32 32 205.74 32 224c0 20.19 7.89 33.13 16 40.42V300a4 4 0 004 4h44z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/megaphone.svg b/ionic/platforms/android/app/src/main/assets/www/svg/megaphone.svg deleted file mode 100644 index 5330459690f657a486c2c2b26faf3ef99ac38306..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/megaphone.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Megaphone</title><path d="M48 176v.66a17.38 17.38 0 01-4.2 11.23v.05C38.4 194.32 32 205.74 32 224c0 16.55 5.3 28.23 11.68 35.91A19 19 0 0148 272a32 32 0 0032 32h8a8 8 0 008-8V152a8 8 0 00-8-8h-8a32 32 0 00-32 32zM452.18 186.55l-.93-.17a4 4 0 01-3.25-3.93V62c0-12.64-8.39-24-20.89-28.32-11.92-4.11-24.34-.76-31.68 8.53a431.18 431.18 0 01-51.31 51.69c-23.63 20-46.24 34.25-67 42.31a8 8 0 00-5.15 7.47V299a16 16 0 009.69 14.69c19.34 8.29 40.24 21.83 62 40.28a433.74 433.74 0 0151.68 52.16 26.22 26.22 0 0021.1 9.87 33.07 33.07 0 0010.44-1.74C439.71 410 448 399.05 448 386.4V265.53a4 4 0 013.33-3.94l.85-.14C461.8 258.84 480 247.67 480 224s-18.2-34.84-27.82-37.45zM240 320V152a8 8 0 00-8-8h-96a8 8 0 00-8 8v304a24 24 0 0024 24h52.45a32.66 32.66 0 0025.93-12.45 31.65 31.65 0 005.21-29.05c-1.62-5.18-3.63-11-5.77-17.19-7.91-22.9-18.34-37.07-21.12-69.32A32 32 0 00240 320z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/menu-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/menu-outline.svg deleted file mode 100644 index 03bf4df7604fade3bed2e1d1b830a0f0f52d3adb..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/menu-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Menu</title><path stroke-linecap="round" stroke-miterlimit="10" d="M80 160h352M80 256h352M80 352h352" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/menu-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/menu-sharp.svg deleted file mode 100644 index 805e19bd1b3790584c707bffd6e0341e90d8a408..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/menu-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Menu</title><path d="M64 384h384v-42.67H64zm0-106.67h384v-42.66H64zM64 128v42.67h384V128z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/menu.svg b/ionic/platforms/android/app/src/main/assets/www/svg/menu.svg deleted file mode 100644 index b70e847f1523a48f355bff568cf7117e48221768..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/menu.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Menu</title><path stroke-linecap="round" stroke-miterlimit="10" stroke-width="48" d="M88 152h336M88 256h336M88 360h336" class="ionicon-fill-none"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/mic-circle-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/mic-circle-outline.svg deleted file mode 100644 index 2a6749167cd4c80958d8403365da35148854309e..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/mic-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Mic Circle</title><path d="M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-linejoin="round" d="M224 368h64M336 224.3v23.92c0 39.42-40.58 71.48-80 71.48h0c-39.42 0-80-32.06-80-71.48V224.3M256 320v48" class="ionicon-fill-none ionicon-stroke-width"/><rect x="208" y="128" width="96" height="160" rx="48" ry="48"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/mic-circle-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/mic-circle-sharp.svg deleted file mode 100644 index 456b591ed2e5f6354111b709f5ea34dcda55e172..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/mic-circle-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Mic Circle</title><path d="M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm-48 128a48.14 48.14 0 0148-48 48.14 48.14 0 0148 48v64a48.14 48.14 0 01-48 48 48.14 48.14 0 01-48-48zm144 72.22c0 23.36-10.94 45.61-30.79 62.66A103.71 103.71 0 01272 334.26V352h32v32h-96v-32h32v-17.74a103.71 103.71 0 01-49.21-23.38c-19.85-17.05-30.79-39.3-30.79-62.66V208.3h32v39.92c0 25.66 28 55.48 64 55.48 29.6 0 64-24.23 64-55.48V208.3h32z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/mic-circle.svg b/ionic/platforms/android/app/src/main/assets/www/svg/mic-circle.svg deleted file mode 100644 index 972ace9289db674118293de22eb7716fd25e88dc..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/mic-circle.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Mic Circle</title><path d="M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm-48 128a48.14 48.14 0 0148-48 48.14 48.14 0 0148 48v64a48.14 48.14 0 01-48 48 48.14 48.14 0 01-48-48zm144 72.22c0 23.36-10.94 45.61-30.79 62.66A103.71 103.71 0 01272 334.26V352h16a16 16 0 010 32h-64a16 16 0 010-32h16v-17.74a103.71 103.71 0 01-49.21-23.38c-19.85-17.05-30.79-39.3-30.79-62.66V224.3a16 16 0 0132 0v23.92c0 25.66 28 55.48 64 55.48 29.6 0 64-24.23 64-55.48V224.3a16 16 0 1132 0z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/mic-off-circle-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/mic-off-circle-outline.svg deleted file mode 100644 index 1b3dc80827be3ad178123c7cb02d8af5c6c94f09..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/mic-off-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Mic Off Circle</title><path d="M256 464c-114.69 0-208-93.31-208-208S141.31 48 256 48s208 93.31 208 208-93.31 208-208 208zm0-384c-97 0-176 79-176 176s79 176 176 176 176-78.95 176-176S353.05 80 256 80z"/><path d="M352 369a15.93 15.93 0 01-11.84-5.24l-192-210a16 16 0 0123.68-21.52l192 210A16 16 0 01352 369zM352 248.22v-23.8a16.3 16.3 0 00-13.64-16.24c-9.88-1.48-18.36 6.51-18.36 16.12v23.92a43.35 43.35 0 01-3.07 15.91 4 4 0 00.76 4.16l19.19 21.1a2 2 0 003.19-.3A77.12 77.12 0 00352 248.22zM304 240v-64a48.14 48.14 0 00-48-48 48.08 48.08 0 00-41 23.1 4 4 0 00.47 4.77l84.42 92.86a2 2 0 003.46-1A47.84 47.84 0 00304 240zM246.57 285.2l-36.46-40.11a1 1 0 00-1.74.8 48.26 48.26 0 0037.25 41 1 1 0 00.95-1.69z"/><path d="M287.55 352H272v-17.74a100.33 100.33 0 0012.53-3.06 2 2 0 00.89-3.26l-21.07-23.19a3.94 3.94 0 00-3.29-1.29c-1.69.15-3.39.24-5.06.24-36 0-64-29.82-64-55.48V224.4a16.26 16.26 0 00-15.61-16.4A15.91 15.91 0 00160 224v24.22c0 23.36 10.94 45.61 30.79 62.66A103.71 103.71 0 00240 334.26V352h-15.55c-8.61 0-16 6.62-16.43 15.23A16 16 0 00224 384h64a16 16 0 0016-16.77c-.42-8.61-7.84-15.23-16.45-15.23z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/mic-off-circle-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/mic-off-circle-sharp.svg deleted file mode 100644 index 0559e9903352f073652900b651d5f508b50d09a4..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/mic-off-circle-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Mic Off Circle</title><path d="M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm64 200.22V208h32v40.22a77.53 77.53 0 01-13.37 43.11L316 266.4a44.11 44.11 0 004-18.18zM256 128a48.14 48.14 0 0148 48v64a48.07 48.07 0 01-1.44 11.64l-89-97.92A48.13 48.13 0 01256 128zm48 256h-96v-32h32v-17.74a103.71 103.71 0 01-49.21-23.38c-19.85-17.05-30.79-39.3-30.79-62.66V208h32v40.22c0 25.66 28 55.48 64 55.48a56.91 56.91 0 007-.45l24.52 27a99.57 99.57 0 01-15.5 4V352h32zm-95.91-141.13l40.5 44.55a48.2 48.2 0 01-40.5-44.55zm136.07 124.89l-200.5-218.5 23.68-21.52 200.5 218.5z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/mic-off-circle.svg b/ionic/platforms/android/app/src/main/assets/www/svg/mic-off-circle.svg deleted file mode 100644 index 22fc1bd3f890a978811f259caf6f5ce96cb56599..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/mic-off-circle.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Mic Off Circle</title><path d="M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm0 80a48.14 48.14 0 0148 48v64a47.84 47.84 0 01-.63 7.71 2 2 0 01-3.46 1l-84.42-92.86a4 4 0 01-.47-4.77A48.08 48.08 0 01256 128zm32 256h-63.55c-8.61 0-16-6.62-16.43-15.23A16 16 0 01224 352h16v-17.74a103.71 103.71 0 01-49.21-23.38c-19.85-17.05-30.79-39.3-30.79-62.66V224a15.91 15.91 0 0116.39-16A16.26 16.26 0 01192 224.4v23.82c0 25.66 28 55.48 64 55.48 1.67 0 3.37-.09 5.06-.24a3.94 3.94 0 013.29 1.29l21.07 23.19a2 2 0 01-.89 3.26 100.33 100.33 0 01-12.53 3.06V352h15.55c8.61 0 16 6.62 16.43 15.23A16 16 0 01288 384zm-77.89-138.91l36.46 40.11a1 1 0 01-.95 1.66 48.26 48.26 0 01-37.25-41 1 1 0 011.74-.77zm152.65 119.75a16 16 0 01-22.6-1.08l-192-210a16 16 0 0123.68-21.52l192 210a16 16 0 01-1.08 22.6zM352 248.22a77.12 77.12 0 01-11.93 40.87 2 2 0 01-3.19.3l-19.19-21.1a4 4 0 01-.76-4.16 43.35 43.35 0 003.07-15.91v-23.8a16.3 16.3 0 0113.64-16.24c9.88-1.48 18.36 6.51 18.36 16.12z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/mic-off-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/mic-off-outline.svg deleted file mode 100644 index 440fdade84d632a55c7dcef5eae937dd5c531ad1..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/mic-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Mic Off</title><path stroke-linecap="round" stroke-miterlimit="10" d="M432 400L96 64" class="ionicon-fill-none ionicon-stroke-width"/><path d="M400 240v-31.55c0-8.61-6.62-16-15.23-16.43A16 16 0 00368 208v32a111.58 111.58 0 01-2.45 23.31 4.05 4.05 0 001.07 3.69l21.82 21.81a2 2 0 003.29-.72A143.27 143.27 0 00400 240zM256 352a112.36 112.36 0 01-112-112v-31.55c0-8.61-6.62-16-15.23-16.43A16 16 0 00112 208v32c0 74 56.1 135.12 128 143.11V432h-47.55c-8.61 0-16 6.62-16.43 15.23A16 16 0 00192 464h127.55c8.61 0 16-6.62 16.43-15.23A16 16 0 00320 432h-48v-48.89a143.08 143.08 0 0052-16.22 4 4 0 00.91-6.35L307 342.63a4 4 0 00-4.51-.78A110.78 110.78 0 01256 352zM256 80a47.18 47.18 0 0148 48v74.72a4 4 0 001.17 2.82L332.59 233a2 2 0 003.41-1.42V128.91C336 85 301 48.6 257.14 48a79.66 79.66 0 00-68.47 36.57 4 4 0 00.54 5l19.54 19.54a2 2 0 003.25-.63A47.44 47.44 0 01256 80z"/><path d="M207.27 242.9L179.41 215a2 2 0 00-3.41 1.42V239a80.89 80.89 0 0023.45 56.9 78.55 78.55 0 0077.8 21.19 2 2 0 00.86-3.35l-24.91-24.91a4.08 4.08 0 00-2.42-1.15c-21.65-2.52-39.48-20.44-42.37-42.43a4 4 0 00-1.14-2.35z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/mic-off-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/mic-off-sharp.svg deleted file mode 100644 index 24861415f1a408e74f12332d81698d7ea1abdaf8..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/mic-off-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Mic Off</title><path stroke-linecap="square" stroke-miterlimit="10" d="M432 400L96 64" class="ionicon-fill-none ionicon-stroke-width"/><path d="M368 192v48a111.74 111.74 0 01-2.93 25.45L390.65 291a143.07 143.07 0 009.35-51v-48zM272 432v-48.89a143.11 143.11 0 0056.65-18.83L305 340.65A112.13 112.13 0 01144 240v-48h-32v48c0 74 56.1 135.12 128 143.11V432h-64v32h160v-32zM336 236.37V128c0-44.86-35.14-80-80-80a79.68 79.68 0 00-69 39.34"/><path d="M176 211.63V239a80.89 80.89 0 0023.45 56.9 78.55 78.55 0 0081 20.21z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/mic-off.svg b/ionic/platforms/android/app/src/main/assets/www/svg/mic-off.svg deleted file mode 100644 index c2c74b7b12aedf4dab9e06b4e9ce121307c88419..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/mic-off.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Mic Off</title><path stroke-linecap="round" stroke-miterlimit="10" d="M432 400L96 64" class="ionicon-fill-none ionicon-stroke-width"/><path d="M400 240v-31.55c0-8.61-6.62-16-15.23-16.43A16 16 0 00368 208v32a111.68 111.68 0 01-2.68 24.38 2 2 0 00.53 1.84l22.59 22.59a2 2 0 003.29-.72A143.27 143.27 0 00400 240zM256 352a112.36 112.36 0 01-112-112v-31.55c0-8.61-6.62-16-15.23-16.43A16 16 0 00112 208v32c0 74 56.1 135.12 128 143.11V432h-47.55c-8.61 0-16 6.62-16.43 15.23A16 16 0 00192 464h127.55c8.61 0 16-6.62 16.43-15.23A16 16 0 00320 432h-48v-48.89a143.08 143.08 0 0052-16.22 4 4 0 00.91-6.35l-18.4-18.39a3 3 0 00-3.41-.58A111 111 0 01256 352zM257.14 48a79.66 79.66 0 00-68.47 36.57 4 4 0 00.54 5L332.59 233a2 2 0 003.41-1.42V128.91C336 85 301 48.6 257.14 48z"/><path d="M179.41 215a2 2 0 00-3.41 1.42V239a80.89 80.89 0 0023.45 56.9 78.55 78.55 0 0077.8 21.19 2 2 0 00.86-3.35z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/mic-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/mic-outline.svg deleted file mode 100644 index 3cf88d4d816073c4078967970170cac3eca584ca..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/mic-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Mic</title><path stroke-linecap="round" stroke-linejoin="round" d="M192 448h128M384 208v32c0 70.4-57.6 128-128 128h0c-70.4 0-128-57.6-128-128v-32M256 368v80" class="ionicon-fill-none ionicon-stroke-width"/><path d="M256 64a63.68 63.68 0 00-64 64v111c0 35.2 29 65 64 65s64-29 64-65V128c0-36-28-64-64-64z" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/mic-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/mic-sharp.svg deleted file mode 100644 index 5a5155fe9bb419ff262918a0a085d99d50dab220..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/mic-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Mic</title><path stroke-linecap="square" stroke-miterlimit="10" d="M192 448h128M384 208v32c0 70.4-57.6 128-128 128h0c-70.4 0-128-57.6-128-128v-32M256 368v80" class="ionicon-fill-none ionicon-stroke-width"/><path d="M256 320a78.83 78.83 0 01-56.55-24.1A80.89 80.89 0 01176 239V128a79.69 79.69 0 0180-80c44.86 0 80 35.14 80 80v111c0 44.66-35.89 81-80 81z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/mic.svg b/ionic/platforms/android/app/src/main/assets/www/svg/mic.svg deleted file mode 100644 index 7147e9d3137e1e2066a5d626e441138bf7211fd5..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/mic.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Mic</title><path stroke-linecap="round" stroke-linejoin="round" d="M192 448h128M384 208v32c0 70.4-57.6 128-128 128h0c-70.4 0-128-57.6-128-128v-32M256 368v80" class="ionicon-fill-none ionicon-stroke-width"/><path d="M256 320a78.83 78.83 0 01-56.55-24.1A80.89 80.89 0 01176 239V128a79.69 79.69 0 0180-80c44.86 0 80 35.14 80 80v111c0 44.66-35.89 81-80 81z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/moon-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/moon-outline.svg deleted file mode 100644 index b9f7359fbed31338214be8609a9150423c2483aa..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/moon-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Moon</title><path d="M160 136c0-30.62 4.51-61.61 16-88C99.57 81.27 48 159.32 48 248c0 119.29 96.71 216 216 216 88.68 0 166.73-51.57 200-128-26.39 11.49-57.38 16-88 16-119.29 0-216-96.71-216-216z" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/moon-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/moon-sharp.svg deleted file mode 100644 index a05047178f3ba35fa8a7f902619d7464ecdf1142..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/moon-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Moon</title><path d="M152.62 126.77c0-33 4.85-66.35 17.23-94.77C87.54 67.83 32 151.89 32 247.38 32 375.85 136.15 480 264.62 480c95.49 0 179.55-55.54 215.38-137.85-28.42 12.38-61.8 17.23-94.77 17.23-128.47 0-232.61-104.14-232.61-232.61z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/moon.svg b/ionic/platforms/android/app/src/main/assets/www/svg/moon.svg deleted file mode 100644 index 429257732f68000d7f658d884ac781330e55310e..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/moon.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Moon</title><path d="M264 480A232 232 0 0132 248c0-94 54-178.28 137.61-214.67a16 16 0 0121.06 21.06C181.07 76.43 176 104.66 176 136c0 110.28 89.72 200 200 200 31.34 0 59.57-5.07 81.61-14.67a16 16 0 0121.06 21.06C442.28 426 358 480 264 480z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/move-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/move-outline.svg deleted file mode 100644 index e39035f761d797e3b037ee5ef1c9dc7b4f9291e7..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/move-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Move</title><path stroke-linecap="round" stroke-linejoin="round" d="M176 112l80-80 80 80M255.98 32l.02 448M176 400l80 80 80-80M400 176l80 80-80 80M112 176l-80 80 80 80M32 256h448" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/move-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/move-sharp.svg deleted file mode 100644 index 035ec28ad2ffd5ea047d461f0555bcd3b14e4e36..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/move-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Move</title><path stroke-miterlimit="10" d="M176 112l80-80 80 80M255.98 32l.02 448M176 400l80 80 80-80M400 176l80 80-80 80M112 176l-80 80 80 80M32 256h448" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/move.svg b/ionic/platforms/android/app/src/main/assets/www/svg/move.svg deleted file mode 100644 index e39035f761d797e3b037ee5ef1c9dc7b4f9291e7..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/move.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Move</title><path stroke-linecap="round" stroke-linejoin="round" d="M176 112l80-80 80 80M255.98 32l.02 448M176 400l80 80 80-80M400 176l80 80-80 80M112 176l-80 80 80 80M32 256h448" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/musical-note-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/musical-note-outline.svg deleted file mode 100644 index 8755cfd129cfc721f16d60ca3d9d891d256410f8..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/musical-note-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Musical Note</title><path d="M240 343.31V424a32.28 32.28 0 01-21.88 30.65l-21.47 7.23c-25.9 8.71-52.65-10.75-52.65-38.32h0A34.29 34.29 0 01167.25 391l50.87-17.12A32.29 32.29 0 00240 343.24V92a16.13 16.13 0 0112.06-15.66L360.49 48.2A6 6 0 01368 54v57.76a16.13 16.13 0 01-12.12 15.67l-91.64 23.13A32.25 32.25 0 00240 181.91v39.39" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/musical-note-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/musical-note-sharp.svg deleted file mode 100644 index de73028c8595a86aed7fa6e7fb20159e33b47ec4..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/musical-note-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Musical Note</title><path d="M381.55 32.05c-18.13 4.28-126.57 31.07-156 38.19a2 2 0 00-1.55 1.94V353.3a2 2 0 01-1.32 1.88L182 369.88c-29.82 10.66-54 18.94-54 59.06 0 32.47 23.53 47.18 37.95 50a81.77 81.77 0 0015 1.08c8.89 0 31-3.59 47.52-14.24C256 448 256 448 256 415.93V169.16a2 2 0 011.49-1.94l125-33a2 2 0 001.49-1.94V34a2 2 0 00-2.43-1.95z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/musical-note.svg b/ionic/platforms/android/app/src/main/assets/www/svg/musical-note.svg deleted file mode 100644 index f369a4b698089c0a10a5ceb0794e2d8e6da59bca..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/musical-note.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Musical Note</title><path d="M183.83 480a55.2 55.2 0 01-32.36-10.55A56.64 56.64 0 01128 423.58a50.26 50.26 0 0134.14-47.73L213 358.73a16.25 16.25 0 0011-15.49V92a32.1 32.1 0 0124.09-31.15l108.39-28.14A22 22 0 01384 54v57.75a32.09 32.09 0 01-24.2 31.19l-91.65 23.13A16.24 16.24 0 00256 181.91V424a48.22 48.22 0 01-32.78 45.81l-21.47 7.23a56 56 0 01-17.92 2.96z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/musical-notes-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/musical-notes-outline.svg deleted file mode 100644 index 4c9038d2e54aa45d762e44c468aa351967c9f680..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/musical-notes-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Musical Notes</title><path d="M192 218v-6c0-14.84 10-27 24.24-30.59l174.59-46.68A20 20 0 01416 154v22" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M416 295.94v80c0 13.91-8.93 25.59-22 30l-22 8c-25.9 8.72-52-10.42-52-38h0a33.37 33.37 0 0123-32l51-18.15c13.07-4.4 22-15.94 22-29.85V58a10 10 0 00-12.6-9.61L204 102a16.48 16.48 0 00-12 16v226c0 13.91-8.93 25.6-22 30l-52 18c-13.88 4.68-22 17.22-22 32h0c0 27.58 26.52 46.55 52 38l22-8c13.07-4.4 22-16.08 22-30v-80" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/musical-notes-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/musical-notes-sharp.svg deleted file mode 100644 index 9a5f839fd18bef7d10397d2fcbe36c9fc799ed22..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/musical-notes-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Musical Notes</title><path d="M429.46 32.07c-23.6 6.53-205.55 58.81-250.54 71.43a4 4 0 00-2.92 3.83v247a2 2 0 01-1.33 1.89l-27.85 9.55c-19 7.44-66.82 16.68-66.82 59.19 0 35.54 24.63 51.54 45.86 54.28a52.06 52.06 0 007.81.8c7.37 0 36.38-7.08 53.3-18.08C208 448.25 208 448 208 412V202c0-.9.62-.84 1.48-1.07l188-51.92a2 2 0 012.53 2v155.54a2 2 0 01-1.36 1.89c-8.9 3-19.23 6.5-26.48 9.12C341.39 328.68 304 335.65 304 376c0 38.51 28.26 54.58 46.3 55.83a87.37 87.37 0 0021.33-1c9-1.38 24.09-5.9 38.14-14.86C432 401.79 432 401.51 432 360V34a2 2 0 00-2.54-1.93z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/musical-notes.svg b/ionic/platforms/android/app/src/main/assets/www/svg/musical-notes.svg deleted file mode 100644 index 35899673cdd5e6640b73a050328a93c9cbfa927e..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/musical-notes.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Musical Notes</title><path d="M421.84 37.37a25.86 25.86 0 00-22.6-4.46L199.92 86.49A32.3 32.3 0 00176 118v226c0 6.74-4.36 12.56-11.11 14.83l-.12.05-52 18C92.88 383.53 80 402 80 423.91a55.54 55.54 0 0023.23 45.63A54.78 54.78 0 00135.34 480a55.82 55.82 0 0017.75-2.93l.38-.13 21.84-7.94A47.84 47.84 0 00208 423.91v-212c0-7.29 4.77-13.21 12.16-15.07l.21-.06L395 150.14a4 4 0 015 3.86v141.93c0 6.75-4.25 12.38-11.11 14.68l-.25.09-50.89 18.11A49.09 49.09 0 00304 375.92a55.67 55.67 0 0023.23 45.8 54.63 54.63 0 0049.88 7.35l.36-.12 21.84-7.95A47.83 47.83 0 00432 375.92V58a25.74 25.74 0 00-10.16-20.63z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/navigate-circle-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/navigate-circle-outline.svg deleted file mode 100644 index db3078583ee0a2060db08d313f4d44d4d118596e..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/navigate-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Navigate Circle</title><path d="M336.76 161l-186.53 82.35c-10.47 4.8-6.95 20.67 4.57 20.67H244a4 4 0 014 4v89.18c0 11.52 16 15 20.78 4.56L351 175.24A10.73 10.73 0 00336.76 161z"/><path d="M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/navigate-circle-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/navigate-circle-sharp.svg deleted file mode 100644 index 56c049cdab9c0dbb5df5f46fc72904ae2b88367b..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/navigate-circle-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Navigate Circle</title><path d="M256 48A208.23 208.23 0 0048 256c0 114.68 93.31 208 208 208a208.23 208.23 0 00208-208c0-114.69-93.31-208-208-208zm-8 361V264H103l259-114.11z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/navigate-circle.svg b/ionic/platforms/android/app/src/main/assets/www/svg/navigate-circle.svg deleted file mode 100644 index 515748165350698d7e5e9e7ffc42c9d7b3f0882c..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/navigate-circle.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Navigate Circle</title><path d="M258.9 48C141.92 46.42 46.42 141.92 48 258.9c1.56 112.19 92.91 203.54 205.1 205.1 117 1.6 212.48-93.9 210.88-210.88C462.44 140.91 371.09 49.56 258.9 48zM351 175.24l-82.24 186.52c-4.79 10.47-20.78 7-20.78-4.56V268a4 4 0 00-4-4H154.8c-11.52 0-15-15.87-4.57-20.67L336.76 161A10.73 10.73 0 01351 175.24z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/navigate-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/navigate-outline.svg deleted file mode 100644 index 84893cef1f0a5361640b8fbbf0aac41130eb30e8..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/navigate-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Navigate</title><path d="M448 64L64 240.14h200a8 8 0 018 8V448z" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/navigate-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/navigate-sharp.svg deleted file mode 100644 index 81c4fb2d35252c9b83fa1f258d9ffc864c0003a4..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/navigate-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Navigate</title><path d="M480 32L32 240h240v240L480 32z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/navigate.svg b/ionic/platforms/android/app/src/main/assets/www/svg/navigate.svg deleted file mode 100644 index f0fd758caffcd9d0e6acb3d92d109360d8935070..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/navigate.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Navigate</title><path d="M272 464a16 16 0 01-16-16.42V264.13a8 8 0 00-8-8H64.41a16.31 16.31 0 01-15.49-10.65 16 16 0 018.41-19.87l384-176.15a16 16 0 0121.22 21.19l-176 384A16 16 0 01272 464z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/newspaper-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/newspaper-outline.svg deleted file mode 100644 index 4fde1249594249a7cb1596c5ab48492a3b6f48b6..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/newspaper-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Newspaper</title><path d="M368 415.86V72a24.07 24.07 0 00-24-24H72a24.07 24.07 0 00-24 24v352a40.12 40.12 0 0040 40h328" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M416 464h0a48 48 0 01-48-48V128h72a24 24 0 0124 24v264a48 48 0 01-48 48z" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-linejoin="round" d="M240 128h64M240 192h64M112 256h192M112 320h192M112 384h192" class="ionicon-fill-none ionicon-stroke-width"/><path d="M176 208h-64a16 16 0 01-16-16v-64a16 16 0 0116-16h64a16 16 0 0116 16v64a16 16 0 01-16 16z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/newspaper-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/newspaper-sharp.svg deleted file mode 100644 index 576b692ddb235fb8ba0c11c403daf1af116a8944..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/newspaper-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Newspaper</title><rect x="96" y="112" width="96" height="96" rx="16" ry="16" class="ionicon-fill-none"/><path d="M468 112h-52v304a32 32 0 0032 32 32 32 0 0032-32V124a12 12 0 00-12-12z"/><path d="M431.15 477.75A64.11 64.11 0 01384 416V44a12 12 0 00-12-12H44a12 12 0 00-12 12v380a56 56 0 0056 56h342.85a1.14 1.14 0 00.3-2.25zM96 208v-96h96v96zm224 192H96v-32h224zm0-64H96v-32h224zm0-64H96v-32h224zm0-64h-96v-32h96zm0-64h-96v-32h96z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/newspaper.svg b/ionic/platforms/android/app/src/main/assets/www/svg/newspaper.svg deleted file mode 100644 index f02f56d78fa41dbdf2c454527975cf419e63a6bd..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/newspaper.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Newspaper</title><path d="M439.91 112h-23.82a.09.09 0 00-.09.09V416a32 32 0 0032 32 32 32 0 0032-32V152.09A40.09 40.09 0 00439.91 112z"/><path d="M384 416V72a40 40 0 00-40-40H72a40 40 0 00-40 40v352a56 56 0 0056 56h342.85a1.14 1.14 0 001.15-1.15 1.14 1.14 0 00-.85-1.1A64.11 64.11 0 01384 416zM96 128a16 16 0 0116-16h64a16 16 0 0116 16v64a16 16 0 01-16 16h-64a16 16 0 01-16-16zm208 272H112.45c-8.61 0-16-6.62-16.43-15.23A16 16 0 01112 368h191.55c8.61 0 16 6.62 16.43 15.23A16 16 0 01304 400zm0-64H112.45c-8.61 0-16-6.62-16.43-15.23A16 16 0 01112 304h191.55c8.61 0 16 6.62 16.43 15.23A16 16 0 01304 336zm0-64H112.45c-8.61 0-16-6.62-16.43-15.23A16 16 0 01112 240h191.55c8.61 0 16 6.62 16.43 15.23A16 16 0 01304 272zm0-64h-63.55c-8.61 0-16-6.62-16.43-15.23A16 16 0 01240 176h63.55c8.61 0 16 6.62 16.43 15.23A16 16 0 01304 208zm0-64h-63.55c-8.61 0-16-6.62-16.43-15.23A16 16 0 01240 112h63.55c8.61 0 16 6.62 16.43 15.23A16 16 0 01304 144z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/notifications-circle-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/notifications-circle-outline.svg deleted file mode 100644 index 4529f94c9340446e43888ab139ef13858cae1e2f..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/notifications-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Notifications Circle</title><path d="M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><path d="M365.2 313c-16.33-19.34-27.86-27.47-27.86-80.8 0-48.86-25.78-66.23-47-74.67a11.39 11.39 0 01-6.34-6.68C280.29 138.6 269.88 128 256 128s-24.31 10.6-28 22.86a11.35 11.35 0 01-6.33 6.68c-21.24 8.46-47 25.8-47 74.67 0 53.33-11.54 61.46-27.87 80.8-6.77 8-.65 23 11.19 23H354C365.77 336 371.94 321 365.2 313zM220.24 352a4 4 0 00-4 4.42C218.49 375.14 235.11 384 256 384c20.67 0 37.14-9.15 39.66-27.52a4 4 0 00-4-4.48z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/notifications-circle-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/notifications-circle-sharp.svg deleted file mode 100644 index ccd9a5fc5432a88e0dcd71939ce087ef3ab0f081..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/notifications-circle-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Notifications Circle</title><path d="M295.68 351.43v.57h.32z"/><path d="M256 384c22.28 0 39.36-10.63 39.66-32H216c0 21.75 17.53 32 40 32zM295.67 352h.33l-.32-.57c0 .19-.01.38-.01.57z" class="ionicon-fill-none"/><path d="M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm0 336c-22.48 0-40-10.25-40-32h80c-.3 21.37-17.71 32-40 32zm112-48H144v-28l28-36v-32.3c0-40.41 15.82-75.35 56-84.27l4-27.43h48l4 27.43c40 8.92 56 44 56 84.27V272l28 36z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/notifications-circle.svg b/ionic/platforms/android/app/src/main/assets/www/svg/notifications-circle.svg deleted file mode 100644 index 070e5ff56ad7831ebd8ffe13a3055c9132e34d37..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/notifications-circle.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Notifications Circle</title><path d="M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm0 336c-20.9 0-37.52-8.86-39.75-27.58a4 4 0 014-4.42h71.45a4 4 0 014 4.48C293.15 374.85 276.68 384 256 384zm98-48H158c-11.84 0-18-15-11.19-23 16.33-19.34 27.87-27.47 27.87-80.8 0-48.87 25.74-66.21 47-74.67a11.35 11.35 0 006.33-6.68C231.7 138.6 242.14 128 256 128s24.28 10.6 28 22.86a11.39 11.39 0 006.34 6.68c21.21 8.44 47 25.81 47 74.67 0 53.33 11.53 61.46 27.86 80.8 6.74 7.99.57 22.99-11.2 22.99z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/notifications-off-circle-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/notifications-off-circle-outline.svg deleted file mode 100644 index 5f84140786f90683330e9993a80f5b29fbe81b02..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/notifications-off-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Notifications Off Circle</title><path d="M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><path d="M220.24 352a4 4 0 00-4 4.42C218.49 375.14 235.11 384 256 384s37.5-8.86 39.73-27.58a4 4 0 00-4-4.42zM352 378a15.93 15.93 0 01-11.84-5.24l-192-212a16 16 0 0123.68-21.52l192 212A16 16 0 01352 378zM174.68 232.21c0 53.33-11.54 61.46-27.87 80.8-6.77 8-.65 23 11.19 23h118.83a4 4 0 002.95-6.7l-98-106.87a4 4 0 00-6.94 2.52c-.1 2.33-.16 4.75-.16 7.25zM365.2 313c-16.33-19.34-27.86-27.47-27.86-80.8 0-48.86-25.78-66.23-47-74.67a11.39 11.39 0 01-6.34-6.68C280.29 138.6 269.88 128 256 128s-24.31 10.6-28 22.86a11.35 11.35 0 01-6.33 6.68c-1.28.51-2.57 1.05-3.88 1.63a4 4 0 00-1.3 6.36L361 323.21a4 4 0 006.94-2.95 12 12 0 00-2.74-7.26z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/notifications-off-circle-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/notifications-off-circle-sharp.svg deleted file mode 100644 index f7476a0be245e1175c21c74e21ff546b69fdfa20..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/notifications-off-circle-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Notifications Off Circle</title><path d="M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zM144 308l28-36v-32.3a131.83 131.83 0 012.34-25.42L285.92 336H144zm112.18 76C233.6 384 216 373.75 216 352h80c-.3 21.37-17.45 32-39.82 32zm93.48-3.74l-211-227 23.68-21.52 211 227zM368 330.85l-.32-.38-155.5-169.63a73.4 73.4 0 0115.82-5.41l4-27.43h48l4 27.43c40 8.92 56 44 56 84.27V272l28 36z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/notifications-off-circle.svg b/ionic/platforms/android/app/src/main/assets/www/svg/notifications-off-circle.svg deleted file mode 100644 index c07bac6847a65ce588481c9bfd556fe91a7df202..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/notifications-off-circle.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Notifications Off Circle</title><path d="M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zM146.83 313c16.33-19.34 27.86-27.47 27.86-80.8q0-3.75.2-7.26a4 4 0 017-2.52l98 106.87a4 4 0 01-2.94 6.7H158C146.18 336 140.06 321 146.83 313zm148.93 43.41C293.53 375.14 276.92 384 256 384s-37.51-8.86-39.75-27.58a4 4 0 014-4.42h71.53a4 4 0 013.98 4.42zm67 17.42a16 16 0 01-22.6-1.08l-192-212a16 16 0 0123.68-21.52l192 212a16 16 0 01-1.08 22.61zM361 323.21L216.49 165.53a4 4 0 011.3-6.36c1.31-.58 2.61-1.12 3.89-1.63a11.33 11.33 0 006.32-6.68c3.72-12.26 14.15-22.86 28-22.86s24.29 10.6 28 22.86a11.34 11.34 0 006.34 6.68c21.21 8.44 47 25.81 47 74.67 0 53.33 11.54 61.46 27.87 80.8a12.09 12.09 0 012.76 7.25 4 4 0 01-6.97 2.95z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/notifications-off-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/notifications-off-outline.svg deleted file mode 100644 index 6a91bee3de12f47c42db1d6a540075d30cc5c82e..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/notifications-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Notifications Off</title><path d="M128.51 204.59q-.37 6.15-.37 12.76C128.14 304 110 320 84.33 351.43 73.69 364.45 83 384 101.62 384H320M414.5 335.3c-18.48-23.45-30.62-47.05-30.62-118 0-79.3-40.52-107.57-73.88-121.3-4.43-1.82-8.6-6-9.95-10.55C294.21 65.54 277.82 48 256 48s-38.2 17.55-44 37.47c-1.35 4.6-5.52 8.71-10 10.53a149.57 149.57 0 00-18 8.79M320 384v16a64 64 0 01-128 0v-16" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-miterlimit="10" d="M448 448L64 64" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/notifications-off-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/notifications-off-sharp.svg deleted file mode 100644 index fba9d91af086977fe23c39f34ce124793d2902f9..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/notifications-off-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Notifications Off</title><path d="M41.37 64l22.628-22.628L470.627 448l-22.628 22.627zM256 480a80.09 80.09 0 0073.3-48H182.7a80.09 80.09 0 0073.3 48zM112 227.47V288l-48 64v48h268.12L115.87 183.75a236.75 236.75 0 00-3.87 43.72zM448 352l-48-64v-60.53C400 157 372.64 95.61 304 80l-8-48h-80l-8 48a117.45 117.45 0 00-41.95 18.17l282 282z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/notifications-off.svg b/ionic/platforms/android/app/src/main/assets/www/svg/notifications-off.svg deleted file mode 100644 index 33b62a14ce41213187a72c7a40b5729e251ed4de..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/notifications-off.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Notifications Off</title><path d="M448 464a15.92 15.92 0 01-11.31-4.69l-384-384a16 16 0 0122.62-22.62l384 384A16 16 0 01448 464zM440.08 341.31c-1.66-2-3.29-4-4.89-5.93-22-26.61-35.31-42.67-35.31-118 0-39-9.33-71-27.72-95-13.56-17.73-31.89-31.18-56.05-41.12a3 3 0 01-.82-.67C306.6 51.49 282.82 32 256 32s-50.59 19.49-59.28 48.56a3.13 3.13 0 01-.81.65 157.88 157.88 0 00-21.88 11 8 8 0 00-1.49 12.49l261.78 261.74a8 8 0 0013.6-6.63 35.39 35.39 0 00-7.84-18.5zM112.14 217.35c0 75.36-13.29 91.42-35.31 118-1.6 1.93-3.23 3.89-4.89 5.93a35.16 35.16 0 00-4.65 37.62c6.17 13 19.32 21.07 34.33 21.07H312.8a8 8 0 005.66-13.66l-192-192a8 8 0 00-13.62 5q-.7 8.69-.7 18.04zM256 480a80.06 80.06 0 0070.44-42.13 4 4 0 00-3.54-5.87H189.12a4 4 0 00-3.55 5.87A80.06 80.06 0 00256 480z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/notifications-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/notifications-outline.svg deleted file mode 100644 index 6c31a0a768c215966baf3a1159c0b57dbf664ba1..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/notifications-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Notifications</title><path d="M427.68 351.43C402 320 383.87 304 383.87 217.35 383.87 138 343.35 109.73 310 96c-4.43-1.82-8.6-6-9.95-10.55C294.2 65.54 277.8 48 256 48s-38.21 17.55-44 37.47c-1.35 4.6-5.52 8.71-9.95 10.53-33.39 13.75-73.87 41.92-73.87 121.35C128.13 304 110 320 84.32 351.43 73.68 364.45 83 384 101.61 384h308.88c18.51 0 27.77-19.61 17.19-32.57zM320 384v16a64 64 0 01-128 0v-16" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/notifications-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/notifications-sharp.svg deleted file mode 100644 index 96a4b8263e7af3e6b0ef46fedb4db3b3cabad127..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/notifications-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Notifications</title><path d="M256 480a80.09 80.09 0 0073.3-48H182.7a80.09 80.09 0 0073.3 48zM400 288v-60.53C400 157 372.64 95.61 304 80l-8-48h-80l-8 48c-68.88 15.61-96 76.76-96 147.47V288l-48 64v48h384v-48z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/notifications.svg b/ionic/platforms/android/app/src/main/assets/www/svg/notifications.svg deleted file mode 100644 index 4f21feb6bc751fbf3213f4898333c9c7f2d71c8a..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/notifications.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Notifications</title><path d="M440.08 341.31c-1.66-2-3.29-4-4.89-5.93-22-26.61-35.31-42.67-35.31-118 0-39-9.33-71-27.72-95-13.56-17.73-31.89-31.18-56.05-41.12a3 3 0 01-.82-.67C306.6 51.49 282.82 32 256 32s-50.59 19.49-59.28 48.56a3.13 3.13 0 01-.81.65c-56.38 23.21-83.78 67.74-83.78 136.14 0 75.36-13.29 91.42-35.31 118-1.6 1.93-3.23 3.89-4.89 5.93a35.16 35.16 0 00-4.65 37.62c6.17 13 19.32 21.07 34.33 21.07H410.5c14.94 0 28-8.06 34.19-21a35.17 35.17 0 00-4.61-37.66zM256 480a80.06 80.06 0 0070.44-42.13 4 4 0 00-3.54-5.87H189.12a4 4 0 00-3.55 5.87A80.06 80.06 0 00256 480z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/nuclear-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/nuclear-outline.svg deleted file mode 100644 index 81460cc468a93de4f9e4c0209be242bc0b767258..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/nuclear-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Nuclear</title><circle cx="256" cy="256" r="192" stroke-linecap="round" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="256" cy="256" r="64" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-miterlimit="10" d="M224 192L171 85M288 192l53-107M327.55 255.81l119.41.13M299.09 313.13l72.25 95.06M184.45 255.81l-119.41.13M212.91 313.13l-72.25 95.06" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/nuclear-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/nuclear-sharp.svg deleted file mode 100644 index 15a82eac0ab08ca5525dff014ed20132ed073be5..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/nuclear-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Nuclear</title><circle cx="256" cy="256" r="48"/><path d="M223.47 335.59l-51.71 68a169.73 169.73 0 00168.48 0l-51.71-68" class="ionicon-fill-none"/><path d="M403.08 108.92a208 208 0 00-294.16 294.16 208 208 0 00294.16-294.16zM342 256a86.13 86.13 0 01-53.47 79.59l51.71 68a169.73 169.73 0 01-168.48 0l51.71-68a86 86 0 01-50.56-101.77l-85.48.09a170.21 170.21 0 0173.83-119l37.94 76.59a85.78 85.78 0 01113.6 0l37.94-76.59a170.21 170.21 0 0173.83 119l-85.48-.09A85.87 85.87 0 01342 256z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/nuclear.svg b/ionic/platforms/android/app/src/main/assets/www/svg/nuclear.svg deleted file mode 100644 index 79dea3bcb7c2b5c12bc605150042dce3a6a74674..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/nuclear.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Nuclear</title><path d="M258.9 48C141.92 46.42 46.42 141.92 48 258.9c1.56 112.19 92.91 203.54 205.1 205.1 117 1.6 212.48-93.9 210.88-210.88C462.44 140.91 371.09 49.56 258.9 48zM429 239.92l-93.08-.1a2 2 0 01-1.95-1.57 80.08 80.08 0 00-27.44-44.17 2 2 0 01-.54-2.43l41.32-83.43a2 2 0 012.87-.81A176.2 176.2 0 01431 237.71a2 2 0 01-2 2.21zm-220.8 20.46a48 48 0 1143.42 43.42 48 48 0 01-43.42-43.42zm-43.55-152.16L206 191.65a2 2 0 01-.54 2.43A80.08 80.08 0 00178 238.25a2 2 0 01-2 1.57l-93.08.1a2 2 0 01-2-2.21 176.2 176.2 0 0180.82-130.3 2 2 0 012.91.81zm-.37 295.34l56.31-74.09a2 2 0 012.43-.6 79.84 79.84 0 0066 0 2 2 0 012.43.6l56.31 74.09a2 2 0 01-.54 2.92 175.65 175.65 0 01-182.36 0 2 2 0 01-.58-2.92z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/nutrition-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/nutrition-outline.svg deleted file mode 100644 index c07efb7c1de7512e5e98c2063ffe8b178f989893..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/nutrition-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Nutrition</title><path d="M352 128c-32.26-2.89-64 16-96 16s-63.75-19-96-16c-64 6-96 64-96 160 0 80 64 192 111.2 192s51.94-24 80.8-24 33.59 24 80.8 24S448 368 448 288c0-96-29-154-96-160z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><path d="M323.92 83.14c-21 21-45.66 27-58.82 28.79a8 8 0 01-9.1-8.73 97.6 97.6 0 0128.61-59.33c22-22 46-26.9 58.72-27.85a8 8 0 018.67 8.92 98 98 0 01-28.08 58.2z"/><ellipse cx="216" cy="304" rx="24" ry="48"/><ellipse cx="296" cy="304" rx="24" ry="48"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/nutrition-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/nutrition-sharp.svg deleted file mode 100644 index ad87c504d02d2061176f69dad2141016d3aea5a7..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/nutrition-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Nutrition</title><path d="M438.71 159.43c-17.6-28.31-45.5-43.8-85.28-47.37-22.82-2-50.23 4.94-72.25 10.55C271.26 125.14 260 128 256 128s-15.18-2.86-25-5.39c-22.08-5.65-49.56-12.69-72.45-10.54-38.53 3.61-66 19.19-84 47.62S48 229 48 288c0 61.28 29.53 114.58 47.13 140.89C116.82 461.34 149.25 496 175.2 496c18.57 0 34.12-7.23 47.82-13.64C243 473 256 472 256 472s11 0 31.94 10.11C301.65 488.73 317.3 496 336.8 496c26.58 0 59.08-34.69 80.63-67.15C434.82 402.65 464 349.52 464 288c0-60-8-100.83-25.29-128.57zM216 352c-13.25 0-24-21.49-24-48s10.75-48 24-48 24 21.49 24 48-10.75 48-24 48zm80 0c-13.25 0-24-21.49-24-48s10.75-48 24-48 24 21.49 24 48-10.75 48-24 48z"/><path d="M323.72 82.76C353.68 52.82 352 16.18 352 16.14s-35.77-3.76-67.23 27.67S256.06 112 256.06 112s37.68.71 67.66-29.24z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/nutrition.svg b/ionic/platforms/android/app/src/main/assets/www/svg/nutrition.svg deleted file mode 100644 index f73b0906ad326247412546acb781bb12b13fa344..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/nutrition.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Nutrition</title><path d="M439 166.29c-18.67-32.57-47.46-50.81-85.57-54.23-20.18-1.8-39 3.37-57.23 8.38-14.15 3.89-27.52 7.56-40.2 7.56s-26-3.68-40.06-7.57c-18.28-5-37.18-10.26-57.43-8.36-36.39 3.41-65.51 22.11-84.31 54.08C56.82 195.76 48 236.76 48 288c0 40.4 15 90.49 40 134 12.82 22.25 47 74 87.16 74 30.77 0 47.15-9.44 59.11-16.33 8.3-4.78 13.31-7.67 21.69-7.67s13.39 2.89 21.69 7.67c12 6.89 28.35 16.33 59.15 16.33 40.17 0 74.34-51.76 87.16-74 25.07-43.5 40-93.59 40-134 .04-52.57-8.14-92.38-24.96-121.71zM216 352c-13.25 0-24-21.49-24-48s10.75-48 24-48 24 21.49 24 48-10.75 48-24 48zm80 0c-13.25 0-24-21.49-24-48s10.75-48 24-48 24 21.49 24 48-10.75 48-24 48z"/><path d="M265.1 111.93c13.16-1.75 37.86-7.83 58.83-28.79a98 98 0 0028-58.2 8 8 0 00-8.55-8.94c-12.71.95-36.76 5.87-58.73 27.85A97.6 97.6 0 00256 103.2a8 8 0 009.1 8.73z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/open-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/open-outline.svg deleted file mode 100644 index e10cd6d942c9950f9cc2b858a8c954647501d85a..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/open-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Open</title><path d="M384 224v184a40 40 0 01-40 40H104a40 40 0 01-40-40V168a40 40 0 0140-40h167.48M336 64h112v112M224 288L440 72" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/open-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/open-sharp.svg deleted file mode 100644 index 9ff7880d0432ac9f2a2a0116f738fc0f0e53d642..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/open-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Open</title><path d="M201.37 288l176-176H48v352h352V134.63l-176 176L201.37 288z"/><path d="M320 48v32h89.37l-32 32L400 134.63l32-32V192h32V48H320z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/open.svg b/ionic/platforms/android/app/src/main/assets/www/svg/open.svg deleted file mode 100644 index 766753e323d4ec804fcdd4cd2992aeba9335a3b1..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/open.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Open</title><path d="M224 304a16 16 0 01-11.31-27.31l157.94-157.94A55.7 55.7 0 00344 112H104a56.06 56.06 0 00-56 56v240a56.06 56.06 0 0056 56h240a56.06 56.06 0 0056-56V168a55.7 55.7 0 00-6.75-26.63L235.31 299.31A15.92 15.92 0 01224 304z"/><path d="M448 48H336a16 16 0 000 32h73.37l-38.74 38.75a56.35 56.35 0 0122.62 22.62L432 102.63V176a16 16 0 0032 0V64a16 16 0 00-16-16z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/options-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/options-outline.svg deleted file mode 100644 index 51e22be2d97254911282c7d552b1556c56935e00..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/options-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Options</title><path stroke-linecap="round" stroke-linejoin="round" d="M368 128h80M64 128h240M368 384h80M64 384h240M208 256h240M64 256h80" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="336" cy="128" r="32" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="176" cy="256" r="32" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="336" cy="384" r="32" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/options-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/options-sharp.svg deleted file mode 100644 index 4240dc16f5a66bdcba3caead994b23f1c5a978ff..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/options-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Options</title><path d="M381.25 112a48 48 0 00-90.5 0H48v32h242.75a48 48 0 0090.5 0H464v-32zM176 208a48.09 48.09 0 00-45.25 32H48v32h82.75a48 48 0 0090.5 0H464v-32H221.25A48.09 48.09 0 00176 208zM336 336a48.09 48.09 0 00-45.25 32H48v32h242.75a48 48 0 0090.5 0H464v-32h-82.75A48.09 48.09 0 00336 336z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/options.svg b/ionic/platforms/android/app/src/main/assets/www/svg/options.svg deleted file mode 100644 index 4e0e851318b3eb506398c63d143fc8f3599ab986..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/options.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Options</title><path d="M64 144h226.75a48 48 0 0090.5 0H448a16 16 0 000-32h-66.75a48 48 0 00-90.5 0H64a16 16 0 000 32zM448 368h-66.75a48 48 0 00-90.5 0H64a16 16 0 000 32h226.75a48 48 0 0090.5 0H448a16 16 0 000-32zM448 240H221.25a48 48 0 00-90.5 0H64a16 16 0 000 32h66.75a48 48 0 0090.5 0H448a16 16 0 000-32z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/paper-plane-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/paper-plane-outline.svg deleted file mode 100644 index 6f6c12d339b5f9988ce63358290aa5d110ed9e09..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/paper-plane-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Paper Plane</title><path d="M53.12 199.94l400-151.39a8 8 0 0110.33 10.33l-151.39 400a8 8 0 01-15-.34l-67.4-166.09a16 16 0 00-10.11-10.11L53.46 215a8 8 0 01-.34-15.06zM460 52L227 285" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/paper-plane-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/paper-plane-sharp.svg deleted file mode 100644 index 8a3eb795cc53321d845debdc6ced833abf9ce61b..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/paper-plane-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Paper Plane</title><path d="M496 16L15.88 208 195 289 448 64 223 317l81 179L496 16z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/paper-plane.svg b/ionic/platforms/android/app/src/main/assets/www/svg/paper-plane.svg deleted file mode 100644 index 7ab41852a036856abebcdbf340abf4ae5ca7b816..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/paper-plane.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Paper Plane</title><path d="M473 39.05a24 24 0 00-25.5-5.46L47.47 185h-.08a24 24 0 001 45.16l.41.13 137.3 58.63a16 16 0 0015.54-3.59L422 80a7.07 7.07 0 0110 10L226.66 310.26a16 16 0 00-3.59 15.54l58.65 137.38c.06.2.12.38.19.57 3.2 9.27 11.3 15.81 21.09 16.25h1a24.63 24.63 0 0023-15.46L478.39 64.62A24 24 0 00473 39.05z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/partly-sunny-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/partly-sunny-outline.svg deleted file mode 100644 index a85772af4b26683a840b53941fad405920c2f63a..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/partly-sunny-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Partly Sunny</title><path d="M90.61 306.85A16.07 16.07 0 00104 293.6C116.09 220.17 169.63 176 232 176c57.93 0 96.62 37.75 112.2 77.74a15.84 15.84 0 0012.2 9.87c50 8.15 91.6 41.54 91.6 99.59 0 59.4-48.6 100.8-108 100.8H106c-49.5 0-90-24.7-90-79.2 0-48.47 38.67-72.22 74.61-77.95z" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M384.8 271.4a80 80 0 10-123.55-92M464 208h32M336 48v32M222.86 94.86l22.63 22.63M449.14 94.86l-22.63 22.63" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/partly-sunny-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/partly-sunny-sharp.svg deleted file mode 100644 index 113c14e87ef62672c02b0e5e19280eb710a0d41d..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/partly-sunny-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Partly Sunny</title><path d="M340 480H106c-29.5 0-54.92-7.83-73.53-22.64C11.23 440.44 0 415.35 0 384.8c0-26.66 10.08-49.8 29.14-66.91 15.24-13.68 36.17-23.21 59-26.84.06 0 .08 0 .09-.05 6.44-39 23.83-72.09 50.31-95.68A140.24 140.24 0 01232 160c30.23 0 58.48 9.39 81.71 27.17a142.69 142.69 0 0145.36 60.66c29.41 4.82 54.72 17.11 73.19 35.54C453 304.11 464 331.71 464 363.2c0 32.85-13.13 62.87-37 84.52-22.89 20.82-53.8 32.28-87 32.28zm19-232.18zM381.5 219.89a169.23 169.23 0 0145.44 19A96 96 0 00281 129.33q-2.85 2-5.54 4.2a162.47 162.47 0 0157.73 28.23 174.53 174.53 0 0148.31 58.13zM448 192h64v32h-64zM320 32h32v64h-32zM255.35 129.63l12.45-12.45-44.62-44.63-22.63 22.63 33.17 33.17h.6a172 172 0 0121.03 1.28zM404.203 117.17l44.626-44.625 22.627 22.628-44.625 44.625z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/partly-sunny.svg b/ionic/platforms/android/app/src/main/assets/www/svg/partly-sunny.svg deleted file mode 100644 index bb0a61eec204e3ec027eff0c1bb4c19b6a914300..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/partly-sunny.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Partly Sunny</title><path d="M340 480H106c-29.5 0-54.92-7.83-73.53-22.64C11.23 440.44 0 415.35 0 384.8c0-26.66 10.08-49.8 29.14-66.91 15.24-13.68 36.17-23.21 59-26.84.06 0 .08 0 .09-.05 6.44-39 23.83-72.09 50.31-95.68A140.24 140.24 0 01232 160c30.23 0 58.48 9.39 81.71 27.17a142.24 142.24 0 0142.19 53.21 16 16 0 0011.19 9c26 5.61 48.4 17.29 65.17 34C453 304.11 464 331.71 464 363.2c0 32.85-13.13 62.87-37 84.52-22.89 20.82-53.8 32.28-87 32.28zm19-232.18zM387.89 221.68a168.8 168.8 0 0134.76 14.71 4 4 0 005.82-2.44 97 97 0 003.53-26.68c-.39-52.43-43.48-95.22-95.91-95.27A95.46 95.46 0 00281 129.33h-.06a3.38 3.38 0 001 6 162.45 162.45 0 0151.28 26.4 173.92 173.92 0 0145.32 52.51 16 16 0 009.35 7.44zM496 224h-32a16 16 0 010-32h32a16 16 0 010 32zM336 96a16 16 0 01-16-16V48a16 16 0 0132 0v32a16 16 0 01-16 16zM245.49 133.49a15.92 15.92 0 01-11.31-4.69l-22.63-22.62a16 16 0 0122.63-22.63l22.62 22.63a16 16 0 01-11.31 27.31zM426.51 133.49a16 16 0 01-11.31-27.31l22.62-22.63a16 16 0 0122.63 22.63l-22.63 22.62a15.92 15.92 0 01-11.31 4.69z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/pause-circle-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/pause-circle-outline.svg deleted file mode 100644 index 1acc278b9249248b71e484e16d61cccb9d34f509..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/pause-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Pause Circle</title><path d="M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-miterlimit="10" d="M208 192v128M304 192v128" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/pause-circle-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/pause-circle-sharp.svg deleted file mode 100644 index 9b8b1bdf9668790518008a262b1f7307e91b4122..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/pause-circle-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Pause Circle</title><path d="M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm-32 288h-32V176h32zm96 0h-32V176h32z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/pause-circle.svg b/ionic/platforms/android/app/src/main/assets/www/svg/pause-circle.svg deleted file mode 100644 index b45f47dba4bb43e019c86e549ee97ee6b4314c52..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/pause-circle.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Pause Circle</title><path d="M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm-32 272a16 16 0 01-32 0V192a16 16 0 0132 0zm96 0a16 16 0 01-32 0V192a16 16 0 0132 0z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/pause-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/pause-outline.svg deleted file mode 100644 index b3a6706d8668955499fdbbf620b9a28fa3824237..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/pause-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Pause</title><path stroke-linecap="round" stroke-linejoin="round" d="M176 96h16v320h-16zM320 96h16v320h-16z" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/pause-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/pause-sharp.svg deleted file mode 100644 index e99b59c16e0c7b2006e5c37b610ab8b8473deaa8..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/pause-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Pause</title><path d="M224 432h-80V80h80zM368 432h-80V80h80z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/pause.svg b/ionic/platforms/android/app/src/main/assets/www/svg/pause.svg deleted file mode 100644 index 108fcc6462662e947030b0d6aef2aae5a8ed9f31..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/pause.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Pause</title><path d="M208 432h-48a16 16 0 01-16-16V96a16 16 0 0116-16h48a16 16 0 0116 16v320a16 16 0 01-16 16zM352 432h-48a16 16 0 01-16-16V96a16 16 0 0116-16h48a16 16 0 0116 16v320a16 16 0 01-16 16z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/paw-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/paw-outline.svg deleted file mode 100644 index 0c4af66bde6145e1f208ab4f519aa2bb51df13cb..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/paw-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Paw</title><path d="M457.74 170.1a30.26 30.26 0 00-11.16-2.1h-.4c-20.17.3-42.79 19.19-54.66 47.76-14.23 34.18-7.68 69.15 14.74 78.14a30.21 30.21 0 0011.15 2.1c20.27 0 43.2-19 55.17-47.76 14.13-34.18 7.48-69.15-14.84-78.14zM327.6 303.48C299.8 257.35 287.8 240 256 240s-43.9 17.46-71.7 63.48c-23.8 39.36-71.9 42.64-83.9 76.07a50.91 50.91 0 00-3.6 19.25c0 27.19 20.8 49.2 46.4 49.2 31.8 0 75.1-25.39 112.9-25.39S337 448 368.8 448c25.6 0 46.3-22 46.3-49.2a51 51 0 00-3.7-19.25c-12-33.55-60-36.71-83.8-76.07zM192.51 196a26.53 26.53 0 004-.3c23.21-3.37 37.7-35.53 32.44-71.85C224 89.61 203.22 64 181.49 64a26.53 26.53 0 00-4 .3c-23.21 3.37-37.7 35.53-32.44 71.85C150 170.29 170.78 196 192.51 196zM366.92 136.15c5.26-36.32-9.23-68.48-32.44-71.85a26.53 26.53 0 00-4-.3c-21.73 0-42.47 25.61-47.43 59.85-5.26 36.32 9.23 68.48 32.44 71.85a26.53 26.53 0 004 .3c21.73 0 42.51-25.71 47.43-59.85zM105.77 293.9c22.39-9 28.93-44 14.72-78.14C108.53 187 85.62 168 65.38 168a30.21 30.21 0 00-11.15 2.1c-22.39 9-28.93 44-14.72 78.14C51.47 277 74.38 296 94.62 296a30.21 30.21 0 0011.15-2.1z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/paw-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/paw-sharp.svg deleted file mode 100644 index b1016d537be747fb00bb675dbf3c16d597ef6472..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/paw-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Paw</title><path d="M442.8 361.82c-8.8-25.1-29.31-37.82-49.11-50.12-17.23-10.71-33.5-20.83-44.14-39-29.33-50.33-45.44-80.7-93.49-80.7s-64.21 30.38-93.61 80.69c-10.65 18.21-27 28.35-44.25 39.08-19.8 12.31-40.27 25-49.1 50.05a78.06 78.06 0 00-5.1 28.29C64 430.85 96.45 464 132.4 464s83.31-18.13 123.76-18.13S343.31 464 379.71 464 448 430.85 448 390.11a78.3 78.3 0 00-5.2-28.29z"/><ellipse cx="72" cy="216" rx="56" ry="72"/><ellipse cx="184" cy="120" rx="56" ry="72"/><ellipse cx="328" cy="120" rx="56" ry="72"/><ellipse cx="440" cy="216" rx="56" ry="72"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/paw.svg b/ionic/platforms/android/app/src/main/assets/www/svg/paw.svg deleted file mode 100644 index 3906fcdf4b2d389efda07659167e338ff88fed0c..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/paw.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Paw</title><path d="M490.39 182.75c-5.55-13.19-14.77-22.7-26.67-27.49l-.16-.06a46.46 46.46 0 00-17-3.2h-.64c-27.24.41-55.05 23.56-69.19 57.61-10.37 24.9-11.56 51.68-3.18 71.64 5.54 13.2 14.78 22.71 26.73 27.5l.13.05a46.53 46.53 0 0017 3.2c27.5 0 55.6-23.15 70-57.65 10.24-24.87 11.37-51.63 2.98-71.6zM381.55 329.61c-15.71-9.44-30.56-18.37-40.26-34.41C314.53 250.8 298.37 224 256 224s-58.57 26.8-85.39 71.2c-9.72 16.06-24.6 25-40.36 34.48-18.07 10.86-36.74 22.08-44.8 44.16a66.93 66.93 0 00-4.65 25c0 35.95 28 65.2 62.4 65.2 17.75 0 36.64-6.15 56.63-12.66 19.22-6.26 39.09-12.73 56.27-12.73s37 6.47 56.15 12.73C332.2 457.85 351 464 368.8 464c34.35 0 62.3-29.25 62.3-65.2a67 67 0 00-4.75-25c-8.06-22.1-26.74-33.33-44.8-44.19zM150 188.85c11.9 14.93 27 23.15 42.52 23.15a42.88 42.88 0 006.33-.47c32.37-4.76 52.54-44.26 45.92-90C242 102.3 234.6 84.39 224 71.11 212.12 56.21 197 48 181.49 48a42.88 42.88 0 00-6.33.47c-32.37 4.76-52.54 44.26-45.92 90 2.76 19.2 10.16 37.09 20.76 50.38zM313.16 211.53a42.88 42.88 0 006.33.47c15.53 0 30.62-8.22 42.52-23.15 10.59-13.29 17.95-31.18 20.75-50.4 6.62-45.72-13.55-85.22-45.92-90a42.88 42.88 0 00-6.33-.47C315 48 299.88 56.21 288 71.11c-10.6 13.28-18 31.19-20.76 50.44-6.62 45.72 13.55 85.22 45.92 89.98zM111.59 308.8l.14-.05c11.93-4.79 21.16-14.29 26.69-27.48 8.38-20 7.2-46.75-3.15-71.65C120.94 175.16 92.85 152 65.38 152a46.4 46.4 0 00-17 3.2l-.14.05c-11.9 4.75-21.13 14.29-26.66 27.48-8.38 20-7.2 46.75 3.15 71.65C39.06 288.84 67.15 312 94.62 312a46.4 46.4 0 0016.97-3.2z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/pencil-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/pencil-outline.svg deleted file mode 100644 index 047d8af6d607d1be04751eb181d84f568016c63f..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/pencil-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Pencil</title><path stroke-linecap="round" stroke-linejoin="round" d="M364.13 125.25L87 403l-23 45 44.99-23 277.76-277.13-22.62-22.62zM420.69 68.69l-22.62 22.62 22.62 22.63 22.62-22.63a16 16 0 000-22.62h0a16 16 0 00-22.62 0z" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/pencil-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/pencil-sharp.svg deleted file mode 100644 index 3be7840d385881b711cffe96fca33e5a511bf026..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/pencil-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Pencil</title><path d="M103 464H48v-55L358.14 98.09l55.77 55.78L103 464zM425.72 142L370 86.28l31.66-30.66C406.55 50.7 414.05 48 421 48a25.91 25.91 0 0118.42 7.62l17 17A25.87 25.87 0 01464 91c0 7-2.71 14.45-7.62 19.36zm-7.52-70.83z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/pencil.svg b/ionic/platforms/android/app/src/main/assets/www/svg/pencil.svg deleted file mode 100644 index 0aa0730b66b7769df536711b9e8d2fcb7e33e952..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/pencil.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Pencil</title><path stroke-linecap="round" stroke-linejoin="round" stroke-width="44" d="M358.62 129.28L86.49 402.08 70 442l39.92-16.49 272.8-272.13-24.1-24.1zM413.07 74.84l-11.79 11.78 24.1 24.1 11.79-11.79a16.51 16.51 0 000-23.34l-.75-.75a16.51 16.51 0 00-23.35 0z" class="ionicon-fill-none"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/people-circle-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/people-circle-outline.svg deleted file mode 100644 index 0e11a1f8fde15e1b6283666e8b68be1605d2bf28..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/people-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>People Circle</title><path d="M256 464c-114.69 0-208-93.31-208-208S141.31 48 256 48s208 93.31 208 208-93.31 208-208 208zm0-384c-97 0-176 79-176 176s79 176 176 176 176-78.95 176-176S353.05 80 256 80z"/><path d="M323.67 292c-17.4 0-34.21-7.72-47.34-21.73a83.76 83.76 0 01-22-51.32c-1.47-20.7 4.88-39.75 17.88-53.62S303.38 144 323.67 144c20.14 0 38.37 7.62 51.33 21.46s19.47 33 18 53.51a84 84 0 01-22 51.3C357.86 284.28 341.06 292 323.67 292zm55.81-74zM163.82 295.36c-29.76 0-55.93-27.51-58.33-61.33-1.23-17.32 4.15-33.33 15.17-45.08s26.22-18 43.15-18 32.12 6.44 43.07 18.14 16.5 27.82 15.25 45c-2.44 33.77-28.6 61.27-58.31 61.27zM420.37 355.28c-1.59-4.7-5.46-9.71-13.22-14.46-23.46-14.33-52.32-21.91-83.48-21.91-30.57 0-60.23 7.9-83.53 22.25-26.25 16.17-43.89 39.75-51 68.18-1.68 6.69-4.13 19.14-1.51 26.11a192.18 192.18 0 00232.75-80.17zM163.63 401.37c7.07-28.21 22.12-51.73 45.47-70.75a8 8 0 00-2.59-13.77c-12-3.83-25.7-5.88-42.69-5.88-23.82 0-49.11 6.45-68.14 18.17-5.4 3.33-10.7 4.61-14.78 5.75a192.84 192.84 0 0077.78 86.64l1.79-.14a102.82 102.82 0 013.16-20.02z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/people-circle-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/people-circle-sharp.svg deleted file mode 100644 index a3f9f38b74999e5bcfe56965dd7ab7720eb7e913..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/people-circle-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>People Circle</title><path d="M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm69.3 96.17a72.5 72.5 0 11-72.6 72.5 72.55 72.55 0 0172.6-72.5zm-155.1 26.36a59.32 59.32 0 11-59.4 59.32 59.35 59.35 0 0159.4-59.32zm-75.85 155c24.5-13.29 55.87-19.94 75.85-19.94 15 0 34.32 3 53.33 10.2a133.05 133.05 0 00-34 27.11c-13.19 15-20.76 32.92-20.76 50.83v15a177.06 177.06 0 01-74.42-83.15zM256 432a175.12 175.12 0 01-59.4-10.33v-27.05c0-52.59 85.75-79.09 128.7-79.09 23 0 58.38 7.63 86.21 22.81A176.14 176.14 0 01256 432z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/people-circle.svg b/ionic/platforms/android/app/src/main/assets/www/svg/people-circle.svg deleted file mode 100644 index 630356412d0cf94c6b4a2e280cf541faf99f5f49..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/people-circle.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>People Circle</title><path d="M258.9 48C141.92 46.42 46.42 141.92 48 258.9c1.56 112.19 92.91 203.54 205.1 205.1 117 1.6 212.48-93.9 210.88-210.88C462.44 140.91 371.09 49.56 258.9 48zm-3.68 152.11c.21-1.2.44-2.4.71-3.59a66.46 66.46 0 0116.29-31.21c12.89-13.73 31.16-21.31 51.45-21.31a74.05 74.05 0 0125.06 4.26 66.69 66.69 0 0126.27 17.2 68.15 68.15 0 0118 42.14 78.46 78.46 0 010 11.4 86.19 86.19 0 01-8.2 31q-.76 1.59-1.59 3.15c-1.11 2.07-2.3 4.1-3.58 6.06a79.47 79.47 0 01-8.63 11c-13.12 14-29.92 21.73-47.31 21.73a59.61 59.61 0 01-19.17-3.18 63.47 63.47 0 01-6.1-2.43 70.76 70.76 0 01-22.07-16.12 83.76 83.76 0 01-22-51.32q-.27-3.88-.18-7.68a75.62 75.62 0 011.05-11.08zm-149.73 24.34a59.87 59.87 0 015.2-20.64 56.76 56.76 0 012.78-5.3 54.49 54.49 0 017.19-9.56 55.62 55.62 0 0114-10.82 56.84 56.84 0 018.11-3.64 63.85 63.85 0 0133.35-2.39 57 57 0 0130.78 17 57.86 57.86 0 0115.41 38.62c.05 2.11 0 4.23-.15 6.38a71.58 71.58 0 01-6 23.84 69.49 69.49 0 01-5.73 10.42 65.39 65.39 0 01-15.76 16.57c-1.5 1.07-3.06 2.07-4.67 3.07a54.21 54.21 0 01-10 4.65 49.31 49.31 0 01-16.2 2.76c-.93 0-1.86 0-2.78-.08a47.6 47.6 0 01-5.48-.62 51.19 51.19 0 01-5.35-1.23 53.54 53.54 0 01-7.72-2.89c-.84-.39-1.66-.8-2.48-1.23-18-9.49-31.57-29.16-34.23-52.12-.12-1.05-.22-2.1-.29-3.16a66.59 66.59 0 01.02-9.63zm53.92 178.6a177.27 177.27 0 01-61.94-70.65 4 4 0 011.62-5.26C117.67 316.69 141.4 311 163.82 311c17 0 30.7 2 42.69 5.88a8 8 0 012.59 13.77c-23.35 19-38.4 42.54-45.47 70.75a2.77 2.77 0 01-4.22 1.65zM256 432a175.12 175.12 0 01-65.7-12.72 4 4 0 01-2.4-4.46c.4-2.05.84-3.92 1.23-5.48 7.12-28.43 24.76-52 51-68.18 23.29-14.35 53-22.25 83.52-22.25 31.16 0 60 7.58 83.48 21.91a2.72 2.72 0 01.91 3.67A176.1 176.1 0 01256 432z"/><path d="M161 295.28a47.6 47.6 0 01-5.48-.62 47.6 47.6 0 005.48.62zM134.64 178.13a55.62 55.62 0 00-14 10.82 54.49 54.49 0 00-7.19 9.56 54.49 54.49 0 017.19-9.56 55.62 55.62 0 0114-10.82zM216.17 257.89a71.58 71.58 0 006-23.84c.15-2.15.2-4.27.15-6.38q.08 3.15-.15 6.38a71.58 71.58 0 01-6 23.84zM134.64 178.13a56.84 56.84 0 018.11-3.64 56.84 56.84 0 00-8.11 3.64zM150.21 293.43a53.54 53.54 0 01-7.72-2.89 53.54 53.54 0 007.72 2.89zM105.78 237.19c2.66 23 16.26 42.63 34.23 52.12-18.01-9.49-31.57-29.16-34.23-52.12zM254.34 219a83.76 83.76 0 0022 51.32 70.76 70.76 0 0022.07 16.12 70.76 70.76 0 01-22.07-16.12 83.76 83.76 0 01-22-51.32q-.27-3.88-.18-7.68-.09 3.75.18 7.68zM304.5 288.82a63.47 63.47 0 01-6.1-2.43 63.47 63.47 0 006.1 2.43zM255.93 196.54a66.46 66.46 0 0116.29-31.21 66.46 66.46 0 00-16.29 31.21zM375 165.46a68.15 68.15 0 0118 42.14 68.15 68.15 0 00-18-42.14 66.69 66.69 0 00-26.27-17.2 66.69 66.69 0 0126.27 17.2zM393 219a86.19 86.19 0 01-8.2 31 86.19 86.19 0 008.2-31zM254.16 211.27a75.62 75.62 0 011.06-11.14 75.62 75.62 0 00-1.06 11.14zM383.19 253.16zM206.88 189.05a57.86 57.86 0 0115.41 38.62 57.86 57.86 0 00-15.41-38.62 57 57 0 00-30.78-17 57 57 0 0130.78 17zM190 288a54.21 54.21 0 01-10 4.65 54.21 54.21 0 0010-4.65zM105.49 224.45a59.87 59.87 0 015.2-20.64 59.87 59.87 0 00-5.2 20.64zM194.68 284.88C193.17 286 191.61 287 190 288c1.61-1 3.17-2 4.68-3.12zM216.17 257.89a69.49 69.49 0 01-5.73 10.42 69.49 69.49 0 005.73-10.42zM110.69 203.81a56.76 56.76 0 012.78-5.3 56.76 56.76 0 00-2.78 5.3zM194.68 284.88a65.39 65.39 0 0015.76-16.57 65.39 65.39 0 01-15.76 16.57z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/people-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/people-outline.svg deleted file mode 100644 index 0fc0b48d694d273bf0ff9a98c5132c7c22704908..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/people-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>People</title><path d="M402 168c-2.93 40.67-33.1 72-66 72s-63.12-31.32-66-72c-3-42.31 26.37-72 66-72s69 30.46 66 72z" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M336 304c-65.17 0-127.84 32.37-143.54 95.41-2.08 8.34 3.15 16.59 11.72 16.59h263.65c8.57 0 13.77-8.25 11.72-16.59C463.85 335.36 401.18 304 336 304z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><path d="M200 185.94c-2.34 32.48-26.72 58.06-53 58.06s-50.7-25.57-53-58.06C91.61 152.15 115.34 128 147 128s55.39 24.77 53 57.94z" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M206 306c-18.05-8.27-37.93-11.45-59-11.45-52 0-102.1 25.85-114.65 76.2-1.65 6.66 2.53 13.25 9.37 13.25H154" stroke-linecap="round" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/people-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/people-sharp.svg deleted file mode 100644 index 05325e692a2f3d1c62b26e2a61fa9605883e139d..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/people-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>People</title><circle cx="152" cy="184" r="72"/><path d="M234 296c-28.16-14.3-59.24-20-82-20-44.58 0-136 27.34-136 82v42h150v-16.07c0-19 8-38.05 22-53.93 11.17-12.68 26.81-24.45 46-34z"/><path d="M340 288c-52.07 0-156 32.16-156 96v48h312v-48c0-63.84-103.93-96-156-96z"/><circle cx="340" cy="168" r="88"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/people.svg b/ionic/platforms/android/app/src/main/assets/www/svg/people.svg deleted file mode 100644 index e17655e94eccb76e9c9135685552bc64710cace0..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/people.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>People</title><path d="M336 256c-20.56 0-40.44-9.18-56-25.84-15.13-16.25-24.37-37.92-26-61-1.74-24.62 5.77-47.26 21.14-63.76S312 80 336 80c23.83 0 45.38 9.06 60.7 25.52 15.47 16.62 23 39.22 21.26 63.63-1.67 23.11-10.9 44.77-26 61C376.44 246.82 356.57 256 336 256zm66-88zM467.83 432H204.18a27.71 27.71 0 01-22-10.67 30.22 30.22 0 01-5.26-25.79c8.42-33.81 29.28-61.85 60.32-81.08C264.79 297.4 299.86 288 336 288c36.85 0 71 9 98.71 26.05 31.11 19.13 52 47.33 60.38 81.55a30.27 30.27 0 01-5.32 25.78A27.68 27.68 0 01467.83 432zM147 260c-35.19 0-66.13-32.72-69-72.93-1.42-20.6 5-39.65 18-53.62 12.86-13.83 31-21.45 51-21.45s38 7.66 50.93 21.57c13.1 14.08 19.5 33.09 18 53.52-2.87 40.2-33.8 72.91-68.93 72.91zM212.66 291.45c-17.59-8.6-40.42-12.9-65.65-12.9-29.46 0-58.07 7.68-80.57 21.62-25.51 15.83-42.67 38.88-49.6 66.71a27.39 27.39 0 004.79 23.36A25.32 25.32 0 0041.72 400h111a8 8 0 007.87-6.57c.11-.63.25-1.26.41-1.88 8.48-34.06 28.35-62.84 57.71-83.82a8 8 0 00-.63-13.39c-1.57-.92-3.37-1.89-5.42-2.89z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/person-add-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/person-add-outline.svg deleted file mode 100644 index 87a410c99296ead8d5d9beb81de5437826167b59..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/person-add-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Person Add</title><path d="M376 144c-3.92 52.87-44 96-88 96s-84.15-43.12-88-96c-4-55 35-96 88-96s92 42 88 96z" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M288 304c-87 0-175.3 48-191.64 138.6-2 10.92 4.21 21.4 15.65 21.4H464c11.44 0 17.62-10.48 15.65-21.4C463.3 352 375 304 288 304z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-linejoin="round" d="M88 176v112M144 232H32" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/person-add-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/person-add-sharp.svg deleted file mode 100644 index f15196ff98cc291683f080a645d6ee7c73afde5c..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/person-add-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Person Add</title><path d="M106 304v-54h54v-36h-54v-54H70v54H16v36h54v54h36z"/><circle cx="288" cy="144" r="112"/><path d="M288 288c-69.42 0-208 42.88-208 128v64h416v-64c0-85.12-138.58-128-208-128z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/person-add.svg b/ionic/platforms/android/app/src/main/assets/www/svg/person-add.svg deleted file mode 100644 index 52009c53cb205df995d8f67724e2f16e9f1f017b..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/person-add.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Person Add</title><path d="M288 256c52.79 0 99.43-49.71 104-110.82 2.27-30.7-7.36-59.33-27.12-80.6C345.33 43.57 318 32 288 32c-30.24 0-57.59 11.5-77 32.38-19.63 21.11-29.2 49.8-27 80.78C188.49 206.28 235.12 256 288 256zM495.38 439.76c-8.44-46.82-34.79-86.15-76.19-113.75C382.42 301.5 335.83 288 288 288s-94.42 13.5-131.19 38c-41.4 27.6-67.75 66.93-76.19 113.75-1.93 10.73.69 21.34 7.19 29.11A30.94 30.94 0 00112 480h352a30.94 30.94 0 0024.21-11.13c6.48-7.77 9.1-18.38 7.17-29.11zM104 288v-40h40a16 16 0 000-32h-40v-40a16 16 0 00-32 0v40H32a16 16 0 000 32h40v40a16 16 0 0032 0z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/person-circle-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/person-circle-outline.svg deleted file mode 100644 index 285e7f4bc138dd64ba3a02e0f314de81d4862d3a..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/person-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Person Circle</title><path d="M258.9 48C141.92 46.42 46.42 141.92 48 258.9c1.56 112.19 92.91 203.54 205.1 205.1 117 1.6 212.48-93.9 210.88-210.88C462.44 140.91 371.09 49.56 258.9 48zm126.42 327.25a4 4 0 01-6.14-.32 124.27 124.27 0 00-32.35-29.59C321.37 329 289.11 320 256 320s-65.37 9-90.83 25.34a124.24 124.24 0 00-32.35 29.58 4 4 0 01-6.14.32A175.32 175.32 0 0180 259c-1.63-97.31 78.22-178.76 175.57-179S432 158.81 432 256a175.32 175.32 0 01-46.68 119.25z"/><path d="M256 144c-19.72 0-37.55 7.39-50.22 20.82s-19 32-17.57 51.93C191.11 256 221.52 288 256 288s64.83-32 67.79-71.24c1.48-19.74-4.8-38.14-17.68-51.82C293.39 151.44 275.59 144 256 144z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/person-circle-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/person-circle-sharp.svg deleted file mode 100644 index 35aa519ba36717d5dec0b197d569887879a878a7..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/person-circle-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Person Circle</title><path d="M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm2 96a72 72 0 11-72 72 72 72 0 0172-72zm-2 288a175.55 175.55 0 01-129.18-56.6C135.66 329.62 215.06 320 256 320s120.34 9.62 129.18 55.39A175.52 175.52 0 01256 432z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/person-circle.svg b/ionic/platforms/android/app/src/main/assets/www/svg/person-circle.svg deleted file mode 100644 index 4199c4f5eb9a8afe5c35a6a71cec3360a11646fd..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/person-circle.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Person Circle</title><path d="M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm-50.22 116.82C218.45 151.39 236.28 144 256 144s37.39 7.44 50.11 20.94c12.89 13.68 19.16 32.06 17.68 51.82C320.83 256 290.43 288 256 288s-64.89-32-67.79-71.25c-1.47-19.92 4.79-38.36 17.57-51.93zM256 432a175.49 175.49 0 01-126-53.22 122.91 122.91 0 0135.14-33.44C190.63 329 222.89 320 256 320s65.37 9 90.83 25.34A122.87 122.87 0 01382 378.78 175.45 175.45 0 01256 432z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/person-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/person-outline.svg deleted file mode 100644 index a23c07a5a79ecef71fe31001eae75caf83823f4d..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/person-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Person</title><path d="M344 144c-3.92 52.87-44 96-88 96s-84.15-43.12-88-96c-4-55 35-96 88-96s92 42 88 96z" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M256 304c-87 0-175.3 48-191.64 138.6C62.39 453.52 68.57 464 80 464h352c11.44 0 17.62-10.48 15.65-21.4C431.3 352 343 304 256 304z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/person-remove-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/person-remove-outline.svg deleted file mode 100644 index 04241bdbb1a4dd03f3f0ad3ff12b57096adbbbfc..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/person-remove-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Person Remove</title><path d="M376 144c-3.92 52.87-44 96-88 96s-84.15-43.12-88-96c-4-55 35-96 88-96s92 42 88 96z" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M288 304c-87 0-175.3 48-191.64 138.6-2 10.92 4.21 21.4 15.65 21.4H464c11.44 0 17.62-10.48 15.65-21.4C463.3 352 375 304 288 304z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-linejoin="round" d="M144 232H32" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/person-remove-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/person-remove-sharp.svg deleted file mode 100644 index b16eac418e9fef32eac8f943336b3500e979950d..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/person-remove-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Person Remove</title><path d="M16 214h144v36H16z"/><circle cx="288" cy="144" r="112"/><path d="M288 288c-69.42 0-208 42.88-208 128v64h416v-64c0-85.12-138.58-128-208-128z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/person-remove.svg b/ionic/platforms/android/app/src/main/assets/www/svg/person-remove.svg deleted file mode 100644 index c4317f771cd3c33fd4912ee9e736fb51e0e0ccd2..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/person-remove.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Person Remove</title><path d="M288 256c52.79 0 99.43-49.71 104-110.82 2.27-30.7-7.36-59.33-27.12-80.6C345.33 43.57 318 32 288 32c-30.24 0-57.59 11.5-77 32.38-19.63 21.11-29.2 49.8-27 80.78C188.49 206.28 235.12 256 288 256zM495.38 439.76c-8.44-46.82-34.79-86.15-76.19-113.75C382.42 301.5 335.83 288 288 288s-94.42 13.5-131.19 38c-41.4 27.6-67.75 66.93-76.19 113.75-1.93 10.73.69 21.34 7.19 29.11A30.94 30.94 0 00112 480h352a30.94 30.94 0 0024.21-11.13c6.48-7.77 9.1-18.38 7.17-29.11zM144 216H32a16 16 0 000 32h112a16 16 0 000-32z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/person-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/person-sharp.svg deleted file mode 100644 index 1f27174bda4291e57cbbdf4804b1139fcdb44908..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/person-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Person</title><path d="M256 256a112 112 0 10-112-112 112 112 0 00112 112zm0 32c-69.42 0-208 42.88-208 128v64h416v-64c0-85.12-138.58-128-208-128z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/person.svg b/ionic/platforms/android/app/src/main/assets/www/svg/person.svg deleted file mode 100644 index 55e35161d0db937c7214ada6faf7100a6b0e8179..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/person.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Person</title><path d="M332.64 64.58C313.18 43.57 286 32 256 32c-30.16 0-57.43 11.5-76.8 32.38-19.58 21.11-29.12 49.8-26.88 80.78C156.76 206.28 203.27 256 256 256s99.16-49.71 103.67-110.82c2.27-30.7-7.33-59.33-27.03-80.6zM432 480H80a31 31 0 01-24.2-11.13c-6.5-7.77-9.12-18.38-7.18-29.11C57.06 392.94 83.4 353.61 124.8 326c36.78-24.51 83.37-38 131.2-38s94.42 13.5 131.2 38c41.4 27.6 67.74 66.93 76.18 113.75 1.94 10.73-.68 21.34-7.18 29.11A31 31 0 01432 480z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/phone-landscape-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/phone-landscape-outline.svg deleted file mode 100644 index 4eda71d04f2d5774ac90af0bae5984c9446f3ffe..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/phone-landscape-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Phone Landscape</title><rect x="128" y="16" width="256" height="480" rx="48" ry="48" transform="rotate(-90 256 256)" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M16 336v-24a8 8 0 018-8h0a16 16 0 0016-16v-64a16 16 0 00-16-16h0a8 8 0 01-8-8v-24" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/phone-landscape-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/phone-landscape-sharp.svg deleted file mode 100644 index 9956a6da9c4af8db4868dbb90686a8849339d0bb..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/phone-landscape-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Phone Landscape</title><path d="M0 130v252a18 18 0 0018 18h476a18 18 0 0018-18V130a18 18 0 00-18-18H18a18 18 0 00-18 18zm448 234H64V148h384z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/phone-landscape.svg b/ionic/platforms/android/app/src/main/assets/www/svg/phone-landscape.svg deleted file mode 100644 index b2edef26ccbe7f9436b95b25fa155786fd130ce8..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/phone-landscape.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Phone Landscape</title><path d="M0 176v160a64 64 0 0064 64h384a64 64 0 0064-64V176a64 64 0 00-64-64H64a64 64 0 00-64 64zm448-32a32 32 0 0132 32v160a32 32 0 01-32 32H64a32 32 0 01-32-32v-11.35a7.94 7.94 0 014.75-7.3A32 32 0 0056 288v-64a32 32 0 00-19.25-29.35 7.94 7.94 0 01-4.75-7.3V176a32 32 0 0132-32z"/><path d="M48 176a11.88 11.88 0 004.69 9.53A48 48 0 0172 224v64a48 48 0 01-19.31 38.47A11.88 11.88 0 0048 336a16 16 0 0016 16h384a16 16 0 0016-16V176a16 16 0 00-16-16H64a16 16 0 00-16 16z"/><path d="M0 176v160a64 64 0 0064 64h384a64 64 0 0064-64V176a64 64 0 00-64-64H64a64 64 0 00-64 64zm448-32a32 32 0 0132 32v160a32 32 0 01-32 32H64a32 32 0 01-32-32v-11.35a7.94 7.94 0 014.75-7.3A32 32 0 0056 288v-64a32 32 0 00-19.25-29.35 7.94 7.94 0 01-4.75-7.3V176a32 32 0 0132-32z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/phone-portrait-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/phone-portrait-outline.svg deleted file mode 100644 index 318959d8e7b68437ccf3601d7696b59f4c41ff9e..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/phone-portrait-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Phone Portrait</title><rect x="128" y="16" width="256" height="480" rx="48" ry="48" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M176 16h24a8 8 0 018 8h0a16 16 0 0016 16h64a16 16 0 0016-16h0a8 8 0 018-8h24" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/phone-portrait-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/phone-portrait-sharp.svg deleted file mode 100644 index c6f99c5a28eda94e1875794a0b41ffd4e7028d35..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/phone-portrait-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Phone Portrait</title><path d="M382 0H130a18 18 0 00-18 18v476a18 18 0 0018 18h252a18 18 0 0018-18V18a18 18 0 00-18-18zM148 448V64h216v384z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/phone-portrait.svg b/ionic/platforms/android/app/src/main/assets/www/svg/phone-portrait.svg deleted file mode 100644 index 56c5701a3eabe8572e9960928b5f0aa7a4ff0af5..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/phone-portrait.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Phone Portrait</title><path d="M336 0H176a64 64 0 00-64 64v384a64 64 0 0064 64h160a64 64 0 0064-64V64a64 64 0 00-64-64zm32 448a32 32 0 01-32 32H176a32 32 0 01-32-32V64a32 32 0 0132-32h11.35a7.94 7.94 0 017.3 4.75A32 32 0 00224 56h64a32 32 0 0029.35-19.25 7.94 7.94 0 017.3-4.75H336a32 32 0 0132 32z"/><path d="M336 48a11.88 11.88 0 00-9.53 4.69A48 48 0 01288 72h-64a48 48 0 01-38.47-19.31A11.88 11.88 0 00176 48a16 16 0 00-16 16v384a16 16 0 0016 16h160a16 16 0 0016-16V64a16 16 0 00-16-16z"/><path d="M336 0H176a64 64 0 00-64 64v384a64 64 0 0064 64h160a64 64 0 0064-64V64a64 64 0 00-64-64zm32 448a32 32 0 01-32 32H176a32 32 0 01-32-32V64a32 32 0 0132-32h11.35a7.94 7.94 0 017.3 4.75A32 32 0 00224 56h64a32 32 0 0029.35-19.25 7.94 7.94 0 017.3-4.75H336a32 32 0 0132 32z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/pie-chart-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/pie-chart-outline.svg deleted file mode 100644 index 8329163efa427adf006d0103dde227fbad83cb0b..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/pie-chart-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Pie Chart</title><path d="M256.05 80.65Q263.94 80 272 80c106 0 192 86 192 192s-86 192-192 192A192.09 192.09 0 0189.12 330.65" stroke-linecap="round" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><path d="M256 48C141.12 48 48 141.12 48 256a207.29 207.29 0 0018.09 85L256 256z" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/pie-chart-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/pie-chart-sharp.svg deleted file mode 100644 index 330ab25f3cf41e20cd85a2ffc85ae1c07a5a37fa..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/pie-chart-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Pie Chart</title><path d="M58 362.09l-6.51-14.59A224 224 0 01256 32h16v234.37z"/><path d="M304 66.46v220.65L94.62 380.78A208.31 208.31 0 00272 480c114.69 0 208-93.31 208-208 0-103.81-76.45-190.1-176-205.54z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/pie-chart.svg b/ionic/platforms/android/app/src/main/assets/www/svg/pie-chart.svg deleted file mode 100644 index 3f98a4221491239bba5ca835ef1f890ba8658e76..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/pie-chart.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Pie Chart</title><path d="M66.1 357a16 16 0 01-14.61-9.46A224 224 0 01256 32a16 16 0 0116 16v208a16 16 0 01-9.47 14.61l-189.9 84.95A15.93 15.93 0 0166.1 357z"/><path d="M313.59 68.18A8 8 0 00304 76v180a48.07 48.07 0 01-28.4 43.82L103.13 377a8 8 0 00-3.35 11.81 208.42 208.42 0 0048.46 50.41A206.32 206.32 0 00272 480c114.69 0 208-93.31 208-208 0-100.45-71.58-184.5-166.41-203.82z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/pin-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/pin-outline.svg deleted file mode 100644 index 695bfcd53a14bc2cf38fb5b9c5c97c1e05f07006..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/pin-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Pin</title><circle cx="256" cy="96" r="64" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M272 164a9 9 0 00-9-9h-14a9 9 0 00-9 9v293.56a32.09 32.09 0 002.49 12.38l10.07 24a3.92 3.92 0 006.88 0l10.07-24a32.09 32.09 0 002.49-12.38z"/><circle cx="280" cy="72" r="24"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/pin-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/pin-sharp.svg deleted file mode 100644 index 010e2cae729447c117c5d4a076180197fe9d1af1..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/pin-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Pin</title><path d="M339 99a83 83 0 10-102 80.8V464l19 32 19-32V179.8A83.28 83.28 0 00339 99zm-59-6a21 21 0 1121-21 21 21 0 01-21 21z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/pin.svg b/ionic/platforms/android/app/src/main/assets/www/svg/pin.svg deleted file mode 100644 index 7b4e15f742165b5e27c38ebd1e67ad6cdbae81ee..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/pin.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Pin</title><path d="M336 96a80 80 0 10-96 78.39v283.17a32.09 32.09 0 002.49 12.38l10.07 24a3.92 3.92 0 006.88 0l10.07-24a32.09 32.09 0 002.49-12.38V174.39A80.13 80.13 0 00336 96zm-56 0a24 24 0 1124-24 24 24 0 01-24 24z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/pint-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/pint-outline.svg deleted file mode 100644 index d70be327f831269c0e89a4416736295831839b8c..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/pint-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Pint</title><path d="M132.43 162c-6.24-34-4.49-45.55-3.07-68.39L132.27 47a16 16 0 0115.94-15h215.57a16 16 0 0115.94 15l2.91 46.61c1.43 22.86 3.19 34.39-3.06 68.45-5.93 32.29-43.71 133.27-43.71 238.32V472a8 8 0 01-8 8H184.12a8 8 0 01-8-8v-71.63c.01-92.47-37.46-204.3-43.69-238.37zM135.21 96h241.58" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/pint-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/pint-sharp.svg deleted file mode 100644 index 26ab797416a88453c991ba514cd3e75448febea4..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/pint-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Pint</title><path d="M399 99.29L394 16H118.45L113 99.26c-1.29 19.24-2.23 33.14 3.73 65.66 1.67 9.11 5.22 22.66 9.73 39.82 12.61 48 33.71 128.36 33.71 195.63V496h191.68v-95.62c0-77.09 21.31-153.29 34-198.81 4.38-15.63 7.83-28 9.41-36.62 6.01-32.51 5.07-46.42 3.74-65.66zM146.23 80l2-32h215.52l2 32z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/pint.svg b/ionic/platforms/android/app/src/main/assets/www/svg/pint.svg deleted file mode 100644 index 1210f659a376cac9eb99e9c3ca3a2f492775bf96..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/pint.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Pint</title><path d="M399 99.29c-.15-2.13-.3-4.35-.44-6.68L395.69 46a32 32 0 00-31.91-30H148.21a32 32 0 00-31.91 30l-2.91 46.63c-.14 2.31-.29 4.51-.43 6.62-1.29 19.24-2.23 33.14 3.73 65.66 1.67 9.11 5.22 22.66 9.73 39.82 12.61 48 33.71 128.36 33.71 195.63V472a24 24 0 0024 24h143.74a24 24 0 0024-24v-71.62c0-77.09 21.31-153.29 34-198.81 4.38-15.63 7.83-28 9.41-36.62 5.99-32.51 5.05-46.42 3.72-65.66zm-35-47.54l1.5 24a4 4 0 01-4 4.25h-211a4 4 0 01-4-4.25l1.48-24A4 4 0 01152 48h208a4 4 0 014 3.75z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/pizza-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/pizza-outline.svg deleted file mode 100644 index 7b6d9cbce9ff5179be3632a31221688253238546..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/pizza-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Pizza</title><path d="M404.76 123.08C358.37 104.18 309.69 96 256 96s-106.1 9-148.9 26.68c-8.08 3.3-15.26 9-10.07 19.5C101.24 150.71 203 375 241.66 455a15.94 15.94 0 0028.72 0l144.05-312.22c3.19-6.9.9-15.4-9.67-19.7z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><path d="M436.38 82.68C384.31 62.08 320.17 48 256 48S128.65 60.78 75.48 82.08C70.79 84 62 88.43 64.41 95.88L74.09 120c4 8.2 8.67 8.2 15.06 8.2 1.79 0 4.29-1 7.28-2.18A442.46 442.46 0 01256 96c56.76 0 114.91 12 159.6 30 3.59 1.4 5.59 2.18 7.28 2.18 6.58 0 10.38 2.19 15-8.1L447.65 96c2.01-6-4.99-10.82-11.27-13.32z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="192" cy="192" r="32"/><circle cx="320" cy="208" r="32"/><circle cx="256" cy="320" r="32"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/pizza-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/pizza-sharp.svg deleted file mode 100644 index c77087c6a4f4087b125374e1edd675fc571220a2..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/pizza-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Pizza</title><path d="M442.3 67.82C383.92 44.72 317.78 32 256 32c-63.57 0-129.8 12.51-186.56 35.25C49.18 75.48 42 80 42 80l22 44 37.53-16.14C147.58 89.53 199.19 80 256.51 80c57.49 0 108.09 9.23 154.75 28.25L448 124l22-44s-7-4-27.7-12.18z"/><ellipse cx="320.48" cy="207.99" rx="31.97" ry="32.03" transform="rotate(-44.98 320.503 207.996)" class="ionicon-fill-none"/><ellipse cx="192.48" cy="191.99" rx="31.97" ry="32.03" transform="rotate(-44.98 192.49 191.992)" class="ionicon-fill-none"/><ellipse cx="256.48" cy="319.99" rx="31.97" ry="32.03" transform="rotate(-44.98 256.505 320)" class="ionicon-fill-none"/><path d="M409.66 140.85C364.15 122.52 308.16 112 256 112a425 425 0 00-153.7 28.9c-.25.1-9.24 4.23-19 8.71 7.46 16.22 18 39.16 22.2 48.33L256 480l173.74-330.84-19.92-8.24zm-185.25 53.22a32 32 0 11-34-34 32.12 32.12 0 0134 34zm64 128a32 32 0 11-34-34 32.12 32.12 0 0134 34zm64-112a32 32 0 11-34-34 32.12 32.12 0 0134 34z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/pizza.svg b/ionic/platforms/android/app/src/main/assets/www/svg/pizza.svg deleted file mode 100644 index bdfa6aaaff6faf529c98f26e998af09c3cdedae4..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/pizza.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Pizza</title><path d="M441.82 67.83C383.44 44.73 317.3 32 255.56 32 192 32 125.76 44.53 69 67.26 48.7 75.49 45.21 90 48.71 100.82L52.78 111a16 16 0 0021.31 8.69c10.8-4.76 23.93-10.54 27-11.78C145.1 89.64 198.71 80 256 80c57.47 0 108.09 9.24 154.76 28.25 4.42 1.8 14.88 6.42 26.17 11.46a16 16 0 0021.35-8.59L462 102l.34-.9c3.45-10.21.14-25.05-20.52-33.27z"/><path d="M409.18 140.86C363.67 122.53 307.68 112 255.56 112a425 425 0 00-153.74 28.89c-.53.21-2.06.88-4.29 1.88a16 16 0 00-8 21.27c4 8.71 9.42 20.58 15.5 33.89C137.94 270 199.21 404 227.26 462A31.74 31.74 0 00256 480a31.73 31.73 0 0028.76-18.06l.06-.13 137.3-297.57a15.94 15.94 0 00-8.31-21.45c-2.26-.95-3.85-1.61-4.5-1.87zm-215.1 83.07a32 32 0 1129.85-29.85 32 32 0 01-29.85 29.85zm64 128a32 32 0 1129.85-29.85 32 32 0 01-29.85 29.85zm64-112a32 32 0 1129.85-29.85 32 32 0 01-29.85 29.85z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/planet-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/planet-outline.svg deleted file mode 100644 index d616ab56ad53d5d742d0c6d5a38e729684956a36..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/planet-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Planet</title><path d="M413.48 284.46c58.87 47.24 91.61 89 80.31 108.55-17.85 30.85-138.78-5.48-270.1-81.15S.37 149.84 18.21 119c11.16-19.28 62.58-12.32 131.64 14.09" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="256" cy="256" r="160" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/planet-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/planet-sharp.svg deleted file mode 100644 index 8156b0b77c31e4c927973ee14fb9a1155c9dc3ce..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/planet-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Planet</title><path d="M81 274.71C90.36 363 165.26 432 256 432a174.91 174.91 0 0071.49-15.19c-40.3-16.53-84.05-38.17-127.77-63.36C157 328.86 115.84 301.5 81 274.71zM492.72 339.51c-8.5-11.31-20-23.8-34-37a205.25 205.25 0 01-11 34c28.72 29.5 33.2 45.34 32.17 48.45-2 2.23-17.05 6.89-58.15-3.53q-8.83-2.24-19.32-5.46-6.76-2.08-13.79-4.49a176.76 176.76 0 0019.54-27.25c.17-.29.35-.58.52-.88A175.39 175.39 0 00432 256a178.87 178.87 0 00-1-19c-9.57-88.17-84.4-157-175-157a175.37 175.37 0 00-106.4 35.89 177.4 177.4 0 00-45.83 51.84c-.16.29-.34.58-.51.87a175.48 175.48 0 00-13.83 30.52q-5.59-4.87-10.79-9.67c-5.39-5-10.17-9.63-14.42-14-29.57-30.26-33.09-45.61-32.16-48.45 2.16-2.43 18.1-6.54 58.13 3.55a209.88 209.88 0 0124-26.56c-18.86-5.61-35.79-9.35-50.05-11C33.41 89.47 13.3 95.52 4.35 111c-3.24 5.58-6.35 15.09-2.72 28.6C7 159.66 26.14 184 53.23 209.5c8.63 8.13 18.06 16.37 28.12 24.64 7.32 6 15 12.06 22.9 18.08q7.91 6 16.15 12T137.1 276c25.41 17.61 52.26 34.52 78.59 49.69q14.34 8.26 28.64 16t28.37 14.81c21.9 11 43.35 20.92 63.86 29.43q13.19 5.48 25.81 10.16c11.89 4.42 23.37 8.31 34.31 11.59l1.1.33c25.73 7.66 47.42 11.69 64.48 12H464c21.64 0 36.3-6.38 43.58-19 9.09-15.62 4.08-36.32-14.86-61.5z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/planet.svg b/ionic/platforms/android/app/src/main/assets/www/svg/planet.svg deleted file mode 100644 index efb523946c4076960b4db236a22d79a46e00d7ea..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/planet.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Planet</title><path d="M96.85 286.62a8 8 0 00-12.53 8.25C102.07 373.28 172.3 432 256 432a175.31 175.31 0 0052.41-8 8 8 0 00.79-15 1120 1120 0 01-109.48-55.61 1126.24 1126.24 0 01-102.87-66.77zM492.72 339.51c-4.19-5.58-9.11-11.44-14.7-17.53a15.83 15.83 0 00-26.56 5.13c0 .16-.11.31-.17.47a15.75 15.75 0 003.15 16.06c22.74 25 26.42 38.51 25.48 41.36-2 2.23-17.05 6.89-58.15-3.53q-8.83-2.24-19.32-5.46-6.76-2.08-13.79-4.49a176.76 176.76 0 0019.54-27.25c.17-.29.35-.58.52-.88A175.39 175.39 0 00432 256a178.87 178.87 0 00-1-19c-9.57-88.17-84.4-157-175-157a175.37 175.37 0 00-106.4 35.89 177.4 177.4 0 00-45.83 51.84c-.16.29-.34.58-.51.87a175.48 175.48 0 00-13.83 30.52q-5.59-4.87-10.79-9.67c-5.39-5-10.17-9.63-14.42-14-29.57-30.26-33.09-45.61-32.16-48.45 2-2.23 15.54-5.87 48.62 1.31A15.82 15.82 0 0096.22 123l.36-.44a15.74 15.74 0 00-8.67-25.43A237.38 237.38 0 0064.13 93c-30.72-3.53-50.83 2.52-59.78 18-3.24 5.58-6.35 15.09-2.72 28.6C7 159.66 26.14 184 53.23 209.5c8.63 8.13 18.06 16.37 28.12 24.64 7.32 6 15 12.06 22.9 18.08q7.91 6 16.15 12T137.1 276c25.41 17.61 52.26 34.52 78.59 49.69q14.34 8.26 28.64 16t28.37 14.81c21.9 11 43.35 20.92 63.86 29.43q13.19 5.48 25.81 10.16c11.89 4.42 23.37 8.31 34.31 11.59l1.1.33c25.73 7.66 47.42 11.69 64.48 12H464c21.64 0 36.3-6.38 43.58-19 9.09-15.62 4.08-36.32-14.86-61.5z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/play-back-circle-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/play-back-circle-outline.svg deleted file mode 100644 index af61db5ead22dcda01c9de09fa3d9cc4f852f54c..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/play-back-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Play Back Circle</title><path d="M256 448c106 0 192-86 192-192S362 64 256 64 64 150 64 256s86 192 192 192z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><path d="M117.23 246.7l114.45-69.14a10.78 10.78 0 0116.32 9.31v53.32l103.68-62.63a10.78 10.78 0 0116.32 9.31v138.26a10.78 10.78 0 01-16.32 9.31L248 271.81v53.32a10.78 10.78 0 01-16.32 9.31L117.23 265.3a10.89 10.89 0 010-18.6z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/play-back-circle-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/play-back-circle-sharp.svg deleted file mode 100644 index d50133efab68a335c90e2eb01be425be885945ff..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/play-back-circle-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Play Back Circle</title><path d="M48 256c0 114.69 93.31 208 208 208s208-93.31 208-208S370.69 48 256 48 48 141.31 48 256zm63.47 0L248 168v72.16l120-72.48v176.45l-120-72.32v71.44z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/play-back-circle.svg b/ionic/platforms/android/app/src/main/assets/www/svg/play-back-circle.svg deleted file mode 100644 index 2566d5911cbfeb59147a2c6f6832a2921a825008..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/play-back-circle.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Play Back Circle</title><path d="M48 256c0 114.69 93.31 208 208 208s208-93.31 208-208S370.69 48 256 48 48 141.31 48 256zm69.23-9.3l114.45-69.14a10.78 10.78 0 0116.32 9.31v53.32l103.68-62.63a10.78 10.78 0 0116.32 9.31v138.26a10.78 10.78 0 01-16.32 9.31L248 271.81v53.32a10.78 10.78 0 01-16.32 9.31L117.23 265.3a10.89 10.89 0 010-18.6z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/play-back-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/play-back-outline.svg deleted file mode 100644 index 4d6c752d03b2d3e4951f094c90c49770e26d2f48..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/play-back-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Play Back</title><path d="M480 145.52v221c0 13.28-13 21.72-23.63 15.35L267.5 268.8c-9.24-5.53-9.24-20.07 0-25.6l188.87-113C467 123.8 480 132.24 480 145.52zM251.43 145.52v221c0 13.28-13 21.72-23.63 15.35L38.93 268.8c-9.24-5.53-9.24-20.07 0-25.6l188.87-113c10.64-6.4 23.63 2.04 23.63 15.32z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/play-back-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/play-back-sharp.svg deleted file mode 100644 index bddf00b57d97a334e894f019516986850b04af42..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/play-back-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Play Back</title><path d="M496 400L256 256l240-144v288zM256 400L16 256l240-144v288z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/play-back.svg b/ionic/platforms/android/app/src/main/assets/www/svg/play-back.svg deleted file mode 100644 index d6d79e278558d28ee1cd98c95155b0f8e539c83a..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/play-back.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Play Back</title><path d="M30.71 229.47l188.87-113a30.54 30.54 0 0131.09-.39 33.74 33.74 0 0116.76 29.47v79.05l180.72-108.16a30.54 30.54 0 0131.09-.39A33.74 33.74 0 01496 145.52v221A33.73 33.73 0 01479.24 396a30.54 30.54 0 01-31.09-.39L267.43 287.4v79.08A33.73 33.73 0 01250.67 396a30.54 30.54 0 01-31.09-.39l-188.87-113a31.27 31.27 0 010-53z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/play-circle-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/play-circle-outline.svg deleted file mode 100644 index 2e35db92f0b0cca22e1edac844a940346232aa3f..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/play-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Play Circle</title><path d="M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><path d="M216.32 334.44l114.45-69.14a10.89 10.89 0 000-18.6l-114.45-69.14a10.78 10.78 0 00-16.32 9.31v138.26a10.78 10.78 0 0016.32 9.31z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/play-circle-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/play-circle-sharp.svg deleted file mode 100644 index 1228a2ba27c5a219b25336d62f39bc2d8613e666..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/play-circle-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Play Circle</title><path d="M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm-56 296V168l144 88z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/play-circle.svg b/ionic/platforms/android/app/src/main/assets/www/svg/play-circle.svg deleted file mode 100644 index fdd0e6df9f3818aeb4fbd5655b9aa46c629eb005..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/play-circle.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Play Circle</title><path d="M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm74.77 217.3l-114.45 69.14a10.78 10.78 0 01-16.32-9.31V186.87a10.78 10.78 0 0116.32-9.31l114.45 69.14a10.89 10.89 0 010 18.6z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/play-forward-circle-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/play-forward-circle-outline.svg deleted file mode 100644 index 1d60312d59e02ee9ad32fe4020e0413eb3220f66..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/play-forward-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Play Forward Circle</title><path d="M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><path d="M394.77 246.7l-114.45-69.14a10.78 10.78 0 00-16.32 9.31v53.32l-103.68-62.63a10.78 10.78 0 00-16.32 9.31v138.26a10.78 10.78 0 0016.32 9.31L264 271.81v53.32a10.78 10.78 0 0016.32 9.31l114.45-69.14a10.89 10.89 0 000-18.6z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/play-forward-circle-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/play-forward-circle-sharp.svg deleted file mode 100644 index e1d2bf5724d588ab4509d7f0f25009b5f471e23b..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/play-forward-circle-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Play Forward Circle</title><path d="M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm8 295.25v-71.44l-120 72.32V167.71l120 72.48V168l136.53 88z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/play-forward-circle.svg b/ionic/platforms/android/app/src/main/assets/www/svg/play-forward-circle.svg deleted file mode 100644 index e5df51e587f1320a5816cad6c73d40f1213ad716..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/play-forward-circle.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Play Forward Circle</title><path d="M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm138.77 217.3l-114.45 69.14a10.78 10.78 0 01-16.32-9.31v-53.32l-103.68 62.63a10.78 10.78 0 01-16.32-9.31V186.87a10.78 10.78 0 0116.32-9.31L264 240.19v-53.32a10.78 10.78 0 0116.32-9.31l114.45 69.14a10.89 10.89 0 010 18.6z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/play-forward-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/play-forward-outline.svg deleted file mode 100644 index 25b2a2f64587b2effcb0a5751a6f86c39f15dc3b..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/play-forward-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Play Forward</title><path d="M32 145.52v221c0 13.28 13 21.72 23.63 15.35l188.87-113c9.24-5.53 9.24-20.07 0-25.6l-188.87-113C45 123.8 32 132.24 32 145.52zM260.57 145.52v221c0 13.28 13 21.72 23.63 15.35l188.87-113c9.24-5.53 9.24-20.07 0-25.6l-188.87-113c-10.64-6.47-23.63 1.97-23.63 15.25z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/play-forward-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/play-forward-sharp.svg deleted file mode 100644 index 4aa77962fb97b546e661aef8c65c3e9c3584c513..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/play-forward-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Play Forward</title><path d="M16 400l240-144L16 112v288zM256 400l240-144-240-144v288z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/play-forward.svg b/ionic/platforms/android/app/src/main/assets/www/svg/play-forward.svg deleted file mode 100644 index bc0ba31ed5a404e3e7f9fa53d51abce62055b7f8..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/play-forward.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Play Forward</title><path d="M481.29 229.47l-188.87-113a30.54 30.54 0 00-31.09-.39 33.74 33.74 0 00-16.76 29.47v79.05L63.85 116.44a30.54 30.54 0 00-31.09-.39A33.74 33.74 0 0016 145.52v221A33.74 33.74 0 0032.76 396a30.54 30.54 0 0031.09-.39L244.57 287.4v79.08A33.74 33.74 0 00261.33 396a30.54 30.54 0 0031.09-.39l188.87-113a31.27 31.27 0 000-53z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/play-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/play-outline.svg deleted file mode 100644 index ea6016bc56debb801dbe9d8a13df1cd150ae8de4..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/play-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Play</title><path d="M112 111v290c0 17.44 17 28.52 31 20.16l247.9-148.37c12.12-7.25 12.12-26.33 0-33.58L143 90.84c-14-8.36-31 2.72-31 20.16z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/play-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/play-sharp.svg deleted file mode 100644 index 72978d4cd7ec86641a1ae80eae4a77f1ef736a28..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/play-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Play</title><path d="M96 448l320-192L96 64v384z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/play-skip-back-circle-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/play-skip-back-circle-outline.svg deleted file mode 100644 index 0ad6a658b3d5664e64f44f64dd811d817abfc3ce..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/play-skip-back-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Play Skip Back Circle</title><path d="M256 448c106 0 192-86 192-192S362 64 256 64 64 150 64 256s86 192 192 192z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><path d="M192 176a16 16 0 0116 16v53l111.68-67.46a10.78 10.78 0 0116.32 9.33v138.26a10.78 10.78 0 01-16.32 9.31L208 267v53a16 16 0 01-32 0V192a16 16 0 0116-16z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/play-skip-back-circle-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/play-skip-back-circle-sharp.svg deleted file mode 100644 index 57a878a01ebc9810a2cb7b28309fe3b17035daa7..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/play-skip-back-circle-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Play Skip Back Circle</title><path d="M48 256c0 114.69 93.31 208 208 208s208-93.31 208-208S370.69 48 256 48 48 141.31 48 256zm128-80h32v69l128-77.53v176.9L208 267v69h-32z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/play-skip-back-circle.svg b/ionic/platforms/android/app/src/main/assets/www/svg/play-skip-back-circle.svg deleted file mode 100644 index d75f431c707cadb2862a6929897a609b6ba3339b..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/play-skip-back-circle.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Play Skip Back Circle</title><path d="M48 256c0 114.69 93.31 208 208 208s208-93.31 208-208S370.69 48 256 48 48 141.31 48 256zm128-64a16 16 0 0132 0v53l111.68-67.46a10.78 10.78 0 0116.32 9.33v138.26a10.78 10.78 0 01-16.32 9.31L208 267v53a16 16 0 01-32 0z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/play-skip-back-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/play-skip-back-outline.svg deleted file mode 100644 index 8a84f90fe59fdf7fc940d325fd6875f389287040..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/play-skip-back-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Play Skip Back</title><path d="M400 111v290c0 17.44-17 28.52-31 20.16L121.09 272.79c-12.12-7.25-12.12-26.33 0-33.58L369 90.84c14-8.36 31 2.72 31 20.16z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-miterlimit="10" d="M112 80v352" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/play-skip-back-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/play-skip-back-sharp.svg deleted file mode 100644 index d3533796bb866a75f13e7b3a3c546568ff354d9d..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/play-skip-back-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Play Skip Back</title><path d="M143.47 64v163.52L416 64v384L143.47 284.48V448H96V64h47.47z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/play-skip-back.svg b/ionic/platforms/android/app/src/main/assets/www/svg/play-skip-back.svg deleted file mode 100644 index 752f7b3ccf1d488d7ef4f38942bd0793c1a0897c..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/play-skip-back.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Play Skip Back</title><path d="M112 64a16 16 0 0116 16v136.43L360.77 77.11a35.13 35.13 0 0135.77-.44c12 6.8 19.46 20 19.46 34.33v290c0 14.37-7.46 27.53-19.46 34.33a35.14 35.14 0 01-35.77-.45L128 295.57V432a16 16 0 01-32 0V80a16 16 0 0116-16z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/play-skip-forward-circle-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/play-skip-forward-circle-outline.svg deleted file mode 100644 index f0f02075f4195a32f564961ea88273677af1a15d..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/play-skip-forward-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Play Skip Forward Circle</title><path d="M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><path d="M320 176a16 16 0 00-16 16v53l-111.68-67.44a10.78 10.78 0 00-16.32 9.31v138.26a10.78 10.78 0 0016.32 9.31L304 267v53a16 16 0 0032 0V192a16 16 0 00-16-16z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/play-skip-forward-circle-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/play-skip-forward-circle-sharp.svg deleted file mode 100644 index 575ec6264c7d4483b34f3b75c14bf51dba0eedcc..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/play-skip-forward-circle-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Play Skip Forward Circle</title><path d="M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm80 288h-32v-69l-128 77.37V167.49L304 245v-69h32z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/play-skip-forward-circle.svg b/ionic/platforms/android/app/src/main/assets/www/svg/play-skip-forward-circle.svg deleted file mode 100644 index 2afe78d431954eba97e31b8416e1cc20729deb1e..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/play-skip-forward-circle.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Play Skip Forward Circle</title><path d="M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm80 272a16 16 0 01-32 0v-53l-111.68 67.44a10.78 10.78 0 01-16.32-9.31V186.87a10.78 10.78 0 0116.32-9.31L304 245v-53a16 16 0 0132 0z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/play-skip-forward-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/play-skip-forward-outline.svg deleted file mode 100644 index c988469cb687b70793170db684635408d4bdb8cd..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/play-skip-forward-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Play Skip Forward</title><path d="M112 111v290c0 17.44 17 28.52 31 20.16l247.9-148.37c12.12-7.25 12.12-26.33 0-33.58L143 90.84c-14-8.36-31 2.72-31 20.16z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-miterlimit="10" d="M400 80v352" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/play-skip-forward-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/play-skip-forward-sharp.svg deleted file mode 100644 index ebcc9e4d83847e53498f07b0c2378ce580759182..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/play-skip-forward-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Play Skip Forward</title><path d="M368.53 64v163.52L96 64v384l272.53-163.52V448H416V64h-47.47z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/play-skip-forward.svg b/ionic/platforms/android/app/src/main/assets/www/svg/play-skip-forward.svg deleted file mode 100644 index f1a83650f8556794d25a337fb48cb1ccc4e82c5f..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/play-skip-forward.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Play Skip Forward</title><path d="M400 64a16 16 0 00-16 16v136.43L151.23 77.11a35.13 35.13 0 00-35.77-.44C103.46 83.47 96 96.63 96 111v290c0 14.37 7.46 27.53 19.46 34.33a35.14 35.14 0 0035.77-.45L384 295.57V432a16 16 0 0032 0V80a16 16 0 00-16-16z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/play.svg b/ionic/platforms/android/app/src/main/assets/www/svg/play.svg deleted file mode 100644 index 7fbf90852cc0a6c896800c739a183a8acac68245..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/play.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Play</title><path d="M133 440a35.37 35.37 0 01-17.5-4.67c-12-6.8-19.46-20-19.46-34.33V111c0-14.37 7.46-27.53 19.46-34.33a35.13 35.13 0 0135.77.45l247.85 148.36a36 36 0 010 61l-247.89 148.4A35.5 35.5 0 01133 440z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/podium-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/podium-outline.svg deleted file mode 100644 index 80bf6a32fa1c5f1b65fe05020ade16c8208789a1..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/podium-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Podium</title><path d="M32 160v296a8 8 0 008 8h136V160a16 16 0 00-16-16H48a16 16 0 00-16 16zM320 48H192a16 16 0 00-16 16v400h160V64a16 16 0 00-16-16zM464 208H352a16 16 0 00-16 16v240h136a8 8 0 008-8V224a16 16 0 00-16-16z" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/podium-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/podium-sharp.svg deleted file mode 100644 index d6c108eba4963be74f8814a71315033d2cd173de..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/podium-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Podium</title><path d="M160 32h192v448H160zM384 192h112v288H384zM16 128h112v352H16z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/podium.svg b/ionic/platforms/android/app/src/main/assets/www/svg/podium.svg deleted file mode 100644 index 2132f5f4a82d876b05d04ad721e546cda29b61b0..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/podium.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Podium</title><path d="M320 32H192a32 32 0 00-32 32v412a4 4 0 004 4h184a4 4 0 004-4V64a32 32 0 00-32-32zM464 192h-72a8 8 0 00-8 8v272a8 8 0 008 8h80a24 24 0 0024-24V224a32 32 0 00-32-32zM48 128a32 32 0 00-32 32v296a24 24 0 0024 24h80a8 8 0 008-8V136a8 8 0 00-8-8z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/power-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/power-outline.svg deleted file mode 100644 index 020a95728f05d2e135e0bc34fa5fe7a474219471..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/power-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Power</title><path d="M378 108a191.41 191.41 0 0170 148c0 106-86 192-192 192S64 362 64 256a192 192 0 0169-148M256 64v192" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/power-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/power-sharp.svg deleted file mode 100644 index 58fdf1b3911f2b06681678318dad8273710b5926..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/power-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Power</title><path d="M256 464c-114.69 0-208-93.23-208-207.82a207.44 207.44 0 0174.76-160.13l16.9-14 28.17 33.72-16.9 14A163.72 163.72 0 0092 256.18c0 90.39 73.57 163.93 164 163.93s164-73.54 164-163.93a163.38 163.38 0 00-59.83-126.36l-17-14 28-33.82 17 14A207.13 207.13 0 01464 256.18C464 370.77 370.69 464 256 464z"/><path d="M234 48h44v224h-44z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/power.svg b/ionic/platforms/android/app/src/main/assets/www/svg/power.svg deleted file mode 100644 index e6680a20a98cfe9fa6d83f4c83a4c2ef9fecb78b..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/power.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Power</title><path d="M256 464c-114.69 0-208-93.47-208-208.35 0-62.45 27.25-121 74.76-160.55a22 22 0 1128.17 33.8C113.48 160.1 92 206.3 92 255.65 92 346.27 165.57 420 256 420s164-73.73 164-164.35A164 164 0 00360.17 129a22 22 0 1128-33.92A207.88 207.88 0 01464 255.65C464 370.53 370.69 464 256 464z"/><path d="M256 272a22 22 0 01-22-22V70a22 22 0 0144 0v180a22 22 0 01-22 22z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/pricetag-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/pricetag-outline.svg deleted file mode 100644 index d77f6e5019dce8f98748643e6c7d2cf4293831f3..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/pricetag-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Pricetag</title><path d="M435.25 48h-122.9a14.46 14.46 0 00-10.2 4.2L56.45 297.9a28.85 28.85 0 000 40.7l117 117a28.85 28.85 0 0040.7 0L459.75 210a14.46 14.46 0 004.2-10.2v-123a28.66 28.66 0 00-28.7-28.8z" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M384 160a32 32 0 1132-32 32 32 0 01-32 32z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/pricetag-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/pricetag-sharp.svg deleted file mode 100644 index be1d6e2eba63ce4f31de4389f2035d7672b9d837..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/pricetag-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Pricetag</title><path d="M304 32L16 320l176 176 288-288V32zm80 128a32 32 0 1132-32 32 32 0 01-32 32z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/pricetag.svg b/ionic/platforms/android/app/src/main/assets/www/svg/pricetag.svg deleted file mode 100644 index 24625475b1a7e6368c46bc5e80e76d73f49b8376..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/pricetag.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Pricetag</title><path d="M467 45.2A44.45 44.45 0 00435.29 32H312.36a30.63 30.63 0 00-21.52 8.89L45.09 286.59a44.82 44.82 0 000 63.32l117 117a44.83 44.83 0 0063.34 0l245.65-245.6A30.6 30.6 0 00480 199.8v-123a44.24 44.24 0 00-13-31.6zM384 160a32 32 0 1132-32 32 32 0 01-32 32z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/pricetags-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/pricetags-outline.svg deleted file mode 100644 index a706930cde48ddbcfa5ccbaa3586af4d6e590a1c..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/pricetags-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Pricetags</title><path d="M403.29 32H280.36a14.46 14.46 0 00-10.2 4.2L24.4 281.9a28.85 28.85 0 000 40.7l117 117a28.86 28.86 0 0040.71 0L427.8 194a14.46 14.46 0 004.2-10.2v-123A28.66 28.66 0 00403.29 32z" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M352 144a32 32 0 1132-32 32 32 0 01-32 32z"/><path d="M230 480l262-262a13.81 13.81 0 004-10V80" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/pricetags-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/pricetags-sharp.svg deleted file mode 100644 index 6404ca1e3597eedc55a1ceb402cff0bc8ccea444..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/pricetags-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Pricetags</title><path d="M288 16L0 304l176 176 288-288V16zm80 128a32 32 0 1132-32 32 32 0 01-32 32z"/><path d="M480 64v144L216.9 471.1 242 496l270-272V64h-32z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/pricetags.svg b/ionic/platforms/android/app/src/main/assets/www/svg/pricetags.svg deleted file mode 100644 index e4044ea62898689d84388dee189148424ec6f3de..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/pricetags.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Pricetags</title><path d="M448 183.8v-123A44.66 44.66 0 00403.29 16H280.36a30.62 30.62 0 00-21.51 8.89L13.09 270.58a44.86 44.86 0 000 63.34l117 117a44.84 44.84 0 0063.33 0l245.69-245.61A30.6 30.6 0 00448 183.8zM352 144a32 32 0 1132-32 32 32 0 01-32 32z"/><path d="M496 64a16 16 0 00-16 16v127.37L218.69 468.69a16 16 0 1022.62 22.62l262-262A29.84 29.84 0 00512 208V80a16 16 0 00-16-16z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/print-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/print-outline.svg deleted file mode 100644 index ac7e482d433a5ca701f5aa114abf6dd0243cf897..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/print-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Print</title><path d="M384 368h24a40.12 40.12 0 0040-40V168a40.12 40.12 0 00-40-40H104a40.12 40.12 0 00-40 40v160a40.12 40.12 0 0040 40h24" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><rect x="128" y="240" width="256" height="208" rx="24.32" ry="24.32" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M384 128v-24a40.12 40.12 0 00-40-40H168a40.12 40.12 0 00-40 40v24" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="392" cy="184" r="24"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/print-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/print-sharp.svg deleted file mode 100644 index 461d7fe442eb4343a8b3a57aada00c92ef3a5eb7..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/print-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Print</title><path d="M400 96V56a8 8 0 00-8-8H120a8 8 0 00-8 8v40"/><rect x="152" y="264" width="208" height="160" rx="4" ry="4" class="ionicon-fill-none"/><rect x="152" y="264" width="208" height="160" rx="4" ry="4" class="ionicon-fill-none"/><path d="M408 112H104a56 56 0 00-56 56v208a8 8 0 008 8h56v72a8 8 0 008 8h272a8 8 0 008-8v-72h56a8 8 0 008-8V168a56 56 0 00-56-56zm-48 308a4 4 0 01-4 4H156a4 4 0 01-4-4V268a4 4 0 014-4h200a4 4 0 014 4zm34-212.08a24 24 0 1122-22 24 24 0 01-22 22z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/print.svg b/ionic/platforms/android/app/src/main/assets/www/svg/print.svg deleted file mode 100644 index d25878c61c401ad41f6d6cd58072e4a89d62ddb3..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/print.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Print</title><path d="M408 112H106a58 58 0 00-58 58v158a56 56 0 0056 56h8v39.68A40.32 40.32 0 00152.32 464h207.36A40.32 40.32 0 00400 423.68V384h8a56 56 0 0056-56V168a56 56 0 00-56-56zm-40 311.68a8.35 8.35 0 01-8.32 8.32H152.32a8.35 8.35 0 01-8.32-8.32V264.32a8.35 8.35 0 018.32-8.32h207.36a8.35 8.35 0 018.32 8.32zm26-215.76a24 24 0 1122-22 24 24 0 01-22 22zM344 48H168a56.09 56.09 0 00-55.42 48h286.84A56.09 56.09 0 00344 48z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/pulse-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/pulse-outline.svg deleted file mode 100644 index 3845c18dba9c48e463315ca1d3f38d3b8a8498a8..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/pulse-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Pulse</title><path stroke-linecap="round" stroke-linejoin="round" d="M48 320h64l64-256 64 384 64-224 32 96h64" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="432" cy="320" r="32" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/pulse-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/pulse-sharp.svg deleted file mode 100644 index 151d7368d4a407dcead9fa5de5a512af20288cea..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/pulse-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Pulse</title><path d="M426 266a54.07 54.07 0 00-49.3 32h-24.84l-27-81a22 22 0 00-42 .92l-37.2 130.2-48-281.74a22 22 0 00-43-1.72L94.82 298H32v44h80a22 22 0 0021.34-16.66L171.69 172l46.61 273.62A22 22 0 00238.76 464H240a22 22 0 0021.15-16l44.47-149.62 9.51 28.62A22 22 0 00336 342h40.7a54 54 0 1049.3-76z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/pulse.svg b/ionic/platforms/android/app/src/main/assets/www/svg/pulse.svg deleted file mode 100644 index 2323170e76d07dce2924e34fca2fd5b81ea58db8..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/pulse.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Pulse</title><path d="M432 272a48.09 48.09 0 00-45.25 32h-39.22l-28.35-85.06a16 16 0 00-30.56.66l-44.51 155.76-52.33-314a16 16 0 00-31.3-1.25L99.51 304H48a16 16 0 000 32h64a16 16 0 0015.52-12.12l45.34-181.37 51.36 308.12A16 16 0 00239.1 464h.91a16 16 0 0015.37-11.6l49.8-174.28 15.64 46.94A16 16 0 00336 336h50.75A48 48 0 10432 272z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/push-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/push-outline.svg deleted file mode 100644 index db3e330c493b0049637ddbd8a06c6504f96caf08..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/push-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Push</title><path d="M336 336h40a40 40 0 0040-40V88a40 40 0 00-40-40H136a40 40 0 00-40 40v208a40 40 0 0040 40h40" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-linejoin="round" d="M176 240l80-80 80 80M256 464V176" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/push-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/push-sharp.svg deleted file mode 100644 index 5fe6adaef7744e5af563ccb48c3f35016cc8976b..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/push-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Push</title><path d="M272 352V204.63l64 64L358.63 246 256 143.37 153.37 246 176 268.63l64-64V352H92a12 12 0 01-12-12V44a12 12 0 0112-12h328a12 12 0 0112 12v296a12 12 0 01-12 12zM240 352h32v128h-32z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/push.svg b/ionic/platforms/android/app/src/main/assets/www/svg/push.svg deleted file mode 100644 index 81d4dd90c68695285ca337de6fb4c4b361a205dc..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/push.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Push</title><path d="M376 352H272V198.63l52.69 52.68a16 16 0 0022.62-22.62l-80-80a16 16 0 00-22.62 0l-80 80a16 16 0 0022.62 22.62L240 198.63V352H136a56.06 56.06 0 01-56-56V88a56.06 56.06 0 0156-56h240a56.06 56.06 0 0156 56v208a56.06 56.06 0 01-56 56zM272 464a16 16 0 01-32 0V352h32z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/qr-code-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/qr-code-outline.svg deleted file mode 100644 index cc66954ab5bce36f3d7670676949da507e818799..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/qr-code-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Qr Code</title><rect x="336" y="336" width="80" height="80" rx="8" ry="8"/><rect x="272" y="272" width="64" height="64" rx="8" ry="8"/><rect x="416" y="416" width="64" height="64" rx="8" ry="8"/><rect x="432" y="272" width="48" height="48" rx="8" ry="8"/><rect x="272" y="432" width="48" height="48" rx="8" ry="8"/><rect x="336" y="96" width="80" height="80" rx="8" ry="8"/><rect x="288" y="48" width="176" height="176" rx="16" ry="16" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><rect x="96" y="96" width="80" height="80" rx="8" ry="8"/><rect x="48" y="48" width="176" height="176" rx="16" ry="16" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><rect x="96" y="336" width="80" height="80" rx="8" ry="8"/><rect x="48" y="288" width="176" height="176" rx="16" ry="16" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/qr-code-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/qr-code-sharp.svg deleted file mode 100644 index ef109e6b7cd01ba0aa5e7dca9f6e2f7d111be892..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/qr-code-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Qr Code</title><path d="M336 336h80v80h-80zM272 272h64v64h-64zM416 416h64v64h-64zM432 272h48v48h-48zM272 432h48v48h-48zM336 96h80v80h-80z"/><path d="M480 240H272V32h208zm-164-44h120V76H316zM96 96h80v80H96z"/><path d="M240 240H32V32h208zM76 196h120V76H76zM96 336h80v80H96z"/><path d="M240 480H32V272h208zM76 436h120V316H76z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/qr-code.svg b/ionic/platforms/android/app/src/main/assets/www/svg/qr-code.svg deleted file mode 100644 index b6e1c68c1f73e748676708c97c7ccd5e6c511bbe..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/qr-code.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Qr Code</title><rect x="336" y="336" width="80" height="80" rx="8" ry="8"/><rect x="272" y="272" width="64" height="64" rx="8" ry="8"/><rect x="416" y="416" width="64" height="64" rx="8" ry="8"/><rect x="432" y="272" width="48" height="48" rx="8" ry="8"/><rect x="272" y="432" width="48" height="48" rx="8" ry="8"/><path d="M448 32H304a32 32 0 00-32 32v144a32 32 0 0032 32h144a32 32 0 0032-32V64a32 32 0 00-32-32zm-32 136a8 8 0 01-8 8h-64a8 8 0 01-8-8v-64a8 8 0 018-8h64a8 8 0 018 8zM208 32H64a32 32 0 00-32 32v144a32 32 0 0032 32h144a32 32 0 0032-32V64a32 32 0 00-32-32zm-32 136a8 8 0 01-8 8h-64a8 8 0 01-8-8v-64a8 8 0 018-8h64a8 8 0 018 8zM208 272H64a32 32 0 00-32 32v144a32 32 0 0032 32h144a32 32 0 0032-32V304a32 32 0 00-32-32zm-32 136a8 8 0 01-8 8h-64a8 8 0 01-8-8v-64a8 8 0 018-8h64a8 8 0 018 8z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/radio-button-off-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/radio-button-off-outline.svg deleted file mode 100644 index eaf30d35b310fc7b75c85dc389adca5d3c31bafd..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/radio-button-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Radio Button Off</title><path d="M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/radio-button-off-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/radio-button-off-sharp.svg deleted file mode 100644 index eaf30d35b310fc7b75c85dc389adca5d3c31bafd..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/radio-button-off-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Radio Button Off</title><path d="M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/radio-button-off.svg b/ionic/platforms/android/app/src/main/assets/www/svg/radio-button-off.svg deleted file mode 100644 index eaf30d35b310fc7b75c85dc389adca5d3c31bafd..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/radio-button-off.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Radio Button Off</title><path d="M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/radio-button-on-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/radio-button-on-outline.svg deleted file mode 100644 index 5e01b7025931843b3ee27bc9529a2ab03b636019..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/radio-button-on-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Radio Button On</title><path d="M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="256" cy="256" r="144"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/radio-button-on-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/radio-button-on-sharp.svg deleted file mode 100644 index 5e01b7025931843b3ee27bc9529a2ab03b636019..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/radio-button-on-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Radio Button On</title><path d="M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="256" cy="256" r="144"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/radio-button-on.svg b/ionic/platforms/android/app/src/main/assets/www/svg/radio-button-on.svg deleted file mode 100644 index 5e01b7025931843b3ee27bc9529a2ab03b636019..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/radio-button-on.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Radio Button On</title><path d="M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="256" cy="256" r="144"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/radio-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/radio-outline.svg deleted file mode 100644 index 176d70d59d23d5e4aff8a0a6aff8cb7ca54c0194..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/radio-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Radio</title><circle cx="256" cy="256.02" r="32"/><path d="M184.25 192.25a96 96 0 000 127.52M327.77 319.77a96 96 0 000-127.52M133.28 141.28a168 168 0 000 229.44M378.72 370.72a168 168 0 000-229.44M435 416a240.34 240.34 0 000-320M77 96a240.34 240.34 0 000 320" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/radio-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/radio-sharp.svg deleted file mode 100644 index a3ac4c887fd78ad57558354d9e5766e80681d787..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/radio-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Radio</title><ellipse cx="256" cy="256" rx="36" ry="35.99"/><path d="M188.4 350.8l-14.62-16.44a117.91 117.91 0 010-156.71l14.62-16.43 32.87 29.24-14.62 16.43a73.93 73.93 0 000 98.25l14.62 16.44zM323.6 350.8l-32.89-29.22 14.62-16.44a73.93 73.93 0 000-98.25l-14.62-16.43 32.87-29.24 14.62 16.43a117.91 117.91 0 010 156.71z"/><path d="M138.24 401.76l-15-16.06a189.85 189.85 0 010-259.4l15-16.07 32.14 30.05-15 16.06a145.88 145.88 0 000 199.32l15 16.06zM373.76 401.76l-32.14-30 15-16.06a145.88 145.88 0 000-199.32l-15-16.06 32.14-30 15 16.07a189.85 189.85 0 010 259.4z"/><path d="M430.73 447l-32.79-29.33 14.66-16.39a218.2 218.2 0 000-290.56l-14.67-16.38L430.72 65l14.67 16.39a262.18 262.18 0 010 349.22zM81.27 447L66.6 430.61a262.18 262.18 0 010-349.22L81.28 65l32.79 29.34-14.68 16.38a218.2 218.2 0 000 290.56l14.66 16.39z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/radio.svg b/ionic/platforms/android/app/src/main/assets/www/svg/radio.svg deleted file mode 100644 index f5faf614d185121411577c7bdeabc8edce0fb1f4..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/radio.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Radio</title><circle cx="256" cy="256" r="36"/><path d="M190.24 341.77a22 22 0 01-16.46-7.38 118 118 0 010-156.76 22 22 0 1132.87 29.24 74 74 0 000 98.29 22 22 0 01-16.43 36.61zM321.76 341.77a22 22 0 01-16.43-36.61 74 74 0 000-98.29 22 22 0 1132.87-29.24 118 118 0 010 156.76 22 22 0 01-16.44 7.38z"/><path d="M139.29 392.72a21.92 21.92 0 01-16.08-7 190 190 0 010-259.49 22 22 0 1132.13 30.06 146 146 0 000 199.38 22 22 0 01-16.06 37zM372.71 392.72a22 22 0 01-16.06-37 146 146 0 000-199.38 22 22 0 1132.13-30.06 190 190 0 010 259.49 21.92 21.92 0 01-16.07 6.95z"/><path d="M429 438a22 22 0 01-16.39-36.67 218.34 218.34 0 000-290.66 22 22 0 0132.78-29.34 262.34 262.34 0 010 349.34A22 22 0 01429 438zM83 438a21.94 21.94 0 01-16.41-7.33 262.34 262.34 0 010-349.34 22 22 0 0132.78 29.34 218.34 218.34 0 000 290.66A22 22 0 0183 438z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/rainy-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/rainy-outline.svg deleted file mode 100644 index 892f0622e5ad32c6cfc9f728df257b61acd275fe..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/rainy-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Rainy</title><path d="M114.61 162.85A16.07 16.07 0 00128 149.6C140.09 76.17 193.63 32 256 32c57.93 0 96.62 37.75 112.2 77.74a15.84 15.84 0 0012.2 9.87c50 8.15 91.6 41.54 91.6 99.59 0 59.4-48.6 100.8-108 100.8H130c-49.5 0-90-24.7-90-79.2 0-48.47 38.67-72.22 74.61-77.95z" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-linejoin="round" d="M144 384l-32 48M224 384l-64 96M304 384l-32 48M384 384l-64 96" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/rainy-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/rainy-sharp.svg deleted file mode 100644 index 2819f17878d3feb6e665fd5db2a7790cfc6e25ef..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/rainy-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Rainy</title><path d="M364 336H130c-29.5 0-54.92-7.83-73.53-22.64C35.23 296.44 24 271.35 24 240.8c0-26.66 10.08-49.8 29.14-66.91 15.24-13.68 36.17-23.21 59-26.84.06 0 .08 0 .09-.05 6.44-39 23.83-72.09 50.31-95.68A140.24 140.24 0 01256 16c30.23 0 58.48 9.39 81.71 27.17a142.69 142.69 0 0145.36 60.66c29.41 4.82 54.72 17.11 73.19 35.54C477 160.11 488 187.71 488 219.2c0 32.85-13.13 62.87-37 84.52-22.89 20.82-53.8 32.28-87 32.28zm19-232.18zM93.82 430.422l49.75-74.626 26.626 17.75-49.751 74.627zM141.816 478.429L223.568 355.8l26.625 17.75-81.751 122.628zM253.811 430.424l49.751-74.626 26.626 17.75-49.751 74.627zM301.808 478.43l81.752-122.627 26.625 17.75-81.751 122.628z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/rainy.svg b/ionic/platforms/android/app/src/main/assets/www/svg/rainy.svg deleted file mode 100644 index ec2d7a88ddddf9eca4fe055525b7b2201dbe1017..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/rainy.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Rainy</title><path d="M456.26 139.37c-16.77-16.73-39.17-28.41-65.17-34a16 16 0 01-11.19-9 142.24 142.24 0 00-42.19-53.21C314.48 25.39 286.23 16 256 16a140.24 140.24 0 00-93.5 35.32c-24.2 21.56-40.91 51.34-48.43 85.83a16.05 16.05 0 01-11.72 12.18c-25 6.3-35.71 12.54-49.21 24.56C34 190.93 24 214.14 24 240.8c0 30.55 11.23 55.64 32.47 72.56C75.08 328.17 100.5 336 130 336h234c33.2 0 64.11-11.46 87-32.28 23.84-21.65 37-51.67 37-84.52 0-31.49-11-59.09-31.74-79.83zM112 448a16 16 0 01-13.3-24.88l32-48a16 16 0 0126.62 17.76l-32 48A16 16 0 01112 448zM160 496a16 16 0 01-13.29-24.88l64-96a16 16 0 0126.62 17.76l-64 96A16 16 0 01160 496zM272 448a16 16 0 01-13.3-24.88l32-48a16 16 0 0126.62 17.76l-32 48A16 16 0 01272 448zM320 496a16 16 0 01-13.3-24.88l64-96a16 16 0 0126.62 17.76l-64 96A16 16 0 01320 496z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/reader-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/reader-outline.svg deleted file mode 100644 index 75652ab285609276ebb893160a0f4a742a8ccdf9..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/reader-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Reader</title><rect x="96" y="48" width="320" height="416" rx="48" ry="48" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-linejoin="round" d="M176 128h160M176 208h160M176 288h80" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/reader-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/reader-sharp.svg deleted file mode 100644 index 8f09c2fca9eef31825ac67f005b91804f9e0c535..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/reader-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Reader</title><path d="M80 44v424a12 12 0 0012 12h328a12 12 0 0012-12V44a12 12 0 00-12-12H92a12 12 0 00-12 12zm192 260H160v-32h112zm80-80H160v-32h192zm0-80H160v-32h192z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/reader.svg b/ionic/platforms/android/app/src/main/assets/www/svg/reader.svg deleted file mode 100644 index f0a1f33089d7ee593d5b3ddc8b8b72ca97f11f6e..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/reader.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Reader</title><path d="M368 32H144a64.07 64.07 0 00-64 64v320a64.07 64.07 0 0064 64h224a64.07 64.07 0 0064-64V96a64.07 64.07 0 00-64-64zM256 304h-80a16 16 0 010-32h80a16 16 0 010 32zm80-80H176a16 16 0 010-32h160a16 16 0 010 32zm0-80H176a16 16 0 010-32h160a16 16 0 010 32z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/receipt-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/receipt-outline.svg deleted file mode 100644 index 36960f60e4f151f90f45b587c6b8553c6206346f..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/receipt-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Receipt</title><path stroke-linejoin="round" d="M160 336V48l32 16 32-16 31.94 16 32.37-16L320 64l31.79-16 31.93 16L416 48l32.01 16L480 48v224" class="ionicon-fill-none ionicon-stroke-width"/><path d="M480 272v112a80 80 0 01-80 80h0a80 80 0 01-80-80v-48H48a15.86 15.86 0 00-16 16c0 64 6.74 112 80 112h288" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-linejoin="round" d="M224 144h192M288 224h128" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/receipt-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/receipt-sharp.svg deleted file mode 100644 index c6a89a6eccb1e319276f88d980314cfad43377ae..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/receipt-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Receipt</title><path d="M448 48l-32-16-32 16-32-16-32 16-32-16-32 16-32-16-32 16-48-16v256.05h224V424c0 30.93 33.07 56 64 56h12c30.93 0 52-25.07 52-56V32zM272.5 240l-.5-32h159.5l.5 32zm-64-80l-.5-32h223.5l.5 32z"/><path d="M336 424V320H16v32c0 50.55 5.78 71.62 14.46 87.63C45.19 466.8 71.86 480 112 480h256s-32-20-32-56z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/receipt.svg b/ionic/platforms/android/app/src/main/assets/www/svg/receipt.svg deleted file mode 100644 index cfd64387d4c55b39705ef1c72bdb0ea54b53f216..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/receipt.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Receipt</title><path d="M483.82 32.45a16.28 16.28 0 00-11.23 1.37L448 46.1l-24.8-12.4a16 16 0 00-14.31 0l-25.11 12.41L359 33.7a16 16 0 00-14.36 0L320 46.07l-24.45-12.34a16 16 0 00-14.35-.06L256 46.12l-24.8-12.43a16.05 16.05 0 00-14.33 0L192 46.1l-24.84-12.41a16 16 0 00-19.36 3.94 16.25 16.25 0 00-3.8 10.65V288l.05.05H336a32 32 0 0132 32V424c0 30.93 33.07 56 64 56h12a52 52 0 0052-52V48a16 16 0 00-12.18-15.55zM416 240H288.5c-8.64 0-16.1-6.64-16.48-15.28A16 16 0 01288 208h127.5c8.64 0 16.1 6.64 16.48 15.28A16 16 0 01416 240zm0-80H224.5c-8.64 0-16.1-6.64-16.48-15.28A16 16 0 01224 128h191.5c8.64 0 16.1 6.64 16.48 15.28A16 16 0 01416 160z"/><path d="M336 424v-88a16 16 0 00-16-16H48a32.1 32.1 0 00-32 32.05c0 50.55 5.78 71.57 14.46 87.57C45.19 466.79 71.86 480 112 480h245.68a4 4 0 002.85-6.81C351.07 463.7 336 451 336 424z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/recording-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/recording-outline.svg deleted file mode 100644 index 930ae4bd01fe492e1e78e94fe6dab1960bcdaa29..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/recording-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Recording</title><circle cx="128" cy="256" r="96" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="384" cy="256" r="96" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-linejoin="round" d="M128 352h256" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/recording-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/recording-sharp.svg deleted file mode 100644 index 0c626ccc617c39661ad042e2db0c355b76188a2c..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/recording-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Recording</title><path d="M384 138a117.93 117.93 0 00-91.84 192h-72.32A118 118 0 10128 374h256a118 118 0 000-236zM54 256a74 74 0 1174 74 74.09 74.09 0 01-74-74zm330 74a74 74 0 1174-74 74.09 74.09 0 01-74 74z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/recording.svg b/ionic/platforms/android/app/src/main/assets/www/svg/recording.svg deleted file mode 100644 index 7a128e4e5e8530e2f2640f290d19342737523dde..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/recording.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Recording</title><path d="M380.79 144.05c-59.1 1.65-107.12 49.71-108.79 108.81a111.64 111.64 0 0030.36 79.77A2 2 0 01301 336h-90a2 2 0 01-1.44-3.37A111.64 111.64 0 00240 252.86c-1.63-59.1-49.65-107.16-108.75-108.81A112.12 112.12 0 0016 255.53C15.75 317.77 67 368 129.24 368h253.52C445 368 496.25 317.77 496 255.53a112.12 112.12 0 00-115.21-111.48z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/refresh-circle-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/refresh-circle-outline.svg deleted file mode 100644 index a14731c85b2730428808d065c6c488a5b57ba464..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/refresh-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Refresh Circle</title><path d="M288 193s12.18-6-32-6a80 80 0 1080 80" stroke-linecap="round" stroke-miterlimit="10" stroke-width="28" class="ionicon-fill-none"/><path stroke-linecap="round" stroke-linejoin="round" stroke-width="28" d="M256 149l40 40-40 40" class="ionicon-fill-none"/><path d="M256 64C150 64 64 150 64 256s86 192 192 192 192-86 192-192S362 64 256 64z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/refresh-circle-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/refresh-circle-sharp.svg deleted file mode 100644 index f211643a430c9711fa5a23e12ac657063353178c..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/refresh-circle-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Refresh Circle</title><path d="M256 48C141.31 48 48 141.32 48 256c0 114.86 93.14 208 208 208 114.69 0 208-93.31 208-208 0-114.87-93.13-208-208-208zm94 219a94 94 0 11-94-94h4.21l-24-24L256 129.2l59.8 59.8-59.8 59.8-19.8-19.8 27.92-27.92c-2.4-.08-5.12-.08-8.12-.08a66 66 0 1066 66v-14h28z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/refresh-circle.svg b/ionic/platforms/android/app/src/main/assets/www/svg/refresh-circle.svg deleted file mode 100644 index 1bf148304c65a5e0e55aa62aeec003451236b9c0..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/refresh-circle.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Refresh Circle</title><path d="M256 48C141.31 48 48 141.32 48 256c0 114.86 93.14 208 208 208 114.69 0 208-93.31 208-208 0-114.87-93.13-208-208-208zm0 313a94 94 0 010-188h4.21l-14.11-14.1a14 14 0 0119.8-19.8l40 40a14 14 0 010 19.8l-40 40a14 14 0 01-19.8-19.8l18-18c-2.38-.1-5.1-.1-8.1-.1a66 66 0 1066 66 14 14 0 0128 0 94.11 94.11 0 01-94 94z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/refresh-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/refresh-outline.svg deleted file mode 100644 index 5bff8aef3ee9066efe98e7c4d0fbcf8cd43e472f..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/refresh-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Refresh</title><path d="M320 146s24.36-12-64-12a160 160 0 10160 160" stroke-linecap="round" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-linejoin="round" d="M256 58l80 80-80 80" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/refresh-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/refresh-sharp.svg deleted file mode 100644 index bb5a36f37f170687dc055b664780f6a36accb100..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/refresh-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Refresh</title><path d="M320 146s24.36-12-64-12a160 160 0 10160 160" stroke-linecap="square" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="square" stroke-miterlimit="10" d="M256 58l80 80-80 80" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/refresh.svg b/ionic/platforms/android/app/src/main/assets/www/svg/refresh.svg deleted file mode 100644 index 5bff8aef3ee9066efe98e7c4d0fbcf8cd43e472f..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/refresh.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Refresh</title><path d="M320 146s24.36-12-64-12a160 160 0 10160 160" stroke-linecap="round" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-linejoin="round" d="M256 58l80 80-80 80" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/reload-circle-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/reload-circle-outline.svg deleted file mode 100644 index fa829e09ac9876e2f06409c3afb68b88c1562f60..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/reload-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Reload Circle</title><path d="M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><path d="M341.54 197.85l-11.37-13.23a103.37 103.37 0 1022.71 105.84" stroke-linecap="round" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><path d="M367.32 162a8.44 8.44 0 00-6 2.54l-59.54 59.54a8.61 8.61 0 006.09 14.71h59.54a8.62 8.62 0 008.62-8.62v-59.56a8.61 8.61 0 00-8.68-8.63z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/reload-circle-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/reload-circle-sharp.svg deleted file mode 100644 index 8dce32564a04c8db2f830109049217df358703fe..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/reload-circle-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Reload Circle</title><path d="M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm120 190.77h-89l36.88-36.88-5.6-6.51a87.38 87.38 0 10-62.94 148 87.55 87.55 0 0082.42-58.25l5.37-15.13 30.17 10.67-5.3 15.13a119.4 119.4 0 11-112.62-159.18 118.34 118.34 0 0186.36 36.95l.56.62 4.31 5L376 149.81z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/reload-circle.svg b/ionic/platforms/android/app/src/main/assets/www/svg/reload-circle.svg deleted file mode 100644 index 6da4f1f718760d677d3749a40f992e7ecab701ab..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/reload-circle.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Reload Circle</title><path d="M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm120 182.15a8.62 8.62 0 01-8.62 8.62h-59.54a8.61 8.61 0 01-6.09-14.71l22.17-22.17-5.6-6.51a87.38 87.38 0 10-62.94 148 87.55 87.55 0 0082.42-58.25A16 16 0 11368 295.8a119.4 119.4 0 11-112.62-159.18 118.34 118.34 0 0186.36 36.95l.56.62 4.31 5 14.68-14.68a8.44 8.44 0 016-2.54 8.61 8.61 0 018.68 8.63z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/reload-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/reload-outline.svg deleted file mode 100644 index d1a272eb26c695e34f6dab99140e70c46f10286e..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/reload-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Reload</title><path d="M400 148l-21.12-24.57A191.43 191.43 0 00240 64C134 64 48 150 48 256s86 192 192 192a192.09 192.09 0 00181.07-128" stroke-linecap="round" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><path d="M464 97.42V208a16 16 0 01-16 16H337.42c-14.26 0-21.4-17.23-11.32-27.31L436.69 86.1C446.77 76 464 83.16 464 97.42z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/reload-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/reload-sharp.svg deleted file mode 100644 index 820b3d4e18d692775fde3e2686edd099463f8154..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/reload-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Reload</title><path d="M400 148l-21.12-24.57A191.43 191.43 0 00240 64C134 64 48 150 48 256s86 192 192 192a192.09 192.09 0 00181.07-128" stroke-linecap="square" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><path d="M464 68.45V220a4 4 0 01-4 4H308.45a4 4 0 01-2.83-6.83L457.17 65.62a4 4 0 016.83 2.83z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/reload.svg b/ionic/platforms/android/app/src/main/assets/www/svg/reload.svg deleted file mode 100644 index d1a272eb26c695e34f6dab99140e70c46f10286e..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/reload.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Reload</title><path d="M400 148l-21.12-24.57A191.43 191.43 0 00240 64C134 64 48 150 48 256s86 192 192 192a192.09 192.09 0 00181.07-128" stroke-linecap="round" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><path d="M464 97.42V208a16 16 0 01-16 16H337.42c-14.26 0-21.4-17.23-11.32-27.31L436.69 86.1C446.77 76 464 83.16 464 97.42z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/remove-circle-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/remove-circle-outline.svg deleted file mode 100644 index 5c8032fe2c4269d5372f6279871790013fcf853d..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/remove-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Remove Circle</title><path d="M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-linejoin="round" d="M336 256H176" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/remove-circle-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/remove-circle-sharp.svg deleted file mode 100644 index c9a5520331dab501047d0ed47cc7d9f7dc7d7fc4..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/remove-circle-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Remove Circle</title><path d="M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm96 224H160v-32h192z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/remove-circle.svg b/ionic/platforms/android/app/src/main/assets/www/svg/remove-circle.svg deleted file mode 100644 index a0bddc6855b7ebdd456d1548149bdd62b4f9d390..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/remove-circle.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Remove Circle</title><path d="M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm80 224H176a16 16 0 010-32h160a16 16 0 010 32z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/remove-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/remove-outline.svg deleted file mode 100644 index e50ec382b491cb3a9dcdc9f7dfd449c75f8553b8..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/remove-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Remove</title><path stroke-linecap="round" stroke-linejoin="round" d="M400 256H112" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/remove-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/remove-sharp.svg deleted file mode 100644 index fc23d6fd3a9593f7e5e6e01e2dbda6a18c4929e9..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/remove-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Remove</title><path stroke-linecap="square" stroke-linejoin="round" d="M400 256H112" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/remove.svg b/ionic/platforms/android/app/src/main/assets/www/svg/remove.svg deleted file mode 100644 index e50ec382b491cb3a9dcdc9f7dfd449c75f8553b8..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/remove.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Remove</title><path stroke-linecap="round" stroke-linejoin="round" d="M400 256H112" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/reorder-four-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/reorder-four-outline.svg deleted file mode 100644 index c0423234ce7fe43b46cbec4cdab769359331598e..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/reorder-four-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Reorder Four</title><path stroke-linecap="round" stroke-linejoin="round" d="M96 304h320M96 208h320M96 112h320M96 400h320" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/reorder-four-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/reorder-four-sharp.svg deleted file mode 100644 index db3e7ae93692973a7dd6c1d67e91e8615f03f98c..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/reorder-four-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Reorder Four</title><path stroke-linecap="square" stroke-linejoin="round" stroke-width="44" d="M102 304h308M102 208h308M102 112h308M102 400h308" class="ionicon-fill-none"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/reorder-four.svg b/ionic/platforms/android/app/src/main/assets/www/svg/reorder-four.svg deleted file mode 100644 index 87bfa7ad917e056b35adfef33b7de47f69d81a21..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/reorder-four.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Reorder Four</title><path stroke-linecap="round" stroke-linejoin="round" stroke-width="44" d="M102 304h308M102 208h308M102 112h308M102 400h308" class="ionicon-fill-none"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/reorder-three-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/reorder-three-outline.svg deleted file mode 100644 index 6147a34b5f2a42ffd5df149e6073e16258b23251..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/reorder-three-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Reorder Three</title><path stroke-linecap="round" stroke-linejoin="round" d="M96 256h320M96 176h320M96 336h320" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/reorder-three-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/reorder-three-sharp.svg deleted file mode 100644 index f5cb7c05b51c0e1dc980e969c5fecee448a65baf..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/reorder-three-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Reorder Three</title><path stroke-linecap="square" stroke-linejoin="round" stroke-width="44" d="M102 256h308M102 176h308M102 336h308" class="ionicon-fill-none"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/reorder-three.svg b/ionic/platforms/android/app/src/main/assets/www/svg/reorder-three.svg deleted file mode 100644 index 286ecca38a89d2df406ea2b370c4ab87a62c18ad..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/reorder-three.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Reorder Three</title><path stroke-linecap="round" stroke-linejoin="round" stroke-width="44" d="M102 256h308M102 176h308M102 336h308" class="ionicon-fill-none"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/reorder-two-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/reorder-two-outline.svg deleted file mode 100644 index a4e5e8c4d589f84cfc656305eb87472b45ecb7eb..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/reorder-two-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Reorder Two</title><path stroke-linecap="round" stroke-linejoin="round" d="M112 304h288M112 208h288" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/reorder-two-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/reorder-two-sharp.svg deleted file mode 100644 index 02ba64c9a389208f1976212c42e8bf9dae245851..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/reorder-two-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Reorder Two</title><path stroke-linecap="square" stroke-linejoin="round" stroke-width="44" d="M118 304h276M118 208h276" class="ionicon-fill-none"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/reorder-two.svg b/ionic/platforms/android/app/src/main/assets/www/svg/reorder-two.svg deleted file mode 100644 index a7d5f974fac88b0921d3337d0d57a3c7719d88eb..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/reorder-two.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Reorder Two</title><path stroke-linecap="round" stroke-linejoin="round" stroke-width="44" d="M118 304h276M118 208h276" class="ionicon-fill-none"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/repeat-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/repeat-outline.svg deleted file mode 100644 index d368cb3fec503674be45467d69c90cb785ef7878..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/repeat-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Repeat</title><path stroke-linecap="round" stroke-linejoin="round" d="M320 120l48 48-48 48" class="ionicon-fill-none ionicon-stroke-width"/><path d="M352 168H144a80.24 80.24 0 00-80 80v16M192 392l-48-48 48-48" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M160 344h208a80.24 80.24 0 0080-80v-16" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/repeat-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/repeat-sharp.svg deleted file mode 100644 index caccdf89491694af3b16315b1bf8773b2b3e4986..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/repeat-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Repeat</title><path stroke-linecap="square" stroke-miterlimit="10" d="M320 120l48 48-48 48" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="square" stroke-miterlimit="10" d="M352 168H64v96M192 392l-48-48 48-48" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="square" stroke-miterlimit="10" d="M160 344h288v-96" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/repeat.svg b/ionic/platforms/android/app/src/main/assets/www/svg/repeat.svg deleted file mode 100644 index d368cb3fec503674be45467d69c90cb785ef7878..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/repeat.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Repeat</title><path stroke-linecap="round" stroke-linejoin="round" d="M320 120l48 48-48 48" class="ionicon-fill-none ionicon-stroke-width"/><path d="M352 168H144a80.24 80.24 0 00-80 80v16M192 392l-48-48 48-48" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M160 344h208a80.24 80.24 0 0080-80v-16" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/resize-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/resize-outline.svg deleted file mode 100644 index 8054e045d00584f6ce2bb9c7ccbac4336b5de420..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/resize-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Resize</title><path stroke-linecap="round" stroke-linejoin="round" d="M304 96h112v112M405.77 106.2L111.98 400.02M208 416H96V304" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/resize-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/resize-sharp.svg deleted file mode 100644 index ff135c954162cb72b65ca127605a6453cf5cb970..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/resize-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Resize</title><path stroke-linecap="square" stroke-miterlimit="10" d="M304 96h112v112M405.77 106.2L111.98 400.02M208 416H96V304" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/resize.svg b/ionic/platforms/android/app/src/main/assets/www/svg/resize.svg deleted file mode 100644 index 8054e045d00584f6ce2bb9c7ccbac4336b5de420..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/resize.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Resize</title><path stroke-linecap="round" stroke-linejoin="round" d="M304 96h112v112M405.77 106.2L111.98 400.02M208 416H96V304" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/restaurant-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/restaurant-outline.svg deleted file mode 100644 index 37aeb092a77c0c429feb84dbf4fe677a1c11b7e6..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/restaurant-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Restaurant</title><path d="M57.49 47.74l368.43 368.43a37.28 37.28 0 010 52.72h0a37.29 37.29 0 01-52.72 0l-90-91.55a32 32 0 01-9.2-22.43v-5.53a32 32 0 00-9.52-22.78l-11.62-10.73a32 32 0 00-29.8-7.44h0a48.53 48.53 0 01-46.56-12.63l-85.43-85.44C40.39 159.68 21.74 83.15 57.49 47.74z" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M400 32l-77.25 77.25A64 64 0 00304 154.51v14.86a16 16 0 01-4.69 11.32L288 192M320 224l11.31-11.31a16 16 0 0111.32-4.69h14.86a64 64 0 0045.26-18.75L480 112M440 72l-80 80M200 368l-99.72 100.28a40 40 0 01-56.56 0h0a40 40 0 010-56.56L128 328" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/restaurant-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/restaurant-sharp.svg deleted file mode 100644 index 0180ddef15f3d70fb0154bc7b83a4a00eec1d3ce..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/restaurant-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Restaurant</title><path d="M342.7 223.94h14.87a79.48 79.48 0 0056.58-23.44L496 118l-22.22-22.4-83.58 83.58-17.37-17.37 83.58-83.59-23-22.31-83.27 83.26-17.32-17.37 83.58-83.59L394 16l-82.5 81.85a79.49 79.49 0 00-23.44 56.59v14.86l-43.13 43.13L48 16C3.72 70.87 29.87 171.71 79.72 221.57l85.5 85.5c26.55 26.55 31.82 28.92 61.94 16.8 6.49-2.61 8.85-2.32 14.9 3.72l13 12.13c2.93 3 3 3.88 3 9.62v5.54c0 21.08 13.48 33.2 22.36 42.24L384 496l72-72-156.43-156.93z"/><path d="M227.37 354.59c-29.82 6.11-48.11 11.74-83.08-23.23-.56-.56-1.14-1.1-1.7-1.66l-19.5-19.5L16 416l80 80 144-144z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/restaurant.svg b/ionic/platforms/android/app/src/main/assets/www/svg/restaurant.svg deleted file mode 100644 index 253e57cf76f92bf016319015f867cc37ed4c12a4..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/restaurant.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Restaurant</title><path d="M357.57 223.94a79.48 79.48 0 0056.58-23.44l77-76.95c6.09-6.09 6.65-16 .85-22.39a16 16 0 00-23.17-.56l-68.63 68.58a12.29 12.29 0 01-17.37 0c-4.79-4.78-4.53-12.86.25-17.64l68.33-68.33a16 16 0 00-.56-23.16A15.62 15.62 0 00440.27 56a16.71 16.71 0 00-11.81 4.9l-68.27 68.26a12.29 12.29 0 01-17.37 0c-4.78-4.78-4.53-12.86.25-17.64l68.33-68.31a16 16 0 00-.56-23.16A15.62 15.62 0 00400.26 16a16.73 16.73 0 00-11.81 4.9L311.5 97.85a79.49 79.49 0 00-23.44 56.59v8.23a16 16 0 01-4.69 11.33l-35.61 35.62a4 4 0 01-5.66 0L68.82 36.33a16 16 0 00-22.58-.06C31.09 51.28 23 72.47 23 97.54c-.1 41.4 21.66 89 56.79 124.08l85.45 85.45A64.79 64.79 0 00211 326a64 64 0 0016.21-2.08 16.24 16.24 0 014.07-.53 15.93 15.93 0 0110.83 4.25l11.39 10.52a16.12 16.12 0 014.6 11.23v5.54a47.73 47.73 0 0013.77 33.65l90.05 91.57.09.1a53.29 53.29 0 0075.36-75.37L302.39 269.9a4 4 0 010-5.66L338 228.63a16 16 0 0111.32-4.69z"/><path d="M211 358a97.32 97.32 0 01-68.36-28.25l-13.86-13.86a8 8 0 00-11.3 0l-85 84.56c-15.15 15.15-20.56 37.45-13.06 59.29a30.63 30.63 0 001.49 3.6C31 484 50.58 496 72 496a55.68 55.68 0 0039.64-16.44L225 365.66a4.69 4.69 0 001.32-3.72v-.26a4.63 4.63 0 00-5.15-4.27A97.09 97.09 0 01211 358z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/return-down-back-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/return-down-back-outline.svg deleted file mode 100644 index ed8aa4b2f242b27c4c4f91fe410f392bd3d46081..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/return-down-back-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Return Down Back</title><path stroke-linecap="round" stroke-linejoin="round" d="M112 352l-64-64 64-64" class="ionicon-fill-none ionicon-stroke-width"/><path d="M64 288h294c58.76 0 106-49.33 106-108v-20" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/return-down-back-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/return-down-back-sharp.svg deleted file mode 100644 index ad00ec6bd223bd4476320e15e647fc70d04c2320..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/return-down-back-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Return Down Back</title><path stroke-linecap="square" stroke-miterlimit="10" d="M112 352l-64-64 64-64" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="square" stroke-miterlimit="10" d="M64 288h400V160" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/return-down-back.svg b/ionic/platforms/android/app/src/main/assets/www/svg/return-down-back.svg deleted file mode 100644 index ed8aa4b2f242b27c4c4f91fe410f392bd3d46081..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/return-down-back.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Return Down Back</title><path stroke-linecap="round" stroke-linejoin="round" d="M112 352l-64-64 64-64" class="ionicon-fill-none ionicon-stroke-width"/><path d="M64 288h294c58.76 0 106-49.33 106-108v-20" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/return-down-forward-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/return-down-forward-outline.svg deleted file mode 100644 index fd2ed9743742753db2c9fcc7b96e51c2982135fe..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/return-down-forward-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Return Down Forward</title><path stroke-linecap="round" stroke-linejoin="round" d="M400 352l64-64-64-64" class="ionicon-fill-none ionicon-stroke-width"/><path d="M448 288H154c-58.76 0-106-49.33-106-108v-20" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/return-down-forward-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/return-down-forward-sharp.svg deleted file mode 100644 index b4ee4b9e19c31f14dc3d01bc135ab74705b2169e..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/return-down-forward-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Return Down Forward</title><path stroke-linecap="square" stroke-miterlimit="10" d="M400 352l64-64-64-64" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="square" stroke-miterlimit="10" d="M448 288H48V160" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/return-down-forward.svg b/ionic/platforms/android/app/src/main/assets/www/svg/return-down-forward.svg deleted file mode 100644 index fd2ed9743742753db2c9fcc7b96e51c2982135fe..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/return-down-forward.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Return Down Forward</title><path stroke-linecap="round" stroke-linejoin="round" d="M400 352l64-64-64-64" class="ionicon-fill-none ionicon-stroke-width"/><path d="M448 288H154c-58.76 0-106-49.33-106-108v-20" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/return-up-back-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/return-up-back-outline.svg deleted file mode 100644 index 22d69ec0236641d060c40720b0136cd2592f6b2f..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/return-up-back-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Return Up Back</title><path stroke-linecap="round" stroke-linejoin="round" d="M112 160l-64 64 64 64" class="ionicon-fill-none ionicon-stroke-width"/><path d="M64 224h294c58.76 0 106 49.33 106 108v20" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/return-up-back-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/return-up-back-sharp.svg deleted file mode 100644 index 80d3a9430ecc8e3d0da481047b26fcd26ce593e3..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/return-up-back-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Return Up Back</title><path stroke-linecap="square" stroke-miterlimit="10" d="M112 160l-64 64 64 64" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="square" stroke-miterlimit="10" d="M64 224h400v128" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/return-up-back.svg b/ionic/platforms/android/app/src/main/assets/www/svg/return-up-back.svg deleted file mode 100644 index 22d69ec0236641d060c40720b0136cd2592f6b2f..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/return-up-back.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Return Up Back</title><path stroke-linecap="round" stroke-linejoin="round" d="M112 160l-64 64 64 64" class="ionicon-fill-none ionicon-stroke-width"/><path d="M64 224h294c58.76 0 106 49.33 106 108v20" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/return-up-forward-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/return-up-forward-outline.svg deleted file mode 100644 index 83e14d337ba76f71413eeacae8bb987e534b675c..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/return-up-forward-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Return Up Forward</title><path stroke-linecap="round" stroke-linejoin="round" d="M400 160l64 64-64 64" class="ionicon-fill-none ionicon-stroke-width"/><path d="M448 224H154c-58.76 0-106 49.33-106 108v20" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/return-up-forward-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/return-up-forward-sharp.svg deleted file mode 100644 index a657ebfd2ed4f304609814d46bf236ea67804a64..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/return-up-forward-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Return Up Forward</title><path stroke-linecap="square" stroke-miterlimit="10" d="M400 160l64 64-64 64" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="square" stroke-miterlimit="10" d="M448 224H48v128" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/return-up-forward.svg b/ionic/platforms/android/app/src/main/assets/www/svg/return-up-forward.svg deleted file mode 100644 index 83e14d337ba76f71413eeacae8bb987e534b675c..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/return-up-forward.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Return Up Forward</title><path stroke-linecap="round" stroke-linejoin="round" d="M400 160l64 64-64 64" class="ionicon-fill-none ionicon-stroke-width"/><path d="M448 224H154c-58.76 0-106 49.33-106 108v20" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/ribbon-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/ribbon-outline.svg deleted file mode 100644 index c40cc8c51356a8554e2edc47db611e1eb58ae73e..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/ribbon-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Ribbon</title><circle cx="256" cy="160" r="128" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M143.65 227.82L48 400l86.86-.42a16 16 0 0113.82 7.8L192 480l88.33-194.32" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M366.54 224L464 400l-86.86-.42a16 16 0 00-13.82 7.8L320 480l-64-140.8" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="256" cy="160" r="64" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/ribbon-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/ribbon-sharp.svg deleted file mode 100644 index 1f64efd240e56c6a10f1661e97238514a338de05..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/ribbon-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Ribbon</title><path d="M256 336c-5.22 0-10.4-.24-15.51-.69a176.12 176.12 0 01-131.29-78.37L20 416h115l58 96 82.53-177.09A177.53 177.53 0 01256 336zM403 256.74a176.9 176.9 0 01-88.18 69.14L273.7 415.5 319 512l58-96h115z"/><circle cx="256.02" cy="160" r="48"/><path d="M256 16c-79.4 0-144 64.6-144 144s64.6 144 144 144 144-64.6 144-144S335.4 16 256 16zm0 224a80 80 0 1180-80 80.09 80.09 0 01-80 80z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/ribbon.svg b/ionic/platforms/android/app/src/main/assets/www/svg/ribbon.svg deleted file mode 100644 index 7ebc87aaa6b4db14545671a8f7c31a81c669aba0..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/ribbon.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Ribbon</title><path d="M269 335.61q-6.33.47-12.78.47c-5.23 0-10.4-.24-15.51-.69a176.11 176.11 0 01-127.67-72.94 4 4 0 00-6.77.35l-72 129.4c-2.74 5-3.17 11-.28 15.88A16.78 16.78 0 0048.22 416h78a15.28 15.28 0 0113.62 7.33L178.5 488a16.26 16.26 0 0013.75 8c5.94-.33 12.09-4.19 14.56-9.6l66.11-145.15a4 4 0 00-3.92-5.64zM477.64 391.88l-71.53-129.17a4 4 0 00-6.74-.36 176.5 176.5 0 01-78.31 61.42 16.09 16.09 0 00-8.72 8.25l-36.86 81.1a7.92 7.92 0 000 6.6l30.27 66.59c2.45 5.41 8.59 9.36 14.52 9.69a16.3 16.3 0 0013.7-8.12l38.53-64.58c2.89-4.85 8.13-7.33 13.78-7.3h78.77c6.67 0 11.72-3.48 14-10a16.92 16.92 0 00-1.41-14.12z"/><ellipse cx="256.26" cy="160" rx="48.01" ry="48"/><path d="M256.26 16c-79.42 0-144 64.59-144 144s64.61 144 144 144 144-64.6 144-144-64.59-144-144-144zm0 224a80 80 0 1180-80 80.1 80.1 0 01-80 80z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/rocket-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/rocket-outline.svg deleted file mode 100644 index df976214a99c7ce1c88c5998c0e421626f2402d0..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/rocket-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Rocket</title><path d="M461.81 53.81a4.4 4.4 0 00-3.3-3.39c-54.38-13.3-180 34.09-248.13 102.17a294.9 294.9 0 00-33.09 39.08c-21-1.9-42-.3-59.88 7.5-50.49 22.2-65.18 80.18-69.28 105.07a9 9 0 009.8 10.4l81.07-8.9a180.29 180.29 0 001.1 18.3 18.15 18.15 0 005.3 11.09l31.39 31.39a18.15 18.15 0 0011.1 5.3 179.91 179.91 0 0018.19 1.1l-8.89 81a9 9 0 0010.39 9.79c24.9-4 83-18.69 105.07-69.17 7.8-17.9 9.4-38.79 7.6-59.69a293.91 293.91 0 0039.19-33.09c68.38-68 115.47-190.86 102.37-247.95zM298.66 213.67a42.7 42.7 0 1160.38 0 42.65 42.65 0 01-60.38 0z" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M109.64 352a45.06 45.06 0 00-26.35 12.84C65.67 382.52 64 448 64 448s65.52-1.67 83.15-19.31A44.73 44.73 0 00160 402.32" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/rocket-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/rocket-sharp.svg deleted file mode 100644 index 145ffa9390c3a0e1b6ef3616b2d838615faf0351..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/rocket-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Rocket</title><path d="M477.64 38.26a4.75 4.75 0 00-3.55-3.66c-58.57-14.32-193.9 36.71-267.22 110a317 317 0 00-35.63 42.1c-22.61-2-45.22-.33-64.49 8.07C52.38 218.7 36.55 281.14 32.14 308a9.64 9.64 0 0010.55 11.2l87.31-9.63a194.1 194.1 0 001.19 19.7 19.53 19.53 0 005.7 12L170.7 375a19.59 19.59 0 0012 5.7 193.53 193.53 0 0019.59 1.19l-9.58 87.2a9.65 9.65 0 0011.2 10.55c26.81-4.3 89.36-20.13 113.15-74.5 8.4-19.27 10.12-41.77 8.18-64.27a317.66 317.66 0 0042.21-35.64C441 232.05 491.74 99.74 477.64 38.26zM294.07 217.93a48 48 0 1167.86 0 47.95 47.95 0 01-67.86 0z"/><path d="M168.4 399.43c-5.48 5.49-14.27 7.63-24.85 9.46-23.77 4.05-44.76-16.49-40.49-40.52 1.63-9.11 6.45-21.88 9.45-24.88a4.37 4.37 0 00-3.65-7.45 60 60 0 00-35.13 17.12C50.22 376.69 48 464 48 464s87.36-2.22 110.87-25.75A59.69 59.69 0 00176 403.09c.37-4.18-4.72-6.67-7.6-3.66z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/rocket.svg b/ionic/platforms/android/app/src/main/assets/www/svg/rocket.svg deleted file mode 100644 index 382dcce3776b4aff4b87d1ffb8c36f92ea5ec32f..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/rocket.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Rocket</title><path d="M328.85 156.79a26.69 26.69 0 1018.88 7.81 26.6 26.6 0 00-18.88-7.81z"/><path d="M477.44 50.06a.29.29 0 010-.09 20.4 20.4 0 00-15.13-15.3c-29.8-7.27-76.68.48-128.63 21.28-52.36 21-101.42 52-134.58 85.22A320.7 320.7 0 00169.55 175c-22.33-1-42 2.18-58.57 9.41-57.74 25.41-74.23 90.44-78.62 117.14a25 25 0 0027.19 29h.13l64.32-7.02c.08.82.17 1.57.24 2.26a34.36 34.36 0 009.9 20.72l31.39 31.41a34.27 34.27 0 0020.71 9.91l2.15.23-7 64.24v.13A25 25 0 00206 480a25.25 25.25 0 004.15-.34C237 475.34 302 459.05 327.34 401c7.17-16.46 10.34-36.05 9.45-58.34a314.78 314.78 0 0033.95-29.55c33.43-33.26 64.53-81.92 85.31-133.52 20.69-51.36 28.48-98.59 21.39-129.53zM370.38 224.94a58.77 58.77 0 110-83.07 58.3 58.3 0 010 83.07z"/><path d="M161.93 386.44a16 16 0 00-11 2.67c-6.39 4.37-12.81 8.69-19.29 12.9-13.11 8.52-28.79-6.44-21-20l12.15-21a16 16 0 00-15.16-24.91A61.25 61.25 0 0072 353.56c-3.66 3.67-14.79 14.81-20.78 57.26A357.94 357.94 0 0048 447.59 16 16 0 0064 464h.4a359.87 359.87 0 0036.8-3.2c42.47-6 53.61-17.14 57.27-20.8a60.49 60.49 0 0017.39-35.74 16 16 0 00-13.93-17.82z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/rose-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/rose-outline.svg deleted file mode 100644 index 7e0d3182f1cbff97eaf896ff30a688dc8944c107..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/rose-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Rose</title><path d="M416 128c-18.9 4.25-36.8 8.94-53.7 13.95-40.5 12-75.5 27.15-105.4 41.65-19.3 9.37-26.2 13.51-51.5 28.23-58.4 33.69-93.4 77.4-93.4 142.81C112 428.55 167.6 480 256 480s144-55.81 144-129.72S339 225.24 416 128z" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M264 180.19c-19.69-27-38.2-38.69-52.7-46.59C162.6 107.1 96 96 96 96c41.5 43.7 37.2 90.1 32 128 0 0-3.87 32.88 1.91 58.41" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M372 139.15C356.55 102.6 336 64 336 64s-63.32 0-135.69 64M253.48 87.57C221.25 45.81 176 32 176 32c-15.3 20.8-28.79 51.58-34.87 74.17" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/rose-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/rose-sharp.svg deleted file mode 100644 index eabdbadd28387ce3a2c2aac8549205154433495a..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/rose-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Rose</title><path d="M448 112s-17.62 0-30.51 1.39c-19 2-42.06 8-59.73 13.22-35.06 10.39-69.33 23.92-107.85 42.59-18.62 9.05-26 13.35-48 26.13l-4.5 2.67c-32.95 19-57.09 40-73.79 64.3C105.29 288.89 96 320 96 354.64c0 40.74 15.71 77.1 44.24 102.37C169 482.52 209.06 496 256 496c46.76 0 86.89-14.32 116-41.43 28.35-26.35 44-63.39 44-104.29 0-25-6.19-47-12.17-68.22-12.59-44.69-23.46-83.29 24.71-144.13C432.75 132.62 448 112 448 112zM219 119.55C168.47 92.08 104.72 80 80 80c0 0 23.23 28.19 29.15 55.4s6.54 48.61 2.91 88.6c17.94-20.48 40.59-37.15 69.32-53.73l4.48-2.6C208 154.8 216.23 150 236 140.41c2.88-1.4 5.74-2.76 8.58-4.11A170.77 170.77 0 00219 119.55zM345.25 48s-42.53.36-86.12 21.3a280.36 280.36 0 00-32.27 18.27q3.73 1.89 7.4 3.88c3.44 1.87 7.09 4 10.9 6.29a189.7 189.7 0 0131.46 24.16c24.57-10.41 73-26.1 90.77-31.28-8-19.15-22.14-42.62-22.14-42.62zM176 16c-16 10.83-33.24 41.1-33.24 41.1a494.22 494.22 0 0148.92 15.25l17.65-11.56c8.18-5.35 16.55-10.29 25-14.77C234.31 46 202.59 24.17 176 16z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/rose.svg b/ionic/platforms/android/app/src/main/assets/www/svg/rose.svg deleted file mode 100644 index 99512e6f9f4aeed909f6d9800c649ab4a79cb950..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/rose.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Rose</title><path d="M429.55 119.49a16 16 0 00-17.06-7.1c-18.64 4.19-37.06 9-54.73 14.22-35.06 10.39-69.33 23.92-107.85 42.59-18.62 9.05-26 13.35-48 26.13l-4.5 2.67c-32.95 19-57.09 40-73.79 64.29C105.29 288.89 96 320 96 354.64c0 40.74 15.71 77.1 44.24 102.37C169 482.52 209.06 496 256 496c46.76 0 86.89-14.33 116-41.43 28.35-26.35 44-63.39 44-104.29 0-25-6.19-47-12.17-68.22-12.59-44.69-23.46-83.29 24.71-144.13a16 16 0 001.01-18.44zM219 119.55C168.46 92.08 101.46 80.69 98.63 80.22A16 16 0 0081 90.55a16.47 16.47 0 003.79 16.84c31.84 33.78 32.86 68.79 28.65 104.63a4.45 4.45 0 002.5 4.54 4.44 4.44 0 005.08-.9c16.39-16.51 36.37-31.52 60.4-45.39l4.48-2.6C208 154.8 216.23 150 236 140.41l2.69-1.3a4 4 0 00.64-6.83A178.59 178.59 0 00219 119.55zM234.26 91.45c3.44 1.87 7.09 4 10.9 6.29a189.31 189.31 0 0129.57 22.39 4 4 0 004.28.76 672 672 0 0169.65-25q7-2.07 14.08-4a4 4 0 002.53-5.62c-8.27-16.83-14.67-28.9-15.15-29.79A16 16 0 00336 48c-1.91 0-33.28.36-76.87 21.3a279 279 0 00-26.39 14.51 4 4 0 00.22 6.94zM209.33 60.79c7.3-4.77 14.74-9.22 22.25-13.31a2 2 0 00.24-3.36c-26-19.57-49.73-27-51.15-27.42a16 16 0 00-17.56 5.82 217.63 217.63 0 00-19.28 32.38 2 2 0 001.29 2.81c13.61 3.57 29.4 8.29 45.61 14.29a2 2 0 001.79-.2z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/sad-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/sad-outline.svg deleted file mode 100644 index 47e37c7d56f5e899ff79a181bedb150a5c7188c6..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/sad-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Sad</title><circle cx="184" cy="232" r="24"/><path d="M256 288c45.42 0 83.62 29.53 95.71 69.83a8 8 0 01-7.87 10.17H168.15a8 8 0 01-7.82-10.17C172.32 317.53 210.53 288 256 288z"/><circle cx="328" cy="232" r="24"/><circle cx="256" cy="256" r="208" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/sad-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/sad-sharp.svg deleted file mode 100644 index f6e8d77239efb6aee93439f43f8825b778297087..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/sad-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Sad</title><path d="M414.39 97.61A224 224 0 1097.61 414.39 224 224 0 10414.39 97.61zM328 208a24 24 0 11-24 24 23.94 23.94 0 0124-24zm-144 0a24 24 0 11-24 24 23.94 23.94 0 0124-24zm72 80c45.42 0 83.75 29.49 95.72 69.83 1 3.52 2.33 10.17 2.33 10.17H158s1.31-6.69 2.33-10.17C172.11 317.47 210.53 288 256 288z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/sad.svg b/ionic/platforms/android/app/src/main/assets/www/svg/sad.svg deleted file mode 100644 index 65346f776a42a57e347ab72f13298fd20b85fb08..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/sad.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Sad</title><path d="M414.39 97.61A224 224 0 1097.61 414.39 224 224 0 10414.39 97.61zM184 208a24 24 0 11-24 24 23.94 23.94 0 0124-24zm-23.67 149.83c12-40.3 50.2-69.83 95.62-69.83s83.62 29.53 95.71 69.83a8 8 0 01-7.82 10.17H168.15a8 8 0 01-7.82-10.17zM328 256a24 24 0 1124-24 23.94 23.94 0 01-24 24z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/save-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/save-outline.svg deleted file mode 100644 index a2cdc7f7a547f4171750d4d7b6e5de5714dc35b0..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/save-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Save</title><path d="M380.93 57.37A32 32 0 00358.3 48H94.22A46.21 46.21 0 0048 94.22v323.56A46.21 46.21 0 0094.22 464h323.56A46.36 46.36 0 00464 417.78V153.7a32 32 0 00-9.37-22.63zM256 416a64 64 0 1164-64 63.92 63.92 0 01-64 64zm48-224H112a16 16 0 01-16-16v-64a16 16 0 0116-16h192a16 16 0 0116 16v64a16 16 0 01-16 16z" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/save-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/save-sharp.svg deleted file mode 100644 index 40d58f328073e450d7450d77af44871f41b81dea..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/save-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Save</title><path d="M380.44 32H64a32 32 0 00-32 32v384a32 32 0 0032 32h384a32.09 32.09 0 0032-32V131.56zM112 176v-64h192v64zm223.91 179.76a80 80 0 11-83.66-83.67 80.21 80.21 0 0183.66 83.67z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/save.svg b/ionic/platforms/android/app/src/main/assets/www/svg/save.svg deleted file mode 100644 index 5f840225a531408b3ded0bf91085f81542406e03..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/save.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Save</title><path d="M465.94 119.76l-73.7-73.7A47.68 47.68 0 00358.3 32H96a64 64 0 00-64 64v320a64 64 0 0064 64h320a64 64 0 0064-64V153.7a47.68 47.68 0 00-14.06-33.94zM120 112h176a8 8 0 018 8v48a8 8 0 01-8 8H120a8 8 0 01-8-8v-48a8 8 0 018-8zm139.75 319.91a80 80 0 1176.16-76.16 80.06 80.06 0 01-76.16 76.16z"/><circle cx="256" cy="352" r="48"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/scan-circle-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/scan-circle-outline.svg deleted file mode 100644 index e8b524224a7d5cea2d009196159f9c081a7c0ac5..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/scan-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Scan Circle</title><path d="M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><path d="M296 352h28a28 28 0 0028-28v-28M352 216v-28a28 28 0 00-28-28h-28M216 352h-28a28 28 0 01-28-28v-28M160 216v-28a28 28 0 0128-28h28" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/scan-circle-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/scan-circle-sharp.svg deleted file mode 100644 index ae2ebca2228a694734bd2e33e1c51aa573e37622..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/scan-circle-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Scan Circle</title><path d="M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm-24 320h-44a44.05 44.05 0 01-44-44v-44h32v44a12 12 0 0012 12h44zm0-192h-44a12 12 0 00-12 12v44h-32v-44a44.05 44.05 0 0144-44h44zm136 148a44.05 44.05 0 01-44 44h-44v-32h44a12 12 0 0012-12v-44h32zm0-92h-32v-44a12 12 0 00-12-12h-44v-32h44a44.05 44.05 0 0144 44z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/scan-circle.svg b/ionic/platforms/android/app/src/main/assets/www/svg/scan-circle.svg deleted file mode 100644 index 0c7357428f976352e461bfe98b9a2699b97bef9c..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/scan-circle.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Scan Circle</title><path d="M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm-40 320h-28a44.05 44.05 0 01-44-44v-28a16 16 0 0132 0v28a12 12 0 0012 12h28a16 16 0 010 32zm0-192h-28a12 12 0 00-12 12v28a16 16 0 01-32 0v-28a44.05 44.05 0 0144-44h28a16 16 0 010 32zm152 148a44.05 44.05 0 01-44 44h-28a16 16 0 010-32h28a12 12 0 0012-12v-28a16 16 0 0132 0zm0-108a16 16 0 01-32 0v-28a12 12 0 00-12-12h-28a16 16 0 010-32h28a44.05 44.05 0 0144 44z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/scan-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/scan-outline.svg deleted file mode 100644 index 91ec9d45522ac6ff309ddb6ea97ef95ead7fca78..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/scan-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Scan</title><path d="M336 448h56a56 56 0 0056-56v-56M448 176v-56a56 56 0 00-56-56h-56M176 448h-56a56 56 0 01-56-56v-56M64 176v-56a56 56 0 0156-56h56" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/scan-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/scan-sharp.svg deleted file mode 100644 index d1da78a0f0ddbfced87312533c6011eb32fa4656..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/scan-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Scan</title><path d="M388 466h-68v-44h68a34 34 0 0034-34v-68h44v68a78.09 78.09 0 01-78 78zM466 192h-44v-68a34 34 0 00-34-34h-68V46h68a78.09 78.09 0 0178 78zM192 466h-68a78.09 78.09 0 01-78-78v-68h44v68a34 34 0 0034 34h68zM90 192H46v-68a78.09 78.09 0 0178-78h68v44h-68a34 34 0 00-34 34z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/scan.svg b/ionic/platforms/android/app/src/main/assets/www/svg/scan.svg deleted file mode 100644 index 504abfddc4a3cc39569925a3a3188c62029b0405..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/scan.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Scan</title><path d="M342 444h46a56 56 0 0056-56v-46M444 170v-46a56 56 0 00-56-56h-46M170 444h-46a56 56 0 01-56-56v-46M68 170v-46a56 56 0 0156-56h46" stroke-linecap="round" stroke-linejoin="round" stroke-width="44" class="ionicon-fill-none"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/school-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/school-outline.svg deleted file mode 100644 index bbc1a4dc03a97b4cea3e5ac1c4a6882255eb0665..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/school-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>School</title><path stroke-linecap="round" stroke-linejoin="round" d="M32 192L256 64l224 128-224 128L32 192z" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-linejoin="round" d="M112 240v128l144 80 144-80V240M480 368V192M256 320v128" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/school-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/school-sharp.svg deleted file mode 100644 index aff7566026afe863cd9a50ba5b22effbc1757860..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/school-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>School</title><path d="M256 370.43L96 279v98.42l160 88.88 160-88.88V279l-160 91.43z"/><path d="M512.25 192L256 45.57-.25 192 256 338.43l208-118.86V384h48V192.14l.25-.14z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/school.svg b/ionic/platforms/android/app/src/main/assets/www/svg/school.svg deleted file mode 100644 index 0ba87a625dd7f8c519dfd501986709baa8d0d135..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/school.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>School</title><path d="M256 368a16 16 0 01-7.94-2.11L108 285.84a8 8 0 00-12 6.94V368a16 16 0 008.23 14l144 80a16 16 0 0015.54 0l144-80a16 16 0 008.23-14v-75.22a8 8 0 00-12-6.94l-140.06 80.05A16 16 0 01256 368z"/><path d="M495.92 190.5v-.11a16 16 0 00-8-12.28l-224-128a16 16 0 00-15.88 0l-224 128a16 16 0 000 27.78l224 128a16 16 0 0015.88 0L461 221.28a2 2 0 013 1.74v144.53c0 8.61 6.62 16 15.23 16.43A16 16 0 00496 368V192a14.76 14.76 0 00-.08-1.5z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/search-circle-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/search-circle-outline.svg deleted file mode 100644 index f6ee473b86a994d1a1487319c2de238efc06e490..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/search-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Search Circle</title><path d="M256 80a176 176 0 10176 176A176 176 0 00256 80z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><path d="M232 160a72 72 0 1072 72 72 72 0 00-72-72z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-miterlimit="10" d="M283.64 283.64L336 336" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/search-circle-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/search-circle-sharp.svg deleted file mode 100644 index abb414f76406ddfb4af646406410cd262c543eb0..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/search-circle-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Search Circle</title><path d="M256 64C150.13 64 64 150.13 64 256s86.13 192 192 192 192-86.13 192-192S361.87 64 256 64zm80 294.63l-54.15-54.15a88.08 88.08 0 1122.63-22.63L358.63 336z"/><circle cx="232" cy="232" r="56"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/search-circle.svg b/ionic/platforms/android/app/src/main/assets/www/svg/search-circle.svg deleted file mode 100644 index a6ffbe776837e6a3a711bb7af2353b69bc80b6ba..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/search-circle.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Search Circle</title><path d="M256 64C150.13 64 64 150.13 64 256s86.13 192 192 192 192-86.13 192-192S361.87 64 256 64zm91.31 283.31a16 16 0 01-22.62 0l-42.84-42.83a88.08 88.08 0 1122.63-22.63l42.83 42.84a16 16 0 010 22.62z"/><circle cx="232" cy="232" r="56"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/search-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/search-outline.svg deleted file mode 100644 index b26b34087aa5ce3d245e77d778c70cf4f8508a7d..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/search-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Search</title><path d="M221.09 64a157.09 157.09 0 10157.09 157.09A157.1 157.1 0 00221.09 64z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-miterlimit="10" d="M338.29 338.29L448 448" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/search-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/search-sharp.svg deleted file mode 100644 index c415d0bce66cdb0eb0bbd963e6cd39e7fc7ba23f..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/search-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Search</title><path d="M464 428L339.92 303.9a160.48 160.48 0 0030.72-94.58C370.64 120.37 298.27 48 209.32 48S48 120.37 48 209.32s72.37 161.32 161.32 161.32a160.48 160.48 0 0094.58-30.72L428 464zM209.32 319.69a110.38 110.38 0 11110.37-110.37 110.5 110.5 0 01-110.37 110.37z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/search.svg b/ionic/platforms/android/app/src/main/assets/www/svg/search.svg deleted file mode 100644 index bc560b89f8d52c9d1da0e2aecc7fb49ea88862b8..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/search.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Search</title><path d="M456.69 421.39L362.6 327.3a173.81 173.81 0 0034.84-104.58C397.44 126.38 319.06 48 222.72 48S48 126.38 48 222.72s78.38 174.72 174.72 174.72A173.81 173.81 0 00327.3 362.6l94.09 94.09a25 25 0 0035.3-35.3zM97.92 222.72a124.8 124.8 0 11124.8 124.8 124.95 124.95 0 01-124.8-124.8z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/send-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/send-outline.svg deleted file mode 100644 index ce93d61cee5ec82bcb47f9aa670743e089e2e4cc..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/send-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Send</title><path d="M470.3 271.15L43.16 447.31a7.83 7.83 0 01-11.16-7V327a8 8 0 016.51-7.86l247.62-47c17.36-3.29 17.36-28.15 0-31.44l-247.63-47a8 8 0 01-6.5-7.85V72.59c0-5.74 5.88-10.26 11.16-8L470.3 241.76a16 16 0 010 29.39z" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/send-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/send-sharp.svg deleted file mode 100644 index 7b7a870b4d482a9510cabefbd2da3803e8d73de2..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/send-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Send</title><path d="M16 464l480-208L16 48v160l320 48-320 48z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/send.svg b/ionic/platforms/android/app/src/main/assets/www/svg/send.svg deleted file mode 100644 index f7b9fb4670e1c996ca4eaa2255039ac477018888..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/send.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Send</title><path d="M476.59 227.05l-.16-.07L49.35 49.84A23.56 23.56 0 0027.14 52 24.65 24.65 0 0016 72.59v113.29a24 24 0 0019.52 23.57l232.93 43.07a4 4 0 010 7.86L35.53 303.45A24 24 0 0016 327v113.31A23.57 23.57 0 0026.59 460a23.94 23.94 0 0013.22 4 24.55 24.55 0 009.52-1.93L476.4 285.94l.19-.09a32 32 0 000-58.8z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/server-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/server-outline.svg deleted file mode 100644 index 3a3e364ca619f33f3f299a05b12600c8c54813a7..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/server-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Server</title><ellipse cx="256" cy="128" rx="192" ry="80" stroke-linecap="round" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><path d="M448 214c0 44.18-86 80-192 80S64 258.18 64 214M448 300c0 44.18-86 80-192 80S64 344.18 64 300" stroke-linecap="round" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><path d="M64 127.24v257.52C64 428.52 150 464 256 464s192-35.48 192-79.24V127.24" stroke-linecap="round" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/server-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/server-sharp.svg deleted file mode 100644 index 19daa4bec3a73c67bbf13e3ca39f7d5300bcc53d..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/server-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Server</title><path d="M409.43 389.87C362 410 305.4 421.05 256 421.05s-105.87-11.3-153.44-31.18S48 353.16 48 353.16v38.2c0 31.15 18 43.64 67.32 64.35C153.13 471.59 203.18 480 256 480s102.87-8.41 140.68-24.29C446 435 464 422.51 464 391.36v-38.2s-7.14 16.59-54.57 36.71zM63.69 173.22c11.23 9.84 27.82 19.49 48 27.92 42.48 17.76 96.45 28.37 144.36 28.37s101.88-10.61 144.36-28.37c20.13-8.43 36.72-18.08 47.95-27.92 6.06-5.31 10.85-10.12 13.47-12.85a8 8 0 002.22-5.54v-26.16c-.84-28.79-24.71-54.41-67.21-72.14C358.83 40.71 308.84 32 256 32s-102.83 8.71-140.74 24.53C72.85 74.22 49 99.78 48.05 128.5v26.33a8 8 0 002.21 5.54c2.58 2.73 7.36 7.54 13.43 12.85z"/><path d="M409.43 221.91C365 241 305.4 253.09 256 253.09s-108.87-12.27-153.43-31.18S48 185.2 48 185.2v47.36c.08 7.52 5.5 16.2 15.69 25.13 11.24 9.84 27.82 19.5 48 27.92C154.12 303.38 208.09 314 256 314s101.88-10.6 144.36-28.37c20.13-8.42 36.72-18.08 47.95-27.92 10.25-9 15.68-17.71 15.69-25.27V185.2s-10.13 17.62-54.57 36.71z"/><path d="M409.43 306.38C362 326 305.4 337.56 256 337.56s-109.87-12.8-153.43-31.18S48 269.67 48 269.67v46.25c0 7.55 5.44 16.28 15.69 25.26 11.23 9.84 27.81 19.5 48 27.92 42.48 17.77 96.44 28.37 144.36 28.37s101.88-10.6 144.36-28.37c20.13-8.43 36.72-18.08 47.95-27.92 10.19-8.93 15.61-17.61 15.69-25.13v-46.38s-7.18 17.09-54.62 36.71z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/server.svg b/ionic/platforms/android/app/src/main/assets/www/svg/server.svg deleted file mode 100644 index cb6d8661dbcc3d968602fff897e2da946daecc56..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/server.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Server</title><path d="M256 428c-52.35 0-111.39-11.61-157.93-31-17.07-7.19-31.69-18.82-43.64-28a4 4 0 00-6.43 3.18v12.58c0 28.07 23.49 53.22 66.14 70.82C152.29 471.33 202.67 480 256 480s103.7-8.67 141.86-24.42C440.51 438 464 412.83 464 384.76v-12.58a4 4 0 00-6.43-3.18c-11.95 9.17-26.57 20.81-43.65 28-46.54 19.39-105.57 31-157.92 31zM464 126.51c-.81-27.65-24.18-52.4-66-69.85C359.74 40.76 309.34 32 256 32s-103.74 8.76-141.91 24.66c-41.78 17.41-65.15 42.11-66 69.69L48 144c0 6.41 5.2 16.48 14.63 24.73 11.13 9.73 27.65 19.33 47.78 27.73C153.24 214.36 207.67 225 256 225s102.76-10.68 145.59-28.58c20.13-8.4 36.65-18 47.78-27.73C458.8 160.49 464 150.42 464 144z"/><path d="M413.92 226c-46.53 19.43-105.57 31-157.92 31s-111.39-11.57-157.93-31c-17.07-7.15-31.69-18.79-43.64-28a4 4 0 00-6.43 3.22V232c0 6.41 5.2 14.48 14.63 22.73 11.13 9.74 27.65 19.33 47.78 27.74C153.24 300.34 207.67 311 256 311s102.76-10.68 145.59-28.57c20.13-8.41 36.65-18 47.78-27.74C458.8 246.47 464 238.41 464 232v-30.78a4 4 0 00-6.43-3.18c-11.95 9.17-26.57 20.81-43.65 27.96z"/><path d="M413.92 312c-46.54 19.41-105.57 31-157.92 31s-111.39-11.59-157.93-31c-17.07-7.17-31.69-18.81-43.64-28a4 4 0 00-6.43 3.2V317c0 6.41 5.2 14.47 14.62 22.71 11.13 9.74 27.66 19.33 47.79 27.74C153.24 385.32 207.66 396 256 396s102.76-10.68 145.59-28.57c20.13-8.41 36.65-18 47.78-27.74C458.8 331.44 464 323.37 464 317v-29.8a4 4 0 00-6.43-3.18c-11.95 9.17-26.57 20.81-43.65 27.98z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/settings-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/settings-outline.svg deleted file mode 100644 index e2217fd9e6bf9daf8f798c98bc1ab1d0474d9be3..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/settings-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Settings</title><path d="M262.29 192.31a64 64 0 1057.4 57.4 64.13 64.13 0 00-57.4-57.4zM416.39 256a154.34 154.34 0 01-1.53 20.79l45.21 35.46a10.81 10.81 0 012.45 13.75l-42.77 74a10.81 10.81 0 01-13.14 4.59l-44.9-18.08a16.11 16.11 0 00-15.17 1.75A164.48 164.48 0 01325 400.8a15.94 15.94 0 00-8.82 12.14l-6.73 47.89a11.08 11.08 0 01-10.68 9.17h-85.54a11.11 11.11 0 01-10.69-8.87l-6.72-47.82a16.07 16.07 0 00-9-12.22 155.3 155.3 0 01-21.46-12.57 16 16 0 00-15.11-1.71l-44.89 18.07a10.81 10.81 0 01-13.14-4.58l-42.77-74a10.8 10.8 0 012.45-13.75l38.21-30a16.05 16.05 0 006-14.08c-.36-4.17-.58-8.33-.58-12.5s.21-8.27.58-12.35a16 16 0 00-6.07-13.94l-38.19-30A10.81 10.81 0 0149.48 186l42.77-74a10.81 10.81 0 0113.14-4.59l44.9 18.08a16.11 16.11 0 0015.17-1.75A164.48 164.48 0 01187 111.2a15.94 15.94 0 008.82-12.14l6.73-47.89A11.08 11.08 0 01213.23 42h85.54a11.11 11.11 0 0110.69 8.87l6.72 47.82a16.07 16.07 0 009 12.22 155.3 155.3 0 0121.46 12.57 16 16 0 0015.11 1.71l44.89-18.07a10.81 10.81 0 0113.14 4.58l42.77 74a10.8 10.8 0 01-2.45 13.75l-38.21 30a16.05 16.05 0 00-6.05 14.08c.33 4.14.55 8.3.55 12.47z" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/settings-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/settings-sharp.svg deleted file mode 100644 index 31fd4fcab469794ea222a0e04e3a083face93100..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/settings-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Settings</title><path d="M256 176a80 80 0 1080 80 80.24 80.24 0 00-80-80zm172.72 80a165.53 165.53 0 01-1.64 22.34l48.69 38.12a11.59 11.59 0 012.63 14.78l-46.06 79.52a11.64 11.64 0 01-14.14 4.93l-57.25-23a176.56 176.56 0 01-38.82 22.67l-8.56 60.78a11.93 11.93 0 01-11.51 9.86h-92.12a12 12 0 01-11.51-9.53l-8.56-60.78A169.3 169.3 0 01151.05 393L93.8 416a11.64 11.64 0 01-14.14-4.92L33.6 331.57a11.59 11.59 0 012.63-14.78l48.69-38.12A174.58 174.58 0 0183.28 256a165.53 165.53 0 011.64-22.34l-48.69-38.12a11.59 11.59 0 01-2.63-14.78l46.06-79.52a11.64 11.64 0 0114.14-4.93l57.25 23a176.56 176.56 0 0138.82-22.67l8.56-60.78A11.93 11.93 0 01209.94 26h92.12a12 12 0 0111.51 9.53l8.56 60.78A169.3 169.3 0 01361 119l57.2-23a11.64 11.64 0 0114.14 4.92l46.06 79.52a11.59 11.59 0 01-2.63 14.78l-48.69 38.12a174.58 174.58 0 011.64 22.66z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/settings.svg b/ionic/platforms/android/app/src/main/assets/www/svg/settings.svg deleted file mode 100644 index 83140709d10a25267b076daeaea4ad2632182e93..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/settings.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Settings</title><circle cx="256" cy="256" r="48"/><path d="M470.39 300l-.47-.38-31.56-24.75a16.11 16.11 0 01-6.1-13.33v-11.56a16 16 0 016.11-13.22L469.92 212l.47-.38a26.68 26.68 0 005.9-34.06l-42.71-73.9a1.59 1.59 0 01-.13-.22A26.86 26.86 0 00401 92.14l-.35.13-37.1 14.93a15.94 15.94 0 01-14.47-1.29q-4.92-3.1-10-5.86a15.94 15.94 0 01-8.19-11.82l-5.59-39.59-.12-.72A27.22 27.22 0 00298.76 26h-85.52a26.92 26.92 0 00-26.45 22.39l-.09.56-5.57 39.67a16 16 0 01-8.13 11.82 175.21 175.21 0 00-10 5.82 15.92 15.92 0 01-14.43 1.27l-37.13-15-.35-.14a26.87 26.87 0 00-32.48 11.34l-.13.22-42.77 73.95a26.71 26.71 0 005.9 34.1l.47.38 31.56 24.75a16.11 16.11 0 016.1 13.33v11.56a16 16 0 01-6.11 13.22L42.08 300l-.47.38a26.68 26.68 0 00-5.9 34.06l42.71 73.9a1.59 1.59 0 01.13.22 26.86 26.86 0 0032.45 11.3l.35-.13 37.07-14.93a15.94 15.94 0 0114.47 1.29q4.92 3.11 10 5.86a15.94 15.94 0 018.19 11.82l5.56 39.59.12.72A27.22 27.22 0 00213.24 486h85.52a26.92 26.92 0 0026.45-22.39l.09-.56 5.57-39.67a16 16 0 018.18-11.82c3.42-1.84 6.76-3.79 10-5.82a15.92 15.92 0 0114.43-1.27l37.13 14.95.35.14a26.85 26.85 0 0032.48-11.34 2.53 2.53 0 01.13-.22l42.71-73.89a26.7 26.7 0 00-5.89-34.11zm-134.48-40.24a80 80 0 11-83.66-83.67 80.21 80.21 0 0183.66 83.67z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/shapes-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/shapes-outline.svg deleted file mode 100644 index 1bc32f0f2c0144bb40507b8704c87859cfe26dd3..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/shapes-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Shapes</title><path stroke-linejoin="round" d="M336 320H32L184 48l152 272zM265.32 194.51A144 144 0 11192 320" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/shapes-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/shapes-sharp.svg deleted file mode 100644 index 877254595b92f851262cd3d500ddc9aa06035c30..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/shapes-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Shapes</title><path d="M363.27 336H4.73L184 16z"/><path d="M336 160a160.54 160.54 0 00-32.55 3.36l87.75 157L417.81 368H183.36C203.8 432.85 264.49 480 336 480c88.22 0 160-71.78 160-160s-71.78-160-160-160z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/shapes.svg b/ionic/platforms/android/app/src/main/assets/www/svg/shapes.svg deleted file mode 100644 index 00627d4d4120fff31ca9ff2c6d3302097224f632..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/shapes.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Shapes</title><path d="M336 336H32a16 16 0 01-14-23.81l152-272a16 16 0 0127.94 0l152 272A16 16 0 01336 336z"/><path d="M336 160a161.07 161.07 0 00-32.57 3.32l74.47 133.27A48 48 0 01336 368H183.33A160 160 0 10336 160z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/share-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/share-outline.svg deleted file mode 100644 index 2670d44e7032f3620e3cc45bcbca3705e617cd31..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/share-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Share</title><path d="M336 192h40a40 40 0 0140 40v192a40 40 0 01-40 40H136a40 40 0 01-40-40V232a40 40 0 0140-40h40M336 128l-80-80-80 80M256 321V48" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/share-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/share-sharp.svg deleted file mode 100644 index 912660e67874727acb9ae24bb8ab2fd078067764..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/share-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Share</title><path d="M272 176v161h-32V176H92a12 12 0 00-12 12v280a12 12 0 0012 12h328a12 12 0 0012-12V188a12 12 0 00-12-12zM272 92.63l64 64L358.63 134 256 31.37 153.37 134 176 156.63l64-64V176h32V92.63z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/share-social-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/share-social-outline.svg deleted file mode 100644 index 93c0fb3deca3f24f0913f0c4617ed8bb48632086..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/share-social-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Share Social</title><circle cx="128" cy="256" r="48" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="384" cy="112" r="48" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="384" cy="400" r="48" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-linejoin="round" d="M169.83 279.53l172.34 96.94M342.17 135.53l-172.34 96.94" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/share-social-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/share-social-sharp.svg deleted file mode 100644 index a773728c13fd428b13ee23db6fd6e44fa0ebb09f..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/share-social-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Share Social</title><path d="M378 324a69.78 69.78 0 00-48.83 19.91L202 272.41a69.68 69.68 0 000-32.82l127.13-71.5A69.76 69.76 0 10308.87 129l-130.13 73.2a70 70 0 100 107.56L308.87 383A70 70 0 10378 324z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/share-social.svg b/ionic/platforms/android/app/src/main/assets/www/svg/share-social.svg deleted file mode 100644 index 102b976ee24e0beb052f9a99a6c63fdfb96df269..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/share-social.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Share Social</title><path d="M384 336a63.78 63.78 0 00-46.12 19.7l-148-83.27a63.85 63.85 0 000-32.86l148-83.27a63.8 63.8 0 10-15.73-27.87l-148 83.27a64 64 0 100 88.6l148 83.27A64 64 0 10384 336z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/share.svg b/ionic/platforms/android/app/src/main/assets/www/svg/share.svg deleted file mode 100644 index 975bfb134f6fd0057efcd1ca8c46f355df2341d0..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/share.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Share</title><path d="M376 176H272v145a16 16 0 01-32 0V176H136a56.06 56.06 0 00-56 56v192a56.06 56.06 0 0056 56h240a56.06 56.06 0 0056-56V232a56.06 56.06 0 00-56-56zM272 86.63l52.69 52.68a16 16 0 0022.62-22.62l-80-80a16 16 0 00-22.62 0l-80 80a16 16 0 0022.62 22.62L240 86.63V176h32z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/shield-checkmark-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/shield-checkmark-outline.svg deleted file mode 100644 index 254f64a257982467397b6f58119ec5313cfc9c6e..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/shield-checkmark-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Shield Checkmark</title><path stroke-linecap="round" stroke-linejoin="round" d="M336 176L225.2 304 176 255.8" class="ionicon-fill-none ionicon-stroke-width"/><path d="M463.1 112.37C373.68 96.33 336.71 84.45 256 48c-80.71 36.45-117.68 48.33-207.1 64.37C32.7 369.13 240.58 457.79 256 464c15.42-6.21 223.3-94.87 207.1-351.63z" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/shield-checkmark-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/shield-checkmark-sharp.svg deleted file mode 100644 index 42ad381cbe757b9f703830e983efb7898ea3b4bf..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/shield-checkmark-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Shield Checkmark</title><path d="M479.07 111.36l-.79-12.53-12.36-2.21c-86.5-15.52-122.61-26.74-203.33-63.2l-6.59-3-6.59 3C168.69 69.88 132.58 81.1 46.08 96.62l-12.36 2.21-.79 12.53c-3.85 61.11 4.36 118.05 24.43 169.24A349.47 349.47 0 00129 393.11c53.47 56.73 110.24 81.37 121.07 85.73l6 2.41 6-2.41c10.83-4.36 67.6-29 121.07-85.73a349.47 349.47 0 0071.5-112.51c20.07-51.19 28.28-108.13 24.43-169.24zm-252.91 216L153.37 256l22.4-22.86 48.47 47.49 110.13-127.2 24.2 20.94z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/shield-checkmark.svg b/ionic/platforms/android/app/src/main/assets/www/svg/shield-checkmark.svg deleted file mode 100644 index 5f0bfbf1f79504a74b1ad0e8975d073aa1075c77..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/shield-checkmark.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Shield Checkmark</title><path d="M479.07 111.36a16 16 0 00-13.15-14.74c-86.5-15.52-122.61-26.74-203.33-63.2a16 16 0 00-13.18 0C168.69 69.88 132.58 81.1 46.08 96.62a16 16 0 00-13.15 14.74c-3.85 61.11 4.36 118.05 24.43 169.24A349.47 349.47 0 00129 393.11c53.47 56.73 110.24 81.37 121.07 85.73a16 16 0 0012 0c10.83-4.36 67.6-29 121.07-85.73a349.47 349.47 0 0071.5-112.51c20.07-51.19 28.28-108.13 24.43-169.24zm-131 75.11l-110.8 128a16 16 0 01-11.41 5.53h-.66a16 16 0 01-11.2-4.57l-49.2-48.2a16 16 0 1122.4-22.86l37 36.29 99.7-115.13a16 16 0 0124.2 20.94z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/shield-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/shield-outline.svg deleted file mode 100644 index a3310d753c8e1bb3f9018e2a6c83e75b00596294..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/shield-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Shield</title><path d="M463.1 112.37C373.68 96.33 336.71 84.45 256 48c-80.71 36.45-117.68 48.33-207.1 64.37C32.7 369.13 240.58 457.79 256 464c15.42-6.21 223.3-94.87 207.1-351.63z" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/shield-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/shield-sharp.svg deleted file mode 100644 index ebb97644704a985486e85604256c296909c43a78..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/shield-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Shield</title><path d="M256 32C174 69.06 121.38 86.46 32 96c0 77.59 5.27 133.36 25.29 184.51a348.86 348.86 0 0071.43 112.41c49.6 52.66 104.17 80.4 127.28 87.08 23.11-6.68 77.68-34.42 127.28-87.08a348.86 348.86 0 0071.43-112.41C474.73 229.36 480 173.59 480 96c-89.38-9.54-142-26.94-224-64z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/shield.svg b/ionic/platforms/android/app/src/main/assets/www/svg/shield.svg deleted file mode 100644 index 3102a4554d2ff490c36c7301bd896f9623a9c37f..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/shield.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Shield</title><path d="M479.07 111.35a16 16 0 00-13.15-14.75C379.89 81.18 343.69 69.12 266 34.16c-7.76-2.89-12.57-2.84-20 0-77.69 35-113.89 47-199.92 62.44a16 16 0 00-13.15 14.75c-3.85 61.1 4.34 118 24.36 169.15a348.86 348.86 0 0071.43 112.41c44.67 47.43 94.2 75.12 119.74 85.6a20 20 0 0015.11 0c27-10.92 74.69-37.82 119.71-85.62a348.86 348.86 0 0071.43-112.39c20.02-51.14 28.21-108.05 24.36-169.15z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/shirt-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/shirt-outline.svg deleted file mode 100644 index d48dda0f7128c7f761dfd26efb6653d1dbf4465b..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/shirt-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Shirt</title><path d="M314.56 48s-22.78 8-58.56 8-58.56-8-58.56-8a31.94 31.94 0 00-10.57 1.8L32 104l16.63 88 48.88 5.52a24 24 0 0121.29 24.58L112 464h288l-6.8-241.9a24 24 0 0121.29-24.58l48.88-5.52L480 104 325.13 49.8a31.94 31.94 0 00-10.57-1.8zM333.31 52.66a80 80 0 01-154.62 0" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/shirt-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/shirt-sharp.svg deleted file mode 100644 index ba20d5682e1679b07feee7cc2cde60a132de166c..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/shirt-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Shirt</title><path d="M256 42c-33.88 0-64-10-64-10v2a64 64 0 00128 0v-2s-30.12 10-64 10z"/><path d="M352 44c-5.49 47.76-46.79 85-96 85s-90.51-37.24-96-85L16 94l18 114 61.71 7.42c7.08.9 7.1.9 7.1 8.19L96 480h320l-6.81-256.39c-.21-7-.21-7 7.1-8.19L478 208l18-114z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/shirt.svg b/ionic/platforms/android/app/src/main/assets/www/svg/shirt.svg deleted file mode 100644 index b2309486e95797b19b4cf42408fa1df6d96a54b1..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/shirt.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Shirt</title><path d="M256 96c33.08 0 60.71-25.78 64-58 .3-3-3-6-6-6a13 13 0 00-4.74.9c-.2.08-21.1 8.1-53.26 8.1s-53.1-8-53.26-8.1a16.21 16.21 0 00-5.3-.9h-.06a5.69 5.69 0 00-5.38 6c3.35 32.16 31 58 64 58z"/><path d="M485.29 89.9L356 44.64a4 4 0 00-5.27 3.16 96 96 0 01-189.38 0 4 4 0 00-5.35-3.16L26.71 89.9A16 16 0 0016.28 108l16.63 88a16 16 0 0013.92 12.9l48.88 5.52a8 8 0 017.1 8.19l-7.33 240.9a16 16 0 009.1 14.94A17.49 17.49 0 00112 480h288a17.49 17.49 0 007.42-1.55 16 16 0 009.1-14.94l-7.33-240.9a8 8 0 017.1-8.19l48.88-5.52a16 16 0 0013.92-12.9l16.63-88a16 16 0 00-10.43-18.1z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/shuffle-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/shuffle-outline.svg deleted file mode 100644 index 93830cc100b491d7c6bc9ee72b6085ba750aeadd..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/shuffle-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Shuffle</title><path stroke-linecap="round" stroke-linejoin="round" d="M400 304l48 48-48 48M400 112l48 48-48 48M64 352h85.19a80 80 0 0066.56-35.62L256 256" class="ionicon-fill-none ionicon-stroke-width"/><path d="M64 160h85.19a80 80 0 0166.56 35.62l80.5 120.76A80 80 0 00362.81 352H416M416 160h-53.19a80 80 0 00-66.56 35.62L288 208" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/shuffle-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/shuffle-sharp.svg deleted file mode 100644 index 79d9afb5852c1c852981e6b8a712600b221cd25f..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/shuffle-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Shuffle</title><path stroke-linecap="square" stroke-miterlimit="10" d="M400 304l48 48-48 48M400 112l48 48-48 48M64 352h128l60-92" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="square" stroke-miterlimit="10" d="M64 160h128l128 192h96M416 160h-96l-32 48" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/shuffle.svg b/ionic/platforms/android/app/src/main/assets/www/svg/shuffle.svg deleted file mode 100644 index 93830cc100b491d7c6bc9ee72b6085ba750aeadd..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/shuffle.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Shuffle</title><path stroke-linecap="round" stroke-linejoin="round" d="M400 304l48 48-48 48M400 112l48 48-48 48M64 352h85.19a80 80 0 0066.56-35.62L256 256" class="ionicon-fill-none ionicon-stroke-width"/><path d="M64 160h85.19a80 80 0 0166.56 35.62l80.5 120.76A80 80 0 00362.81 352H416M416 160h-53.19a80 80 0 00-66.56 35.62L288 208" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/skull-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/skull-outline.svg deleted file mode 100644 index b3a0187ec13ab11433f9a0aa687c7e19cf6a7499..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/skull-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Skull</title><path d="M448 225.64v99a64 64 0 01-40.23 59.42l-23.68 9.47A32 32 0 00364.6 417l-10 50.14A16 16 0 01338.88 480H173.12a16 16 0 01-15.69-12.86L147.4 417a32 32 0 00-19.49-23.44l-23.68-9.47A64 64 0 0164 324.67V224c0-105.92 85.77-191.81 191.65-192S448 119.85 448 225.64z" stroke-linecap="round" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="168" cy="280" r="40" stroke-linecap="round" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="344" cy="280" r="40" stroke-linecap="round" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-linejoin="round" d="M256 336l-16 48h32l-16-48zM256 448v32M208 448v32M304 448v32" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/skull-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/skull-sharp.svg deleted file mode 100644 index 590d46599542db2849ba475bb613ac6c685d28ff..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/skull-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Skull</title><path d="M256 16C141.31 16 48 109.31 48 224v154.83l82 32.81L146.88 496H192v-64h32v64h16v-64h32v64h16v-64h32v64h45.12L382 411.64l82-32.81V224c0-114.69-93.31-208-208-208zm-88 320a56 56 0 1156-56 56.06 56.06 0 01-56 56zm51.51 64L244 320h24l24.49 80zM344 336a56 56 0 1156-56 56.06 56.06 0 01-56 56zm104 32z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/skull.svg b/ionic/platforms/android/app/src/main/assets/www/svg/skull.svg deleted file mode 100644 index 5bec4a483e6834a85f32da7812841eb2aba9770e..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/skull.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Skull</title><path d="M402 76.94C362.61 37.63 310.78 16 256 16h-.37A208 208 0 0048 224v100.67A79.62 79.62 0 0098.29 399l23.71 9.42a15.92 15.92 0 019.75 11.72l10 50.13A32.09 32.09 0 00173.12 496H184a8 8 0 008-8v-39.55c0-8.61 6.62-16 15.23-16.43A16 16 0 01224 448v40a8 8 0 008 8 8 8 0 008-8v-39.55c0-8.61 6.62-16 15.23-16.43A16 16 0 01272 448v40a8 8 0 008 8 8 8 0 008-8v-39.55c0-8.61 6.62-16 15.23-16.43A16 16 0 01320 448v40a8 8 0 008 8h10.88a32.09 32.09 0 0031.38-25.72l10-50.14a16 16 0 019.74-11.72l23.71-9.42A79.62 79.62 0 00464 324.67v-99c0-56-22-108.81-62-148.73zM171.66 335.88a56 56 0 1152.22-52.22 56 56 0 01-52.22 52.22zM281 397.25a16.37 16.37 0 01-9.3 2.75h-31.4a16.37 16.37 0 01-9.28-2.75 16 16 0 01-6.6-16.9l15.91-47.6C243 326 247.25 321 254 320.13c8.26-1 14 2.87 17.61 12.22l16 48a16 16 0 01-6.61 16.9zm66.68-61.37a56 56 0 1152.22-52.22 56 56 0 01-52.24 52.22z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/snow-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/snow-outline.svg deleted file mode 100644 index 993737b589de8761652b8ba31a3a2c227bc756c6..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/snow-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Snow</title><path stroke-linecap="round" stroke-linejoin="round" d="M256 32v448M313.72 80A111.47 111.47 0 01256 96a111.47 111.47 0 01-57.72-16M198.28 432a112.11 112.11 0 01115.44 0M449.99 144L62.01 368M437.27 218a112.09 112.09 0 01-57.71-100M74.73 294a112.09 112.09 0 0157.71 100M62.01 144l387.98 224M74.73 218a112.09 112.09 0 0057.71-100M437.27 294a112.09 112.09 0 00-57.71 100" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/snow-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/snow-sharp.svg deleted file mode 100644 index 49f89e2e0e3a1fc759f44a1a01504127e091cbb3..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/snow-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Snow</title><path d="M447.88 313.27l19.25-10.64-21.28-38.51-19.25 10.64a133.42 133.42 0 00-38.54 32.1L300 256l88.07-50.86a133.42 133.42 0 0038.54 32.1l19.25 10.64 21.28-38.51-19.25-10.64a89.27 89.27 0 01-20.93-16L480 152.05 458 114l-53 30.58a89.07 89.07 0 01-3.42-26.15l.41-22-44-.82-.41 22a133.62 133.62 0 008.49 49.39L278 217.89V116.18a133.52 133.52 0 0047.06-17.33L343.9 87.5l-22.71-37.69-18.84 11.35A89.5 89.5 0 01278 71.27V16h-44v55.27a89.5 89.5 0 01-24.35-10.11l-18.84-11.35L168.1 87.5l18.84 11.35A133.52 133.52 0 00234 116.18v101.71L145.93 167a133.62 133.62 0 008.53-49.43l-.41-22-44 .82.41 22a89.07 89.07 0 01-3.42 26.15L54 114l-22 38.1 53.05 30.64a89.27 89.27 0 01-20.93 16l-19.25 10.63 21.28 38.51 19.25-10.64a133.42 133.42 0 0038.54-32.1L212 256l-88.07 50.86a133.42 133.42 0 00-38.54-32.1l-19.24-10.64-21.28 38.51 19.25 10.64a89.27 89.27 0 0120.93 16L32 360l22 38.1 53.05-30.63a89.07 89.07 0 013.42 26.15l-.41 22 44 .82.41-22a133.62 133.62 0 00-8.54-49.44L234 294.11v101.71a133.52 133.52 0 00-47.06 17.33L168.1 424.5l22.71 37.69 18.84-11.35A89.5 89.5 0 01234 440.73V496h44v-55.27a89.5 89.5 0 0124.35 10.11l18.84 11.35 22.71-37.69-18.84-11.35A133.52 133.52 0 00278 395.82V294.11L366.07 345a133.62 133.62 0 00-8.53 49.43l.41 22 44-.82-.41-22a89.07 89.07 0 013.46-26.19l53 30.63L480 360l-53-30.69a89.27 89.27 0 0120.88-16.04z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/snow.svg b/ionic/platforms/android/app/src/main/assets/www/svg/snow.svg deleted file mode 100644 index 6214bd432be306583793290fab051ece3542126d..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/snow.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Snow</title><path d="M461 349l-34-19.64a89.53 89.53 0 0120.94-16 22 22 0 00-21.28-38.51 133.62 133.62 0 00-38.55 32.1L300 256l88.09-50.86a133.46 133.46 0 0038.55 32.1 22 22 0 1021.28-38.51 89.74 89.74 0 01-20.94-16l34-19.64A22 22 0 10439 125l-34 19.63a89.74 89.74 0 01-3.42-26.15A22 22 0 00380 96h-.41a22 22 0 00-22 21.59 133.61 133.61 0 008.5 49.41L278 217.89V116.18a133.5 133.5 0 0047.07-17.33 22 22 0 00-22.71-37.69A89.56 89.56 0 01278 71.27V38a22 22 0 00-44 0v33.27a89.56 89.56 0 01-24.36-10.11 22 22 0 10-22.71 37.69A133.5 133.5 0 00234 116.18v101.71L145.91 167a133.61 133.61 0 008.52-49.43 22 22 0 00-22-21.59H132a22 22 0 00-21.59 22.41 89.74 89.74 0 01-3.41 26.19L73 125a22 22 0 10-22 38.1l34 19.64a89.74 89.74 0 01-20.94 16 22 22 0 1021.28 38.51 133.62 133.62 0 0038.55-32.1L212 256l-88.09 50.86a133.62 133.62 0 00-38.55-32.1 22 22 0 10-21.28 38.51 89.74 89.74 0 0120.94 16L51 349a22 22 0 1022 38.1l34-19.63a89.74 89.74 0 013.42 26.15A22 22 0 00132 416h.41a22 22 0 0022-21.59 133.61 133.61 0 00-8.5-49.41L234 294.11v101.71a133.5 133.5 0 00-47.07 17.33 22 22 0 1022.71 37.69A89.56 89.56 0 01234 440.73V474a22 22 0 0044 0v-33.27a89.56 89.56 0 0124.36 10.11 22 22 0 0022.71-37.69A133.5 133.5 0 00278 395.82V294.11L366.09 345a133.61 133.61 0 00-8.52 49.43 22 22 0 0022 21.59h.43a22 22 0 0021.59-22.41 89.74 89.74 0 013.41-26.19l34 19.63A22 22 0 10461 349z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/speedometer-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/speedometer-outline.svg deleted file mode 100644 index 26c73662adb54e88d9f8089b699cd83793d58c7f..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/speedometer-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Speedometer</title><path d="M326.1 231.9l-47.5 75.5a31 31 0 01-7 7 30.11 30.11 0 01-35-49l75.5-47.5a10.23 10.23 0 0111.7 0 10.06 10.06 0 012.3 14z"/><path d="M256 64C132.3 64 32 164.2 32 287.9a223.18 223.18 0 0056.3 148.5c1.1 1.2 2.1 2.4 3.2 3.5a25.19 25.19 0 0037.1-.1 173.13 173.13 0 01254.8 0 25.19 25.19 0 0037.1.1l3.2-3.5A223.18 223.18 0 00480 287.9C480 164.2 379.7 64 256 64z" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-miterlimit="10" d="M256 128v32M416 288h-32M128 288H96M165.49 197.49l-22.63-22.63M346.51 197.49l22.63-22.63" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/speedometer-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/speedometer-sharp.svg deleted file mode 100644 index c0dd893640e5c085a8637698801460a3ab04de32..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/speedometer-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Speedometer</title><path d="M256 48C123.46 48 16 156.55 16 290.56a243.3 243.3 0 0060.32 160.87c1.18 1.3 2.25 2.6 3.43 3.79C89.2 464 92.07 464 99.57 464s12.43 0 19.93-8.88C152 416.64 202 400 256 400s104.07 16.71 136.5 55.12C400 464 404.82 464 412.43 464s11.3 0 19.82-8.78c1.22-1.25 2.25-2.49 3.43-3.79A243.3 243.3 0 00496 290.56C496 156.55 388.54 48 256 48zm-16 64h32v64h-32zm-96 192H80v-32h64zm21.49-83.88l-45.25-45.26 22.62-22.62 45.26 45.25zM278.6 307.4a31 31 0 01-7 7 30.11 30.11 0 01-35-49L320 224zm45.28-109.91l45.26-45.25 22.62 22.62-45.25 45.26zM432 304h-64v-32h64z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/speedometer.svg b/ionic/platforms/android/app/src/main/assets/www/svg/speedometer.svg deleted file mode 100644 index 955fadf92f83eac5e4ac10441b652c8f5f3babdd..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/speedometer.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Speedometer</title><path d="M425.7 118.25A240 240 0 0076.32 447l.18.2c.33.35.64.71 1 1.05.74.84 1.58 1.79 2.57 2.78a41.17 41.17 0 0060.36-.42 157.13 157.13 0 01231.26 0 41.18 41.18 0 0060.65.06l3.21-3.5.18-.2a239.93 239.93 0 00-10-328.76zM240 128a16 16 0 0132 0v32a16 16 0 01-32 0zM128 304H96a16 16 0 010-32h32a16 16 0 010 32zm48.8-95.2a16 16 0 01-22.62 0l-22.63-22.62a16 16 0 0122.63-22.63l22.62 22.63a16 16 0 010 22.62zm149.3 23.1l-47.5 75.5a31 31 0 01-7 7 30.11 30.11 0 01-35-49l75.5-47.5a10.23 10.23 0 0111.7 0 10.06 10.06 0 012.3 14zm31.72-23.1a16 16 0 01-22.62-22.62l22.62-22.63a16 16 0 0122.63 22.63zm65.88 227.6zM416 304h-32a16 16 0 010-32h32a16 16 0 010 32z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/square-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/square-outline.svg deleted file mode 100644 index e047dcdd11126f803cf75159b789b8cbca63d651..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/square-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Square</title><path d="M416 448H96a32.09 32.09 0 01-32-32V96a32.09 32.09 0 0132-32h320a32.09 32.09 0 0132 32v320a32.09 32.09 0 01-32 32z" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/square-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/square-sharp.svg deleted file mode 100644 index 5875442aec499168a2390e010a7b3e214cee0fc9..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/square-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Square</title><path d="M48 48h416v416H48z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/square.svg b/ionic/platforms/android/app/src/main/assets/www/svg/square.svg deleted file mode 100644 index 958c04a2706ed5348a22d5fab5147949b811e4c3..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/square.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Square</title><path d="M416 464H96a48.05 48.05 0 01-48-48V96a48.05 48.05 0 0148-48h320a48.05 48.05 0 0148 48v320a48.05 48.05 0 01-48 48z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/star-half-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/star-half-outline.svg deleted file mode 100644 index 94f8b78b96ffe7163e4789099f526c710aec0beb..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/star-half-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Star Half</title><path d="M480 208H308L256 48l-52 160H32l140 96-54 160 138-100 138 100-54-160z" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M256 48v316L118 464l54-160-140-96h172l52-160z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/star-half-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/star-half-sharp.svg deleted file mode 100644 index 8968a0a14ceb5cd460da56731d74c9474311b1df..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/star-half-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Star Half</title><path d="M496 203.3H312.36L256 32l-56.36 171.3H16l150.21 105.4-58.5 171.3L256 373.84 404.29 480l-58.61-171.3zM274.63 347.82L256 334.49v-200.1l26 78.91 7.24 22h105.39l-67.32 47.2-19.69 13.81 7.78 22.75 26.26 76.75z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/star-half.svg b/ionic/platforms/android/app/src/main/assets/www/svg/star-half.svg deleted file mode 100644 index 94f8b78b96ffe7163e4789099f526c710aec0beb..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/star-half.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Star Half</title><path d="M480 208H308L256 48l-52 160H32l140 96-54 160 138-100 138 100-54-160z" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M256 48v316L118 464l54-160-140-96h172l52-160z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/star-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/star-outline.svg deleted file mode 100644 index 6e7bd7dc82faede1c2ff788182d44bbd7acba332..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/star-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Star</title><path d="M480 208H308L256 48l-52 160H32l140 96-54 160 138-100 138 100-54-160z" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/star-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/star-sharp.svg deleted file mode 100644 index 08e663148b2d7584776068126de5af0874092635..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/star-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Star</title><path d="M496 203.3H312.36L256 32l-56.36 171.3H16l150.21 105.4-58.5 171.3L256 373.84 404.29 480l-58.61-171.3z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/star.svg b/ionic/platforms/android/app/src/main/assets/www/svg/star.svg deleted file mode 100644 index 8a1b834ceaa239aa6c2e9288f3cd66006b382edb..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/star.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Star</title><path d="M394 480a16 16 0 01-9.39-3L256 383.76 127.39 477a16 16 0 01-24.55-18.08L153 310.35 23 221.2a16 16 0 019-29.2h160.38l48.4-148.95a16 16 0 0130.44 0l48.4 149H480a16 16 0 019.05 29.2L359 310.35l50.13 148.53A16 16 0 01394 480z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/stats-chart-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/stats-chart-outline.svg deleted file mode 100644 index af81023395fe3b7d82f9d983abcdc8898c8decc7..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/stats-chart-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Stats Chart</title><rect x="64" y="320" width="48" height="160" rx="8" ry="8" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><rect x="288" y="224" width="48" height="256" rx="8" ry="8" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><rect x="400" y="112" width="48" height="368" rx="8" ry="8" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><rect x="176" y="32" width="48" height="448" rx="8" ry="8" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/stats-chart-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/stats-chart-sharp.svg deleted file mode 100644 index 41c51374d3b889e028e7a21a0595c5728a996329..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/stats-chart-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Stats Chart</title><path d="M128 496H48V304h80zM352 496h-80V208h80zM464 496h-80V96h80zM240 496h-80V16h80z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/stats-chart.svg b/ionic/platforms/android/app/src/main/assets/www/svg/stats-chart.svg deleted file mode 100644 index 40f227ea89fc0a740b25fe23611729bd3a43488b..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/stats-chart.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Stats Chart</title><path d="M104 496H72a24 24 0 01-24-24V328a24 24 0 0124-24h32a24 24 0 0124 24v144a24 24 0 01-24 24zM328 496h-32a24 24 0 01-24-24V232a24 24 0 0124-24h32a24 24 0 0124 24v240a24 24 0 01-24 24zM440 496h-32a24 24 0 01-24-24V120a24 24 0 0124-24h32a24 24 0 0124 24v352a24 24 0 01-24 24zM216 496h-32a24 24 0 01-24-24V40a24 24 0 0124-24h32a24 24 0 0124 24v432a24 24 0 01-24 24z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/stop-circle-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/stop-circle-outline.svg deleted file mode 100644 index f4ae5a9b6f116725887b41b042ef560d1bebfd3a..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/stop-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Stop Circle</title><path d="M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><path d="M310.4 336H201.6a25.62 25.62 0 01-25.6-25.6V201.6a25.62 25.62 0 0125.6-25.6h108.8a25.62 25.62 0 0125.6 25.6v108.8a25.62 25.62 0 01-25.6 25.6z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/stop-circle-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/stop-circle-sharp.svg deleted file mode 100644 index d3b448048a863be97698b42e895371d6dbc4988b..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/stop-circle-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Stop Circle</title><path d="M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm80 288H176V176h160z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/stop-circle.svg b/ionic/platforms/android/app/src/main/assets/www/svg/stop-circle.svg deleted file mode 100644 index 37d7dc6a1a96d9f71da9d7584e63d4b52a55b225..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/stop-circle.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Stop Circle</title><path d="M256 48C141.31 48 48 141.31 48 256s93.31 208 208 208 208-93.31 208-208S370.69 48 256 48zm80 262.4a25.62 25.62 0 01-25.6 25.6H201.6a25.62 25.62 0 01-25.6-25.6V201.6a25.62 25.62 0 0125.6-25.6h108.8a25.62 25.62 0 0125.6 25.6z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/stop-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/stop-outline.svg deleted file mode 100644 index c18fe27beb03683a752649b7a643a9cd74dce639..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/stop-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Stop</title><rect x="96" y="96" width="320" height="320" rx="24" ry="24" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/stop-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/stop-sharp.svg deleted file mode 100644 index 045d338e434f207bdbe97bb7605c5d42c3b1a40a..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/stop-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Stop</title><path d="M80 80h352v352H80z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/stop.svg b/ionic/platforms/android/app/src/main/assets/www/svg/stop.svg deleted file mode 100644 index 08645ff5a3e0553b839541f75fa6517caae1bda7..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/stop.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Stop</title><path d="M392 432H120a40 40 0 01-40-40V120a40 40 0 0140-40h272a40 40 0 0140 40v272a40 40 0 01-40 40z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/stopwatch-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/stopwatch-outline.svg deleted file mode 100644 index d87c17e7493a2facf2a4daf5f4410cb725ea708c..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/stopwatch-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Stopwatch</title><path stroke-linecap="round" stroke-linejoin="round" d="M256 232v-80" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-linejoin="round" stroke-width="48" d="M256 88V72M132 132l-12-12" class="ionicon-fill-none"/><circle cx="256" cy="272" r="32" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><path d="M256 96a176 176 0 10176 176A176 176 0 00256 96z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/stopwatch-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/stopwatch-sharp.svg deleted file mode 100644 index c8a6d05309bf6d7a51a7a05a2e77733ac79567de..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/stopwatch-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Stopwatch</title><path d="M280 81.5V48h-48v33.5a191 191 0 00-84.43 32.13L120 86l-34 34 25.59 25.59A191.17 191.17 0 0064 272c0 105.87 86.13 192 192 192s192-86.13 192-192c0-97.74-73.42-178.66-168-190.5zM256 320a48 48 0 01-16-93.25V136h32v90.75A48 48 0 01256 320z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/stopwatch.svg b/ionic/platforms/android/app/src/main/assets/www/svg/stopwatch.svg deleted file mode 100644 index 624503e3f3cd75f6fe70ae1fee6304bbfb9a4218..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/stopwatch.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Stopwatch</title><circle cx="256" cy="272" r="16"/><path d="M280 81.5V72a24 24 0 00-48 0v9.5a191 191 0 00-84.43 32.13L137 103a24 24 0 00-34 34l8.6 8.6A191.17 191.17 0 0064 272c0 105.87 86.13 192 192 192s192-86.13 192-192c0-97.74-73.42-178.66-168-190.5zM256 320a48 48 0 01-16-93.25V152a16 16 0 0132 0v74.75A48 48 0 01256 320z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/storefront-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/storefront-outline.svg deleted file mode 100644 index c512e161e8cdf38dc098b5c5496c54fc3def9c06..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/storefront-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Storefront</title><path stroke-linecap="round" stroke-linejoin="round" d="M448 448V240M64 240v208M382.47 48H129.53c-21.79 0-41.47 12-49.93 30.46L36.3 173c-14.58 31.81 9.63 67.85 47.19 69h2c31.4 0 56.85-25.18 56.85-52.23 0 27 25.46 52.23 56.86 52.23s56.8-23.38 56.8-52.23c0 27 25.45 52.23 56.85 52.23s56.86-23.38 56.86-52.23c0 28.85 25.45 52.23 56.85 52.23h1.95c37.56-1.17 61.77-37.21 47.19-69l-43.3-94.54C423.94 60 404.26 48 382.47 48zM32 464h448M136 288h80a24 24 0 0124 24v88h0-128 0v-88a24 24 0 0124-24zM288 464V312a24 24 0 0124-24h64a24 24 0 0124 24v152" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/storefront-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/storefront-sharp.svg deleted file mode 100644 index 5658be23f21f51ec0599c902c39d57b27b0362f5..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/storefront-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Storefront</title><path d="M464 448V267.85a104.76 104.76 0 01-33.56 6.58c-1.18 0-2.3.05-3.4.05a108 108 0 01-56.86-16 108 108 0 01-56.85 16 106.16 106.16 0 01-56.51-16.2 107.84 107.84 0 01-57.2 16.2 106.14 106.14 0 01-56.85-16.42 106.14 106.14 0 01-56.85 16.42c-1.09 0-2.19 0-3.37-.05h-.06A104.66 104.66 0 0148 267.49V448H16v32h480v-32zm-240-64h-96v-76a4 4 0 014-4h88a4 4 0 014 4zm160 64h-80V308a4 4 0 014-4h72a4 4 0 014 4zM492.57 170.28L445.89 64C432 32 432 32 400 32H112c-32 0-32 0-45.94 32L19.38 170.28c-9 19.41 2.89 39.34 2.9 39.35l.41.66c.42.66 1.13 1.75 1.62 2.37.1.13.19.27.28.4l5.24 6.39 5.31 5.14.42.36a69.65 69.65 0 009.44 6.78v.05a74 74 0 0036 10.67h2.47a76.08 76.08 0 0051.89-20.31 72.38 72.38 0 005.77-6 74.18 74.18 0 005.78 6 76.08 76.08 0 0051.89 20.31c23.28 0 44.07-10 57.63-25.56a.11.11 0 01.15 0l5.66 5.26a76.09 76.09 0 0051.9 20.31c23.29 0 44.11-10 57.66-25.61 13.56 15.61 34.37 25.61 57.67 25.61h2.49a71.35 71.35 0 0035-10.7c.95-.57 1.86-1.17 2.78-1.77A71.33 71.33 0 00488 212.17l2-3c.9-2.04 11.21-20.3 2.57-38.89z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/storefront.svg b/ionic/platforms/android/app/src/main/assets/www/svg/storefront.svg deleted file mode 100644 index 8ff2f900dc9e2bb88ab4ced7cecc1f700e084c78..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/storefront.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Storefront</title><path d="M480 448h-12a4 4 0 01-4-4V273.51a4 4 0 00-5.24-3.86 104.92 104.92 0 01-28.32 4.78c-1.18 0-2.3.05-3.4.05a108.22 108.22 0 01-52.85-13.64 8.23 8.23 0 00-8 0 108.18 108.18 0 01-52.84 13.64 106.11 106.11 0 01-52.46-13.79 8.21 8.21 0 00-8.09 0 108.14 108.14 0 01-53.16 13.8 106.19 106.19 0 01-52.77-14 8.25 8.25 0 00-8.16 0 106.19 106.19 0 01-52.77 14c-1.09 0-2.19 0-3.37-.05h-.06a104.91 104.91 0 01-29.28-5.09 4 4 0 00-5.23 3.8V444a4 4 0 01-4 4H32.5c-8.64 0-16.1 6.64-16.48 15.28A16 16 0 0032 480h447.5c8.64 0 16.1-6.64 16.48-15.28A16 16 0 00480 448zm-256-68a4 4 0 01-4 4h-88a4 4 0 01-4-4v-64a12 12 0 0112-12h72a12 12 0 0112 12zm156 68h-72a4 4 0 01-4-4V316a12 12 0 0112-12h56a12 12 0 0112 12v128a4 4 0 01-4 4zM492.57 170.28l-42.92-98.49C438.41 47.62 412.74 32 384.25 32H127.7c-28.49 0-54.16 15.62-65.4 39.79l-42.92 98.49c-9 19.41 2.89 39.34 2.9 39.35l.28.45c.49.78 1.36 2 1.89 2.78.05.06.09.13.14.2l5 6.05a7.45 7.45 0 00.6.65l5 4.83.42.36a69.65 69.65 0 009.39 6.78v.05a74 74 0 0036 10.67h2.47a76.08 76.08 0 0051.89-20.31l.33-.31a7.94 7.94 0 0110.89 0l.33.31a77.3 77.3 0 00104.46 0 8 8 0 0110.87 0 77.31 77.31 0 00104.21.23 7.88 7.88 0 0110.71 0 76.81 76.81 0 0052.31 20.08h2.49a71.35 71.35 0 0035-10.7c.95-.57 1.86-1.17 2.78-1.77A71.33 71.33 0 00488 212.17l1.74-2.63q.26-.4.48-.84c1.66-3.38 10.56-20.76 2.35-38.42z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/subway-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/subway-outline.svg deleted file mode 100644 index ecf1244a6c3c9f5b78f188aa7207e26f17b4182b..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/subway-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Subway</title><rect x="112" y="32" width="288" height="352" rx="48" ry="48" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-linejoin="round" d="M208 80h96" class="ionicon-fill-none ionicon-stroke-width"/><rect x="112" y="128" width="288" height="96" rx="32" ry="32" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="176" cy="320" r="16" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="336" cy="320" r="16" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-linejoin="round" d="M144 464h224M336 432l48 48M176 432l-48 48" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/subway-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/subway-sharp.svg deleted file mode 100644 index 0876f7a4796e23edb5c99932063119b84bc03f1a..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/subway-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Subway</title><path d="M392 16H120a24 24 0 00-24 24v336a24 24 0 0024 24h272a24 24 0 0024-24V40a24 24 0 00-24-24zM208 64h95.55c8.61 0 16 6.62 16.43 15.23A16 16 0 01304 96h-95.55c-8.61 0-16-6.62-16.43-15.23A16 16 0 01208 64zm-28.53 287.82a32 32 0 1128.35-28.35 32 32 0 01-28.35 28.35zm160 0a32 32 0 1128.35-28.35 32 32 0 01-28.35 28.35zM384 144v64H128v-64zM298 416l31.37 32H182.63L214 416h-44l-80.57 80h45.2l16-16h210.74l16 16h45.3L343 416h-45z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/subway.svg b/ionic/platforms/android/app/src/main/assets/www/svg/subway.svg deleted file mode 100644 index a8884cb8af0b9fd201ec1f7e3121ce839bc8a2bf..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/subway.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Subway</title><path d="M352 16H160a64.07 64.07 0 00-64 64v256a64.07 64.07 0 0064 64h192a64.07 64.07 0 0064-64V80a64.07 64.07 0 00-64-64zM208 64h96a16 16 0 010 32h-96a16 16 0 010-32zm-32 288a32 32 0 1132-32 32 32 0 01-32 32zm160 0a32 32 0 1132-32 32 32 0 01-32 32zm48-160a16 16 0 01-16 16H144a16 16 0 01-16-16v-32a16 16 0 0116-16h224a16 16 0 0116 16zM347.31 420.69a16 16 0 00-22.62 22.62l4.68 4.69H182.63l4.68-4.69a16 16 0 00-22.62-22.62l-48 48a16 16 0 1022.62 22.62L150.63 480h210.74l11.32 11.31a16 16 0 0022.62-22.62z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/sunny-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/sunny-outline.svg deleted file mode 100644 index 37ecf1898aecfe26a191a6a34afe16236c73b6a0..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/sunny-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Sunny</title><path stroke-linecap="round" stroke-miterlimit="10" d="M256 48v48M256 416v48M403.08 108.92l-33.94 33.94M142.86 369.14l-33.94 33.94M464 256h-48M96 256H48M403.08 403.08l-33.94-33.94M142.86 142.86l-33.94-33.94" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="256" cy="256" r="80" stroke-linecap="round" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/sunny-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/sunny-sharp.svg deleted file mode 100644 index b00a104d0ad45f9b7fe116ab3ed68e27d01743b7..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/sunny-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Sunny</title><path d="M234 26h44v92h-44zM234 394h44v92h-44zM338.025 142.857l65.054-65.054 31.113 31.113-65.054 65.054zM77.815 403.074l65.054-65.054 31.113 31.113-65.054 65.054zM394 234h92v44h-92zM26 234h92v44H26zM338.029 369.14l31.112-31.113 65.054 65.054-31.112 31.112zM77.802 108.92l31.113-31.113 65.054 65.054-31.113 31.112zM256 358a102 102 0 11102-102 102.12 102.12 0 01-102 102z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/sunny.svg b/ionic/platforms/android/app/src/main/assets/www/svg/sunny.svg deleted file mode 100644 index 2b8b16bfe992261b6d284cda1e242821ef23fe50..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/sunny.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Sunny</title><path d="M256 118a22 22 0 01-22-22V48a22 22 0 0144 0v48a22 22 0 01-22 22zM256 486a22 22 0 01-22-22v-48a22 22 0 0144 0v48a22 22 0 01-22 22zM369.14 164.86a22 22 0 01-15.56-37.55l33.94-33.94a22 22 0 0131.11 31.11l-33.94 33.94a21.93 21.93 0 01-15.55 6.44zM108.92 425.08a22 22 0 01-15.55-37.56l33.94-33.94a22 22 0 1131.11 31.11l-33.94 33.94a21.94 21.94 0 01-15.56 6.45zM464 278h-48a22 22 0 010-44h48a22 22 0 010 44zM96 278H48a22 22 0 010-44h48a22 22 0 010 44zM403.08 425.08a21.94 21.94 0 01-15.56-6.45l-33.94-33.94a22 22 0 0131.11-31.11l33.94 33.94a22 22 0 01-15.55 37.56zM142.86 164.86a21.89 21.89 0 01-15.55-6.44l-33.94-33.94a22 22 0 0131.11-31.11l33.94 33.94a22 22 0 01-15.56 37.55zM256 358a102 102 0 11102-102 102.12 102.12 0 01-102 102z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/swap-horizontal-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/swap-horizontal-outline.svg deleted file mode 100644 index d053fad2722a7587d44061f84feefe424ffc6c3f..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/swap-horizontal-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Swap Horizontal</title><path stroke-linecap="round" stroke-linejoin="round" d="M304 48l112 112-112 112M398.87 160H96M208 464L96 352l112-112M114 352h302" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/swap-horizontal-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/swap-horizontal-sharp.svg deleted file mode 100644 index 3c7af10f7e5ba36a7e6181fba1b8b455dad20d56..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/swap-horizontal-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Swap Horizontal</title><path stroke-linecap="square" stroke-miterlimit="10" d="M304 48l112 112-112 112M398.87 160H96M208 464L96 352l112-112M114 352h302" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/swap-horizontal.svg b/ionic/platforms/android/app/src/main/assets/www/svg/swap-horizontal.svg deleted file mode 100644 index d053fad2722a7587d44061f84feefe424ffc6c3f..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/swap-horizontal.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Swap Horizontal</title><path stroke-linecap="round" stroke-linejoin="round" d="M304 48l112 112-112 112M398.87 160H96M208 464L96 352l112-112M114 352h302" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/swap-vertical-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/swap-vertical-outline.svg deleted file mode 100644 index a81d25ce376d710c8c190af270c915c8802beed2..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/swap-vertical-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Swap Vertical</title><path stroke-linecap="round" stroke-linejoin="round" d="M464 208L352 96 240 208M352 113.13V416M48 304l112 112 112-112M160 398V96" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/swap-vertical-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/swap-vertical-sharp.svg deleted file mode 100644 index a61eeeb28abcf6b9d9cc1ccd287a8a5e8d939224..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/swap-vertical-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Swap Vertical</title><path stroke-linecap="square" stroke-miterlimit="10" d="M464 208L352 96 240 208M352 113.13V416M48 304l112 112 112-112M160 398V96" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/swap-vertical.svg b/ionic/platforms/android/app/src/main/assets/www/svg/swap-vertical.svg deleted file mode 100644 index a81d25ce376d710c8c190af270c915c8802beed2..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/swap-vertical.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Swap Vertical</title><path stroke-linecap="round" stroke-linejoin="round" d="M464 208L352 96 240 208M352 113.13V416M48 304l112 112 112-112M160 398V96" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/sync-circle-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/sync-circle-outline.svg deleted file mode 100644 index e6d11d8a65db21b3d9c4c124dbed574fddb00fa0..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/sync-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Sync Circle</title><path d="M448 256c0-106-86-192-192-192S64 150 64 256s86 192 192 192 192-86 192-192z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><path d="M351.82 271.87v-16A96.15 96.15 0 00184.09 192m-24.2 48.17v16A96.22 96.22 0 00327.81 320" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-linejoin="round" d="M135.87 256l23.59-23.6 24.67 23.6M376.13 256l-23.59 23.6-24.67-23.6" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/sync-circle-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/sync-circle-sharp.svg deleted file mode 100644 index 37659ce20dfbbbe5eba69d13f046e6c5ca58f040..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/sync-circle-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Sync Circle</title><path d="M256 48C141.13 48 48 141.13 48 256s93.13 208 208 208 208-93.13 208-208S370.87 48 256 48zm0 320a112.19 112.19 0 01-111.27-98.23l-8.86 8.86L113.24 256l46-46 47.55 45.48-22.12 23.12-7.2-6.88a80.26 80.26 0 00138.48 37.5l23.77 21.41A112.82 112.82 0 01256 368zm96.79-66l-47.55-45.5 22.12-23.12 6.86 6.55A80.2 80.2 0 00196 202.64l-23.82-21.37A112.18 112.18 0 01367 242.49l9.11-9.12L398.76 256z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/sync-circle.svg b/ionic/platforms/android/app/src/main/assets/www/svg/sync-circle.svg deleted file mode 100644 index e04378274fc811135a8de73bdd76d05cbd16cdf5..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/sync-circle.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Sync Circle</title><path d="M256 48C141.13 48 48 141.13 48 256s93.13 208 208 208 208-93.13 208-208S370.87 48 256 48zm83.69 282.65a112.24 112.24 0 01-195-61.29 16 16 0 01-20.13-24.67l23.6-23.6a16 16 0 0122.37-.25l24.67 23.6a16 16 0 01-18 26 80.25 80.25 0 00138.72 38.83 16 16 0 0123.77 21.41zm47.76-63.34l-23.6 23.6a16 16 0 01-22.37.25l-24.67-23.6a16 16 0 0117.68-26.11A80.17 80.17 0 00196 202.64a16 16 0 11-23.82-21.37 112.17 112.17 0 01194.88 61.57 16 16 0 0120.39 24.47z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/sync-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/sync-outline.svg deleted file mode 100644 index fafb9b819eb1d77fc80adace299a20a2c75fa9e1..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/sync-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Sync</title><path d="M434.67 285.59v-29.8c0-98.73-80.24-178.79-179.2-178.79a179 179 0 00-140.14 67.36m-38.53 82v29.8C76.8 355 157 435 256 435a180.45 180.45 0 00140-66.92" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-linejoin="round" d="M32 256l44-44 46 44M480 256l-44 44-46-44" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/sync-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/sync-sharp.svg deleted file mode 100644 index 7742a3a4c31bdc50370ec369a6eb503f117bbd5c..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/sync-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Sync</title><path d="M434.67 285.59v-29.8c0-98.73-80.24-178.79-179.2-178.79a179 179 0 00-140.14 67.36m-38.53 82v29.8C76.8 355 157 435 256 435a180.45 180.45 0 00140-66.92" stroke-linecap="square" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="square" stroke-miterlimit="10" d="M32 256l44-44 46 44M480 256l-44 44-46-44" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/sync.svg b/ionic/platforms/android/app/src/main/assets/www/svg/sync.svg deleted file mode 100644 index fafb9b819eb1d77fc80adace299a20a2c75fa9e1..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/sync.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Sync</title><path d="M434.67 285.59v-29.8c0-98.73-80.24-178.79-179.2-178.79a179 179 0 00-140.14 67.36m-38.53 82v29.8C76.8 355 157 435 256 435a180.45 180.45 0 00140-66.92" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-linejoin="round" d="M32 256l44-44 46 44M480 256l-44 44-46-44" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/tablet-landscape-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/tablet-landscape-outline.svg deleted file mode 100644 index 0e8316136d720ed193eaf9dd05f93dc5cc690bd4..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/tablet-landscape-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Tablet Landscape</title><rect x="80" y="16" width="352" height="480" rx="48" ry="48" transform="rotate(-90 256 256)" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/tablet-landscape-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/tablet-landscape-sharp.svg deleted file mode 100644 index 526e1b90ebfad8b0038e3d99e6a3dccfdacbcadc..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/tablet-landscape-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Tablet Landscape</title><path d="M0 82v348a18 18 0 0018 18h476a18 18 0 0018-18V82a18 18 0 00-18-18H18A18 18 0 000 82zm448 330H64V100h384z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/tablet-landscape.svg b/ionic/platforms/android/app/src/main/assets/www/svg/tablet-landscape.svg deleted file mode 100644 index f98df63de78b244e7ce833e7b354f93b17b8801d..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/tablet-landscape.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Tablet Landscape</title><path d="M512 128v256a64.07 64.07 0 01-64 64H64a64.07 64.07 0 01-64-64V128a64.07 64.07 0 0164-64h384a64.07 64.07 0 0164 64zM32 384a32 32 0 0032 32h384a32 32 0 0032-32V128a32 32 0 00-32-32H64a32 32 0 00-32 32z"/><path d="M0 128a64.07 64.07 0 0164-64h384a64.07 64.07 0 0164 64v256a64.07 64.07 0 01-64 64H64a64.07 64.07 0 01-64-64V128m480 256V128a32 32 0 00-32-32H64a32 32 0 00-32 32v256a32 32 0 0032 32h384a32 32 0 0032-32m-16 0a16 16 0 01-16 16H64a16 16 0 01-16-16V128a16 16 0 0116-16h384a16 16 0 0116 16v256z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/tablet-portrait-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/tablet-portrait-outline.svg deleted file mode 100644 index 26bd9dca9431b2d60b573322b1b7f8fdcdddd64d..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/tablet-portrait-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Tablet Portrait</title><rect x="80" y="16" width="352" height="480" rx="48" ry="48" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/tablet-portrait-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/tablet-portrait-sharp.svg deleted file mode 100644 index 0289d63394970dedfd635b736a85216a2174dc83..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/tablet-portrait-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Tablet Portrait</title><path d="M430 0H82a18 18 0 00-18 18v476a18 18 0 0018 18h348a18 18 0 0018-18V18a18 18 0 00-18-18zM100 448V64h312v384z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/tablet-portrait.svg b/ionic/platforms/android/app/src/main/assets/www/svg/tablet-portrait.svg deleted file mode 100644 index 03e91a7a555a0f2fba8de49b1a281781ec1072fb..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/tablet-portrait.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Tablet Portrait</title><path d="M384 512H128a64.07 64.07 0 01-64-64V64a64.07 64.07 0 0164-64h256a64.07 64.07 0 0164 64v384a64.07 64.07 0 01-64 64zM128 32a32 32 0 00-32 32v384a32 32 0 0032 32h256a32 32 0 0032-32V64a32 32 0 00-32-32z"/><path d="M384 0a64.07 64.07 0 0164 64v384a64.07 64.07 0 01-64 64H128a64.07 64.07 0 01-64-64V64a64.07 64.07 0 0164-64h256M128 480h256a32 32 0 0032-32V64a32 32 0 00-32-32H128a32 32 0 00-32 32v384a32 32 0 0032 32m0-16a16 16 0 01-16-16V64a16 16 0 0116-16h256a16 16 0 0116 16v384a16 16 0 01-16 16z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/telescope-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/telescope-outline.svg deleted file mode 100644 index 9b0b63e8dd97fbb29ba47f51f90d1c165374ae38..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/telescope-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Telescope</title><path stroke-linecap="round" stroke-linejoin="round" d="M39.93 327.56l-4.71-8.13A24 24 0 0144 286.64l86.87-50.07a16 16 0 0121.89 5.86l12.71 22a16 16 0 01-5.86 21.85l-86.85 50.07a24.06 24.06 0 01-32.83-8.79z" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-linejoin="round" d="M170.68 273.72L147.12 233a24 24 0 018.8-32.78l124.46-71.75a16 16 0 0121.89 5.86l31.57 54.59a16 16 0 01-5.84 21.84L203.51 282.5a24 24 0 01-32.83-8.78zM341.85 202.21l-46.51-80.43a24 24 0 018.8-32.78l93.29-53.78A24.07 24.07 0 01430.27 44l46.51 80.43a24 24 0 01-8.8 32.79L374.69 211a24.06 24.06 0 01-32.84-8.79zM127.59 480l96.14-207.99M271.8 256.02L368.55 448" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/telescope-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/telescope-sharp.svg deleted file mode 100644 index b3c30e3ac8fab3e003d5b5d81ec8cc85ee722261..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/telescope-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Telescope</title><path d="M1.41 292.9l44.82 76.97 98.14-56.38-44.73-77.37L1.41 292.9z"/><path d="M287.87 252.34l23.67-13.81-63.42-110-132.92 77C133.75 237.51 176 310 176 310l15.53-8.32c.24-.13.55 0 .83 0L102.65 496h35.16l99.05-214.25 23.24-13.4L358 464h36zM262.08 96c24.81 42.23 60.25 104.25 86.4 148.76L510.79 151 424.07 1.41z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/telescope.svg b/ionic/platforms/android/app/src/main/assets/www/svg/telescope.svg deleted file mode 100644 index 64f6bc51c2c71533ac3e1806ab9020c6a55697f5..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/telescope.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Telescope</title><path d="M107.56 250a16 16 0 00-21.85-5.86L36 272.81a39.71 39.71 0 00-18.8 24.91 40.9 40.9 0 004.55 30.35l4.36 7.54a40 40 0 0054.62 14.62l49.67-28.63a16 16 0 005.87-21.86z"/><path d="M382.84 440.8L288.72 254a2 2 0 01.79-2.63l8.3-4.79a16 16 0 005.86-21.86l-47.53-82.33a16 16 0 00-21.86-5.87l-86.38 49.8a39.73 39.73 0 00-18.65 24.28 34.82 34.82 0 00-1.37 9.76c.06 7.6 9.2 22.7 18.12 38.28 9.59 16.75 19.24 33.88 26.34 38.15 4.52 2.72 12.5 4.9 19.21 4.9h.84l-79.32 171.6a16 16 0 1029.05 13.42l93.68-202.65a7.94 7.94 0 013.26-3.57l19.21-11.08a2 2 0 012.78.84l93.21 185a16 16 0 0028.58-14.4zM490.21 115.74L444.09 36a40.08 40.08 0 00-54.63-14.62l-93.34 53.78a39.69 39.69 0 00-18.65 24.28 32.76 32.76 0 00-1.27 13.25c1.74 12.62 13 30.4 26.41 53.89 13.58 23.73 28.91 50.48 36.93 56.27a40.18 40.18 0 0023.18 7.37 39.77 39.77 0 0019.92-5.34L476 171.07a39.72 39.72 0 0018.79-24.84 41 41 0 00-4.58-30.49z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/tennisball-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/tennisball-outline.svg deleted file mode 100644 index 8384c4de736771941bf9963609fb0980473a24a1..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/tennisball-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Tennisball</title><circle cx="256" cy="256" r="208" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M461.43 271.44c-5.09.37-8.24.56-13.43.56-114.88 0-208-93.12-208-208 0-5.37.2-8.69.6-14M49.65 240.56S58.84 240 64 240c114.88 0 208 93.12 208 208 0 5.38-.61 14-.61 14" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/tennisball-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/tennisball-sharp.svg deleted file mode 100644 index 79d84080b55c2e6f25cf13c5c734045174f4ec1b..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/tennisball-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Tennisball</title><path d="M246.4 480a181 181 0 003.22-22.86c.35-4.61.53-9.31.53-14 0-100-81.34-181.32-181.32-181.32A181.72 181.72 0 0032 265.61 224.2 224.2 0 00246.4 480z"/><path d="M284.63 227.37A222.73 222.73 0 01219 68.83a227.09 227.09 0 012.62-34.42A224.41 224.41 0 0034.41 221.58 227.09 227.09 0 0168.83 219a222.73 222.73 0 01158.54 65.67A222.73 222.73 0 01293 443.17c0 5.74-.22 11.54-.65 17.23s-1.11 11.51-2 17.2a224.42 224.42 0 00187.24-187.18 227.09 227.09 0 01-34.42 2.58 222.73 222.73 0 01-158.54-65.63z"/><path d="M443.17 250.15a181.72 181.72 0 0036.83-3.76A224.2 224.2 0 00265.61 32a181.72 181.72 0 00-3.76 36.83c0 99.98 81.34 181.32 181.32 181.32z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/tennisball.svg b/ionic/platforms/android/app/src/main/assets/www/svg/tennisball.svg deleted file mode 100644 index 727ccc95b5a2499a906af10729f4792bb5b44a04..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/tennisball.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Tennisball</title><path d="M448 256a192.55 192.55 0 0032-2.68A224 224 0 00258.68 32 192.55 192.55 0 00256 64c0 105.87 86.13 192 192 192zM253.35 480c.94-5.67 1.65-11.4 2.09-17.18.37-4.88.56-9.86.56-14.79 0-105.87-86.13-192-192-192a192.55 192.55 0 00-32 2.68A224 224 0 00253.35 480z"/><path d="M289.61 222.39A222.53 222.53 0 01224 64a226.07 226.07 0 012-30A224.1 224.1 0 0034 226a226.07 226.07 0 0130-2 222.53 222.53 0 01158.39 65.61A222.53 222.53 0 01288 448c0 5.74-.22 11.53-.65 17.22q-.5 6.42-1.36 12.79A224.12 224.12 0 00478 286a226.07 226.07 0 01-30 2 222.53 222.53 0 01-158.39-65.61z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/terminal-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/terminal-outline.svg deleted file mode 100644 index 2a2aa069f8a56db6090628107a3c0a2b3b510606..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/terminal-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Terminal</title><rect x="32" y="48" width="448" height="416" rx="48" ry="48" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-linejoin="round" d="M96 112l80 64-80 64M192 240h64" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/terminal-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/terminal-sharp.svg deleted file mode 100644 index ee5bd4f4020181ee38e6da1b1af588c50cdf0326..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/terminal-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Terminal</title><path d="M16 44v424a12 12 0 0012 12h456a12 12 0 0012-12V44a12 12 0 00-12-12H28a12 12 0 00-12 12zm57.51 193.5l76.88-61.5-76.88-61.5 20-25 108.1 86.5L93.5 262.49zM272 256h-96v-32h96z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/terminal.svg b/ionic/platforms/android/app/src/main/assets/www/svg/terminal.svg deleted file mode 100644 index d5840da2c758d8a5f9f2124e0b499620fa30b998..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/terminal.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Terminal</title><path d="M432 32H80a64.07 64.07 0 00-64 64v320a64.07 64.07 0 0064 64h352a64.07 64.07 0 0064-64V96a64.07 64.07 0 00-64-64zM96 256a16 16 0 01-10-28.49L150.39 176 86 124.49a16 16 0 1120-25l80 64a16 16 0 010 25l-80 64A16 16 0 0196 256zm160 0h-64a16 16 0 010-32h64a16 16 0 010 32z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/text-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/text-outline.svg deleted file mode 100644 index 4a00cedd97237b76d19fc89ecc685d062eb75d45..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/text-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Text</title><path stroke-linecap="round" stroke-linejoin="round" d="M32 415.5l120-320 120 320M230 303.5H74M326 239.5c12.19-28.69 41-48 74-48h0c46 0 80 32 80 80v144" class="ionicon-fill-none ionicon-stroke-width"/><path d="M320 358.5c0 36 26.86 58 60 58 54 0 100-27 100-106v-15c-20 0-58 1-92 5-32.77 3.86-68 19-68 58z" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/text-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/text-sharp.svg deleted file mode 100644 index a1e7d9fd32e47dd60de0b0f6328bc2e447786fac..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/text-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Text</title><path d="M404.42 170c-41.23 0-78.07 24.06-93.85 61.3L304 246.52l40.33 17.18 6.56-15.22c8.9-21 29.91-34.55 53.53-34.55 34.55 0 57.76 23.27 57.76 57.91v2.3c-22.12.59-48.65 2.05-72.27 4.84-54.52 6.43-87.06 36.23-87.06 79.72 0 23.16 8.72 44 24.56 58.59C342.28 431 362.55 438 384.51 438c30.86 0 57.5-7.33 77.67-22.64V438H506V271.84C506 212.83 463.28 170 404.42 170zm-19.91 225.07c-17.46 0-37.85-9.84-37.85-36.37 0-10.65 3.82-18.11 12.38-24.19 8.34-5.92 21.12-10.15 36-11.9 21.78-2.57 46.31-3.95 67-4.52-2.16 51.49-27.57 76.98-77.53 76.98zM93.25 325.87h125.5L260.94 438H308L155 48 4 438h47.06zM156 160.71L202.25 282h-92.5z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/text.svg b/ionic/platforms/android/app/src/main/assets/www/svg/text.svg deleted file mode 100644 index 0a96ad2ba6afdf199b27f67a5d57019a188931f3..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/text.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Text</title><path d="M292.6 407.78l-120-320a22 22 0 00-41.2 0l-120 320a22 22 0 0041.2 15.44l36.16-96.42a2 2 0 011.87-1.3h122.74a2 2 0 011.87 1.3l36.16 96.42a22 22 0 0041.2-15.44zm-185.84-129l43.37-115.65a2 2 0 013.74 0l43.37 115.67a2 2 0 01-1.87 2.7h-86.74a2 2 0 01-1.87-2.7zM400.77 169.5c-41.72-.3-79.08 23.87-95 61.4a22 22 0 0040.5 17.2c8.88-20.89 29.77-34.44 53.32-34.6 32.32-.22 58.41 26.5 58.41 58.85a1.5 1.5 0 01-1.45 1.5c-21.92.61-47.92 2.07-71.12 4.8-54.75 6.44-87.43 36.29-87.43 79.85 0 23.19 8.76 44 24.67 58.68C337.6 430.93 358 438.5 380 438.5c31 0 57.69-8 77.94-23.22h.06a22 22 0 1044 .19v-143c0-56.18-45-102.56-101.23-102.97zM380 394.5c-17.53 0-38-9.43-38-36 0-10.67 3.83-18.14 12.43-24.23 8.37-5.93 21.2-10.16 36.14-11.92 21.12-2.49 44.82-3.86 65.14-4.47a2 2 0 012 2.1C455 370.1 429.46 394.5 380 394.5z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/thermometer-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/thermometer-outline.svg deleted file mode 100644 index 793fb6ef3feab3e4e1a923dfc03a0bf9870b8e29..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/thermometer-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Thermometer</title><path d="M307.72 302.27a8 8 0 01-3.72-6.75V80a48 48 0 00-48-48h0a48 48 0 00-48 48v215.52a8 8 0 01-3.71 6.74 97.51 97.51 0 00-44.19 86.07A96 96 0 00352 384a97.49 97.49 0 00-44.28-81.73zM256 112v272" stroke-linecap="round" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="256" cy="384" r="48"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/thermometer-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/thermometer-sharp.svg deleted file mode 100644 index b50637f817bda96a86b75791a85d8b1aa172402a..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/thermometer-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Thermometer</title><path d="M320 291.24V80a64 64 0 10-128 0v211.24A113.39 113.39 0 00144 384a112 112 0 00224 0 113.39 113.39 0 00-48-92.76zM256 432a48 48 0 01-16-93.26V96h32v242.74A48 48 0 01256 432z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/thermometer.svg b/ionic/platforms/android/app/src/main/assets/www/svg/thermometer.svg deleted file mode 100644 index 17a07a21e6dc552dc8f4f9c8b2742f525ef40c4c..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/thermometer.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Thermometer</title><path d="M320 287.18V81c0-35.12-27.89-64.42-63-64.95a64.08 64.08 0 00-65 64v207.13a8 8 0 01-3.18 6.37A113.48 113.48 0 00144 384a112 112 0 00224 0 113.48 113.48 0 00-44.82-90.45 8 8 0 01-3.18-6.37zM254.07 432a48 48 0 01-22-89.54 16 16 0 008-13.84V112.45c0-8.61 6.62-16 15.23-16.43A16 16 0 01272 112v216.58a16.18 16.18 0 008.15 13.94A48 48 0 01254.07 432z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/thumbs-down-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/thumbs-down-outline.svg deleted file mode 100644 index 1d6eac560c8992a2b87eb894d859108403e4fe4d..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/thumbs-down-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Thumbs Down</title><path d="M192 53.84S208 48 256 48s74 16 96 32h64a64 64 0 0164 64v48a64 64 0 01-64 64h-30a32.34 32.34 0 00-27.37 15.4S350 290.19 324 335.22 248 448 240 464c-29 0-43-22-34-47.71 10.28-29.39 23.71-54.38 27.46-87.09.54-4.78-3.14-12-8-12L96 307" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M96 241l80 2c20 1.84 32 12.4 32 30h0c0 17.6-14 28.84-32 30l-80 4c-17.6 0-32-16.4-32-34v-.17A32 32 0 0196 241zM64 176l112 2c18 .84 32 12.41 32 30h0c0 17.61-14 28.86-32 30l-112 2a32.1 32.1 0 01-32-32h0a32.1 32.1 0 0132-32zM112 48l64 3c21 1.84 32 11.4 32 29h0c0 17.6-14.4 30-32 30l-64 2a32.09 32.09 0 01-32-32h0a32.09 32.09 0 0132-32zM80 112l96 2c19 .84 32 12.4 32 30h0c0 17.6-13 28.84-32 30l-96 2a32.09 32.09 0 01-32-32h0a32.09 32.09 0 0132-32z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/thumbs-down-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/thumbs-down-sharp.svg deleted file mode 100644 index 664d36a4f0ef0abd5d2781658c644620e0a54da1..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/thumbs-down-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Thumbs Down</title><path d="M56 320l156.05 12-23 89.4c-6.08 26.6.7 41.87 22.39 48.62l34.69 9.85a4 4 0 004.4-1.72l129-202.34a8 8 0 016.81-3.81H496V64H378.39a48 48 0 01-15.18-2.46l-76.3-25.43a80 80 0 00-25.3-4.11H83.68c-19 0-31.5 13.52-35.23 32.16L16 206.42V280c0 22.06 18 38 40 40z"/><path d="M378.45 273.93A15.84 15.84 0 01386 272a15.93 15.93 0 00-7.51 1.91zM337.86 343.22l-.13.22a2.53 2.53 0 01.13-.22c20.5-35.51 30.36-55 33.82-62-3.47 7.06-13.34 26.51-33.82 62z" class="ionicon-fill-none"/><path d="M372.66 279.16l-1 2a16.29 16.29 0 016.77-7.26 16.48 16.48 0 00-5.77 5.26z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/thumbs-down.svg b/ionic/platforms/android/app/src/main/assets/www/svg/thumbs-down.svg deleted file mode 100644 index c1e5f47cd8e809f8172b1bb0069d289ee775d66d..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/thumbs-down.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Thumbs Down</title><path d="M39.94 178l144.16 6.12c4.61.36 23.9 1.22 23.9 25.88 0 23.8-19.16 25.33-24.14 25.88L39.94 242C27.27 241.87 16 227.56 16 210s11.27-31.87 23.94-32zm141.45 131.66L74.65 318C62 318 48 301.31 48 284.12v-.33c0-16.33 11.14-29.63 24.88-29.79l108.45 1.72C208 259 208 275.16 208 282.12c0 22.88-21.8 27.14-26.61 27.54zM90.15 32l89.37 8.93C204 41.86 208 58.18 208 68.4c0 18.39-13.41 24.6-26.67 24.6l-91 3C75.78 95.78 64 81.51 64 64s11.68-31.66 26.15-32zm-34.36 71.5l126.4 6.22c9.39.63 25.81 3 25.81 26.36 0 12-4.35 25.62-25 27.53L55.79 167.5C42.65 167.35 32 154 32 136.08s10.65-32.43 23.79-32.58z"/><path d="M378.45 273.93A15.84 15.84 0 01386 272a15.93 15.93 0 00-7.51 1.91zM337.86 343.22l-.13.22a2.53 2.53 0 01.13-.22c20.5-35.51 30.36-55 33.82-62-3.47 7.06-13.34 26.51-33.82 62z" class="ionicon-fill-none"/><path d="M372.66 279.16l-1 2a16.29 16.29 0 016.77-7.26 16.48 16.48 0 00-5.77 5.26z"/><path d="M195.94 459.38C205.37 472.67 221 480 240 480a16 16 0 0014.31-8.85c3-6.06 15.25-24 28.19-42.9 18-26.33 40.35-59.08 55.23-84.81l.13-.22c20.48-35.49 30.35-54.94 33.82-62l1-2a16.48 16.48 0 015.79-5.23A15.93 15.93 0 01386 272h25.32A84.7 84.7 0 00496 187.3v-38.6A84.7 84.7 0 00411.31 64h-48.79a17.46 17.46 0 01-9.58-2.89C330 46.13 286.66 32 240 32c-7.45 0-14.19.14-20.27.38a8 8 0 00-6.2 12.68l.1.14C222.2 57.59 224 71 224 80a61.16 61.16 0 01-5.19 24.77 17.38 17.38 0 000 14.06 63.81 63.81 0 010 50.39 17.32 17.32 0 000 14 62.13 62.13 0 010 49.58 18.13 18.13 0 000 14.68A60.41 60.41 0 01224 273c0 8.2-2 21.3-8 31.18a15.66 15.66 0 00-1.14 13.65c.38 1 .76 2.06 1.13 3.17a24.8 24.8 0 01.86 11.57c-3 19.35-9.67 36.3-16.74 54.16-3.08 7.78-6.27 15.82-9.22 24.27-6.14 17.56-4.3 35.2 5.05 48.38z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/thumbs-up-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/thumbs-up-outline.svg deleted file mode 100644 index 6e7f9726aab18040e97a033919f56b946069df78..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/thumbs-up-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Thumbs Up</title><path d="M320 458.16S304 464 256 464s-74-16-96-32H96a64 64 0 01-64-64v-48a64 64 0 0164-64h30a32.34 32.34 0 0027.37-15.4S162 221.81 188 176.78 264 64 272 48c29 0 43 22 34 47.71-10.28 29.39-23.71 54.38-27.46 87.09-.54 4.78 3.14 12 7.95 12L416 205" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M416 271l-80-2c-20-1.84-32-12.4-32-30h0c0-17.6 14-28.84 32-30l80-4c17.6 0 32 16.4 32 34v.17A32 32 0 01416 271zM448 336l-112-2c-18-.84-32-12.41-32-30h0c0-17.61 14-28.86 32-30l112-2a32.1 32.1 0 0132 32h0a32.1 32.1 0 01-32 32zM400 464l-64-3c-21-1.84-32-11.4-32-29h0c0-17.6 14.4-30 32-30l64-2a32.09 32.09 0 0132 32h0a32.09 32.09 0 01-32 32zM432 400l-96-2c-19-.84-32-12.4-32-30h0c0-17.6 13-28.84 32-30l96-2a32.09 32.09 0 0132 32h0a32.09 32.09 0 01-32 32z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/thumbs-up-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/thumbs-up-sharp.svg deleted file mode 100644 index dbaa650a693d53f3c0ddfe56d882f89358c3b3c4..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/thumbs-up-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Thumbs Up</title><path d="M456 192l-156-12 23-89.4c6-26.6-.78-41.87-22.47-48.6l-34.69-9.85a4 4 0 00-4.4 1.72l-129 202.34a8 8 0 01-6.81 3.81H16V448h117.61a48 48 0 0115.18 2.46l76.3 25.43a80 80 0 0025.3 4.11h177.93c19 0 31.5-13.52 35.23-32.16L496 305.58V232c0-22.06-18-38-40-40z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/thumbs-up.svg b/ionic/platforms/android/app/src/main/assets/www/svg/thumbs-up.svg deleted file mode 100644 index 1c9c8a4b640846719a3ec0b14f5222f2eebff62f..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/thumbs-up.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Thumbs Up</title><path d="M472.06 334l-144.16-6.13c-4.61-.36-23.9-1.21-23.9-25.87 0-23.81 19.16-25.33 24.14-25.88L472.06 270c12.67.13 23.94 14.43 23.94 32s-11.27 31.87-23.94 32zM330.61 202.33L437.35 194C450 194 464 210.68 464 227.88v.33c0 16.32-11.14 29.62-24.88 29.79l-108.45-1.73C304 253 304 236.83 304 229.88c0-22.88 21.8-27.15 26.61-27.55zM421.85 480l-89.37-8.93C308 470.14 304 453.82 304 443.59c0-18.38 13.41-24.6 26.67-24.6l91-3c14.54.23 26.32 14.5 26.32 32s-11.67 31.67-26.14 32.01zm34.36-71.5l-126.4-6.21c-9.39-.63-25.81-3-25.81-26.37 0-12 4.35-25.61 25-27.53l127.19-3.88c13.16.14 23.81 13.49 23.81 31.4s-10.65 32.43-23.79 32.58z"/><path d="M133.55 238.06A15.85 15.85 0 01126 240a15.82 15.82 0 007.51-1.92zM174.14 168.78l.13-.23-.13.23c-20.5 35.51-30.36 54.95-33.82 62 3.47-7.07 13.34-26.51 33.82-62z" class="ionicon-fill-none"/><path d="M139.34 232.84l1-2a16.27 16.27 0 01-6.77 7.25 16.35 16.35 0 005.77-5.25z"/><path d="M316.06 52.62C306.63 39.32 291 32 272 32a16 16 0 00-14.31 8.84c-3 6.07-15.25 24-28.19 42.91-18 26.33-40.35 59.07-55.23 84.8l-.13.23c-20.48 35.49-30.35 54.93-33.82 62l-1 2a16.35 16.35 0 01-5.79 5.22 15.82 15.82 0 01-7.53 2h-25.31A84.69 84.69 0 0016 324.69v38.61a84.69 84.69 0 0084.69 84.7h48.79a17.55 17.55 0 019.58 2.89C182 465.87 225.34 480 272 480c7.45 0 14.19-.14 20.27-.38a8 8 0 006.2-12.68l-.1-.14C289.8 454.41 288 441 288 432a61.2 61.2 0 015.19-24.77 17.36 17.36 0 000-14.05 63.81 63.81 0 010-50.39 17.32 17.32 0 000-14 62.15 62.15 0 010-49.59 18.13 18.13 0 000-14.68A60.33 60.33 0 01288 239c0-8.2 2-21.3 8-31.19a15.63 15.63 0 001.14-13.64c-.38-1-.76-2.07-1.13-3.17a24.84 24.84 0 01-.86-11.58c3-19.34 9.67-36.29 16.74-54.16 3.08-7.78 6.27-15.82 9.22-24.26 6.14-17.57 4.3-35.2-5.05-48.38z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/thunderstorm-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/thunderstorm-outline.svg deleted file mode 100644 index 5366c7084f5ed4d8bcbf54ef60336c843c434908..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/thunderstorm-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Thunderstorm</title><path stroke-linecap="round" stroke-linejoin="round" d="M120 352l-24 48M136 432l-16 32M400 352l-24 48M416 432l-16 32M208 304l-16 96h48v80l80-112h-48l16-64M404.33 152.89H392.2C384.71 84.85 326.14 32 256 32a136.39 136.39 0 00-128.63 90.67h-4.57c-49.94 0-90.8 40.8-90.8 90.66h0C32 263.2 72.86 304 122.8 304h281.53C446 304 480 270 480 228.44h0c0-41.55-34-75.55-75.67-75.55z" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/thunderstorm-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/thunderstorm-sharp.svg deleted file mode 100644 index d8a18a0bfa6f282e40c2d9444b98a378abf6a503..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/thunderstorm-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Thunderstorm</title><path d="M405.84 136.9a151.25 151.25 0 00-47.6-81.9 153 153 0 00-241.81 51.86C60.5 110.16 16 156.65 16 213.33 16 272.15 63.91 320 122.8 320h72.31L176 416h48v80l112-144h-43.51l8-32h103.84a91.56 91.56 0 001.51-183.1z"/><path d="M74.53 407.177l38.32-76.622 28.62 14.313-38.32 76.623zM98.52 471.189l30.318-60.622 28.62 14.313-30.317 60.622zM354.541 407.189l38.32-76.623 28.62 14.314-38.32 76.622zM378.542 471.2l30.317-60.622 28.62 14.314-30.317 60.621z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/thunderstorm.svg b/ionic/platforms/android/app/src/main/assets/www/svg/thunderstorm.svg deleted file mode 100644 index 5211337fef03c9ed7bae25a3a9110cee7ba2dece..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/thunderstorm.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Thunderstorm</title><path d="M96 416a16 16 0 01-14.3-23.16l24-48a16 16 0 0128.62 14.32l-24 48A16 16 0 0196 416zM120 480a16 16 0 01-14.3-23.16l16-32a16 16 0 0128.62 14.32l-16 32A16 16 0 01120 480zM376 416a16 16 0 01-14.3-23.16l24-48a16 16 0 0128.62 14.32l-24 48A16 16 0 01376 416zM400 480a16 16 0 01-14.3-23.16l16-32a16 16 0 0128.62 14.32l-16 32A16 16 0 01400 480z"/><path d="M405.84 136.9a151.25 151.25 0 00-47.6-81.9 153 153 0 00-241.81 51.86C60.5 110.16 16 156.65 16 213.33 16 272.15 63.91 320 122.8 320h66.31l-12.89 77.37A16 16 0 00192 416h32v64a16 16 0 0029 9.3l80-112a16 16 0 00-13-25.3h-27.51l8-32h103.84a91.56 91.56 0 001.51-183.1z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/ticket-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/ticket-outline.svg deleted file mode 100644 index 3584d2fde53c45c6ec67a690524ccd3c01aa9d52..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/ticket-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Ticket</title><path stroke-miterlimit="10" d="M366.05 146a46.7 46.7 0 01-2.42-63.42 3.87 3.87 0 00-.22-5.26l-44.13-44.18a3.89 3.89 0 00-5.5 0l-70.34 70.34a23.62 23.62 0 00-5.71 9.24h0a23.66 23.66 0 01-14.95 15h0a23.7 23.7 0 00-9.25 5.71L33.14 313.78a3.89 3.89 0 000 5.5l44.13 44.13a3.87 3.87 0 005.26.22 46.69 46.69 0 0165.84 65.84 3.87 3.87 0 00.22 5.26l44.13 44.13a3.89 3.89 0 005.5 0l180.4-180.39a23.7 23.7 0 005.71-9.25h0a23.66 23.66 0 0114.95-15h0a23.62 23.62 0 009.24-5.71l70.34-70.34a3.89 3.89 0 000-5.5l-44.13-44.13a3.87 3.87 0 00-5.26-.22 46.7 46.7 0 01-63.42-2.32z" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-miterlimit="10" stroke-linecap="round" d="M250.5 140.44l-16.51-16.51M294.52 184.46l-11.01-11M338.54 228.49l-11-11.01M388.07 278.01l-16.51-16.51" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/ticket-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/ticket-sharp.svg deleted file mode 100644 index 8daa57152886f2011d3d9aae26ea5537016cdc7a..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/ticket-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Ticket</title><path d="M426.24 127.72l-10.94 10.94a29.67 29.67 0 01-42-42l10.94-10.94L314.52 16l-88 88-4 12.09-12.09 4L16 314.52l69.76 69.76 10.94-10.94a29.67 29.67 0 0142 42l-10.94 10.94L197.48 496l194.4-194.4 4-12.09 12.09-4 88-88zm-208.56 5.43l21.87-21.87 33 33-21.88 21.87zm43 43l21.88-21.88 32.52 32.52-21.88 21.88zm42.56 42.56l21.88-21.88 32.52 32.52-21.84 21.93zm75.57 75.56l-33-33 21.87-21.88 33 33z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/ticket.svg b/ionic/platforms/android/app/src/main/assets/www/svg/ticket.svg deleted file mode 100644 index 65a7a8a91d35b7bcb5c9072836a344c03b4acb1f..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/ticket.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Ticket</title><path d="M490.18 181.4l-44.13-44.13a20 20 0 00-27-1 30.81 30.81 0 01-41.68-1.6 30.81 30.81 0 01-1.6-41.67 20 20 0 00-1-27L330.6 21.82a19.91 19.91 0 00-28.13 0l-70.35 70.34a39.87 39.87 0 00-9.57 15.5 7.71 7.71 0 01-4.83 4.83 39.78 39.78 0 00-15.5 9.58l-180.4 180.4a19.91 19.91 0 000 28.13L66 374.73a20 20 0 0027 1 30.69 30.69 0 0143.28 43.28 20 20 0 001 27l44.13 44.13a19.91 19.91 0 0028.13 0l180.4-180.4a39.82 39.82 0 009.58-15.49 7.69 7.69 0 014.84-4.84 39.84 39.84 0 0015.49-9.57l70.34-70.35a19.91 19.91 0 00-.01-28.09zm-228.37-29.65a16 16 0 01-22.63 0l-11.51-11.51a16 16 0 0122.63-22.62l11.51 11.5a16 16 0 010 22.63zm44 44a16 16 0 01-22.62 0l-11-11a16 16 0 1122.63-22.63l11 11a16 16 0 01.01 22.66zm44 44a16 16 0 01-22.63 0l-11-11a16 16 0 0122.63-22.62l11 11a16 16 0 01.05 22.67zm44.43 44.54a16 16 0 01-22.63 0l-11.44-11.5a16 16 0 1122.68-22.57l11.45 11.49a16 16 0 01-.01 22.63z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/time-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/time-outline.svg deleted file mode 100644 index 7a5c0d438b8f95cf4bc02dd4ee72afdc3ee1610f..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/time-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Time</title><path d="M256 64C150 64 64 150 64 256s86 192 192 192 192-86 192-192S362 64 256 64z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-linejoin="round" d="M256 128v144h96" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/time-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/time-sharp.svg deleted file mode 100644 index ec0fbeb29629812bf565fd9dc31c35de04d080bf..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/time-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Time</title><path d="M256 48C141.13 48 48 141.13 48 256c0 114.69 93.32 208 208 208 114.86 0 208-93.14 208-208 0-114.69-93.31-208-208-208zm108 240H244a4 4 0 01-4-4V116a4 4 0 014-4h24a4 4 0 014 4v140h92a4 4 0 014 4v24a4 4 0 01-4 4z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/time.svg b/ionic/platforms/android/app/src/main/assets/www/svg/time.svg deleted file mode 100644 index 7c15eac8d2523e8ed7914903960ff8779dd4e849..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/time.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Time</title><path d="M256 48C141.13 48 48 141.13 48 256s93.13 208 208 208 208-93.13 208-208S370.87 48 256 48zm96 240h-96a16 16 0 01-16-16V128a16 16 0 0132 0v128h80a16 16 0 010 32z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/timer-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/timer-outline.svg deleted file mode 100644 index 5c67528841127598194f8910a17f5f371fcc3eb8..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/timer-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Timer</title><path d="M112.91 128A191.85 191.85 0 0064 254c-1.18 106.35 85.65 193.8 192 194 106.2.2 192-85.83 192-192 0-104.54-83.55-189.61-187.5-192a4.36 4.36 0 00-4.5 4.37V152" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M233.38 278.63l-79-113a8.13 8.13 0 0111.32-11.32l113 79a32.5 32.5 0 01-37.25 53.26 33.21 33.21 0 01-8.07-7.94z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/timer-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/timer-sharp.svg deleted file mode 100644 index 1b30ffe24c6b7def137b44970352180cbb9dede6..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/timer-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Timer</title><path d="M256 48C141.12 48 48 141.12 48 256s93.12 208 208 208 208-93.12 208-208S370.88 48 256 48zm0 384c-97 0-176-78.95-176-176a174.55 174.55 0 0153.87-126.72L279 233l-19 30-125-91c-13 23-26.7 46-26.7 84 0 81.44 66.26 147.7 147.7 147.7S403.7 337.44 403.7 256c0-76.67-58.72-139.88-133.55-147v55h-28.3V79.89c4.24.07 8.94.11 14.15.11 97.05 0 176 79 176 176s-78.95 176-176 176z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/timer.svg b/ionic/platforms/android/app/src/main/assets/www/svg/timer.svg deleted file mode 100644 index abf8aaf3f889618973a7df0303f9fd82207c4975..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/timer.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Timer</title><path d="M256 48C141.12 48 48 141.12 48 256s93.12 208 208 208 208-93.12 208-208S370.88 48 256 48zm-82.33 114.34l105 71a32.5 32.5 0 01-37.25 53.26 33.21 33.21 0 01-8-8l-71-105a8.13 8.13 0 0111.32-11.32zM256 432c-97 0-176-78.95-176-176a174.55 174.55 0 0153.87-126.72 14.15 14.15 0 1119.64 20.37A146.53 146.53 0 00108.3 256c0 81.44 66.26 147.7 147.7 147.7S403.7 337.44 403.7 256c0-76.67-58.72-139.88-133.55-147v55a14.15 14.15 0 11-28.3 0V94.15A14.15 14.15 0 01256 80c97.05 0 176 79 176 176s-78.95 176-176 176z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/today-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/today-outline.svg deleted file mode 100644 index b0a798658f5391210a33988d30af9b86333a99d2..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/today-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Today</title><rect stroke-linejoin="round" x="48" y="80" width="416" height="384" rx="48" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linejoin="round" stroke-linecap="round" d="M128 48v32M384 48v32" class="ionicon-fill-none ionicon-stroke-width"/><rect stroke-linejoin="round" stroke-linecap="round" x="112" y="224" width="96" height="96" rx="13" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linejoin="round" stroke-linecap="round" d="M464 160H48" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/today-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/today-sharp.svg deleted file mode 100644 index 32a045bcb989d5a56aacb1477fea360447db03a8..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/today-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Today</title><path d="M32 456a24 24 0 0024 24h400a24 24 0 0024-24V176H32zm80-238.86a9.14 9.14 0 019.14-9.14h109.72a9.14 9.14 0 019.14 9.14v109.72a9.14 9.14 0 01-9.14 9.14H121.14a9.14 9.14 0 01-9.14-9.14zM456 64h-55.92V32h-48v32H159.92V32h-48v32H56a23.8 23.8 0 00-24 23.77V144h448V87.77A23.8 23.8 0 00456 64z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/today.svg b/ionic/platforms/android/app/src/main/assets/www/svg/today.svg deleted file mode 100644 index 42752fd1fa12e04e5aed10d24306313cb43a962d..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/today.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Today</title><path d="M416 64h-16V48.45c0-8.61-6.62-16-15.23-16.43A16 16 0 00368 48v16H144V48.45c0-8.61-6.62-16-15.23-16.43A16 16 0 00112 48v16H96a64 64 0 00-64 64v12a4 4 0 004 4h440a4 4 0 004-4v-12a64 64 0 00-64-64zM477 176H35a3 3 0 00-3 3v237a64 64 0 0064 64h320a64 64 0 0064-64V179a3 3 0 00-3-3zM224 307.43A28.57 28.57 0 01195.43 336h-70.86A28.57 28.57 0 0196 307.43v-70.86A28.57 28.57 0 01124.57 208h70.86A28.57 28.57 0 01224 236.57z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/toggle-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/toggle-outline.svg deleted file mode 100644 index e1597abb55e036183a1f3b1831f10b56e13d69e1..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/toggle-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Toggle</title><circle cx="368" cy="256" r="128" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><rect x="16" y="128" width="480" height="256" rx="128" ry="128" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/toggle-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/toggle-sharp.svg deleted file mode 100644 index ca73f245a3a2e0d57798b3a36b2a6a924df8c921..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/toggle-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Toggle</title><path d="M368 112H144a144 144 0 000 288h224a144 144 0 000-288zm0 230a86 86 0 1186-86 85.88 85.88 0 01-86 86z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/toggle.svg b/ionic/platforms/android/app/src/main/assets/www/svg/toggle.svg deleted file mode 100644 index 3db43e88db1826f65dd71cd3578b8bddee0c40ce..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/toggle.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Toggle</title><path d="M368 112H144C64.6 112 0 176.6 0 256s64.6 144 144 144h224c79.4 0 144-64.6 144-144s-64.6-144-144-144zm0 256a112 112 0 11112-112 112.12 112.12 0 01-112 112z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/trail-sign-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/trail-sign-outline.svg deleted file mode 100644 index 8ab4e92e1d371998e7265b72d05502f41010df00..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/trail-sign-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Trail Sign</title><path stroke-linecap="round" stroke-linejoin="round" d="M256 400v64M256 208v64M256 48v32M416 208H102.63a16 16 0 01-11.32-4.69L32 144l59.31-59.31A16 16 0 01102.63 80H416a16 16 0 0116 16v96a16 16 0 01-16 16zM96 400h313.37a16 16 0 0011.32-4.69L480 336l-59.31-59.31a16 16 0 00-11.32-4.69H96a16 16 0 00-16 16v96a16 16 0 0016 16z" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/trail-sign-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/trail-sign-sharp.svg deleted file mode 100644 index 30063de8a9c8fba6ffe73438c0922f310f0b44a5..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/trail-sign-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Trail Sign</title><path d="M502.63 336l-80-80H278v-32h170V64H278V32h-44v32H89.37l-80 80 80 80H234v32H64v160h170v64h44v-64h144.63z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/trail-sign.svg b/ionic/platforms/android/app/src/main/assets/www/svg/trail-sign.svg deleted file mode 100644 index adbc929977ae4b9799fa0b22f521ac1de5758cdf..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/trail-sign.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Trail Sign</title><path d="M491.31 324.69L432 265.37a31.8 31.8 0 00-22.63-9.37H272v-32h144a32 32 0 0032-32V96a32 32 0 00-32-32H272V48a16 16 0 00-32 0v16H102.63A31.8 31.8 0 0080 73.37l-59.31 59.32a16 16 0 000 22.62L80 214.63a31.8 31.8 0 0022.63 9.37H240v32H96a32 32 0 00-32 32v96a32 32 0 0032 32h144v48a16 16 0 0032 0v-48h137.37a31.8 31.8 0 0022.63-9.37l59.31-59.32a16 16 0 000-22.62z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/train-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/train-outline.svg deleted file mode 100644 index ffffd0c63c6be8b329685ed6e2ca67d89d92d9be..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/train-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Train</title><path d="M344 48h-24a16 16 0 00-16-16h-96a16 16 0 00-16 16h-24a56.16 56.16 0 00-56 56v247c0 35.3 144 65 144 65s144-29.7 144-65V104a56 56 0 00-56-56zm-88 304a48 48 0 1148-48 48 48 0 01-48 48zm96-160a16 16 0 01-16 16H176a16 16 0 01-16-16v-64a16 16 0 0116-16h160a16 16 0 0116 16zM144 464h224M336 432l48 48M176 432l-48 48" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/train-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/train-sharp.svg deleted file mode 100644 index 2ee09361e395e6dde0fb69e56bc3090651e5c3cc..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/train-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Train</title><path d="M384 32h-64a16 16 0 00-16-16h-96a16 16 0 00-16 16h-64c-16 0-32 16-32 32v288c0 23.92 160 80 160 80s160-56.74 160-80V64c0-16-16-32-32-32zM256 352a48 48 0 1148-48 48 48 0 01-48 48zm112-152a8 8 0 01-8 8H152a8 8 0 01-8-8v-80a8 8 0 018-8h208a8 8 0 018 8z"/><path d="M314 432l15.32 16H182.58L198 432l-32-13-76.62 77h45.2l16-16h210.74l16 16h45.3l-76.36-77.75L314 432z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/train.svg b/ionic/platforms/android/app/src/main/assets/www/svg/train.svg deleted file mode 100644 index c1424c6938f46eebc6a7365eb6d7ace1121549ad..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/train.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Train</title><ellipse cx="256" cy="304" rx="32.05" ry="31.94" transform="rotate(-45 256.001 304)"/><path d="M352 32h-15a10 10 0 01-7.87-3.78A31.94 31.94 0 00304 16h-96a32 32 0 00-26.11 13.52A6 6 0 01177 32h-17c-36.81 0-64 28.84-64 64v255c0 23.27 25.6 42.06 83 60.94a753 753 0 0073.77 19.73 16 16 0 006.46 0A753 753 0 00333 411.94c57.4-18.88 83-37.67 83-60.94V96a64 64 0 00-64-64zm-168 96h144a8 8 0 018 8v48a8 8 0 01-8 8H184a8 8 0 01-8-8v-48a8 8 0 018-8zm76.18 239.87a64 64 0 1159.69-59.69 64.07 64.07 0 01-59.69 59.69z"/><path d="M395.31 468.69L347.63 421c-6.09-6.1-16-6.66-22.38-.86a16 16 0 00-.56 23.16l4.68 4.69H182.63l4.36-4.37c6.1-6.09 6.66-16 .86-22.38a16 16 0 00-23.16-.56l-48 48a16 16 0 1022.62 22.62l11.32-11.3h210.74l11.32 11.31a16 16 0 0022.62-22.62z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/transgender-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/transgender-outline.svg deleted file mode 100644 index 8bd2c521e7320b59309b52927d71f6edbf7355f2..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/transgender-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Transgender</title><circle cx="256" cy="256" r="128" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-linejoin="round" d="M448 352l-96 96M176 80l-95.98 95.98M464 128V48h-80M48 128V48h80M464 48L346.5 165.5M48 48l117.49 117.49M464 464L346.65 346.37" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/transgender-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/transgender-sharp.svg deleted file mode 100644 index 735bba1594e2f98a50b5cdb04fcad1dc73e36d2d..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/transgender-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Transgender</title><path d="M480 448.94l-48.94-49.08L464 366.92l-31.1-31.11-32.9 32.9-23.55-23.61a149.64 149.64 0 00-.1-178.45l59.55-59.56V144h44V32h-112v44h36.87l-59.55 59.55a149.65 149.65 0 00-178.59 0l-7.55-7.55 33-33L161 63.88l-33 33L107.09 76H144V32H32v112h44v-36.91L96.87 128l-33 33L95 192.05l33-33 7.56 7.57A149.18 149.18 0 00106 255.94c0 82.69 67.27 150 150 150a149.12 149.12 0 0089.44-29.67l23.51 23.58-33.14 33.05 31.11 31.1 33-33 48.9 49zm-330-193a106 106 0 11106 106 106.09 106.09 0 01-106-106z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/transgender.svg b/ionic/platforms/android/app/src/main/assets/www/svg/transgender.svg deleted file mode 100644 index c41d40fb624e4c855cb526f2746a030a4f8ac1d9..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/transgender.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Transgender</title><path d="M458 32h-68a22 22 0 000 44h14.89l-59.57 59.57a149.69 149.69 0 00-178.64 0l-7.57-7.57 26.45-26.44a22 22 0 00-31.12-31.12L128 96.89 107.11 76H122a22 22 0 000-44H54a22 22 0 00-22 22v68a22 22 0 0044 0v-14.89L96.89 128l-26.42 26.42a22 22 0 1031.11 31.11L128 159.11l7.57 7.57A149.19 149.19 0 00106 256c0 82.71 67.29 150 150 150a149.2 149.2 0 0089.46-29.67L369 399.9l-26.54 26.54a22 22 0 0031.12 31.12l26.49-26.5 42.37 42.48a22 22 0 0031.16-31.08L431.17 400l26.39-26.39a22 22 0 00-31.12-31.12l-26.35 26.35-23.55-23.62a149.68 149.68 0 00-.11-178.49L436 107.11V122a22 22 0 0044 0V54a22 22 0 00-22-22zM150 256a106 106 0 11106 106 106.12 106.12 0 01-106-106z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/trash-bin-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/trash-bin-outline.svg deleted file mode 100644 index 0e5919b1ac772e4f14429aea92314f5517eae460..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/trash-bin-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Trash Bin</title><path d="M432 144l-28.67 275.74A32 32 0 01371.55 448H140.46a32 32 0 01-31.78-28.26L80 144" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><rect x="32" y="64" width="448" height="80" rx="16" ry="16" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-linejoin="round" d="M312 240L200 352M312 352L200 240" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/trash-bin-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/trash-bin-sharp.svg deleted file mode 100644 index 125c3d2d18f3eaab0105e5e6daaf66ffc7caf6a1..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/trash-bin-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Trash Bin</title><path d="M337.46 240L312 214.54l-56 56-56-56L174.54 240l56 56-56 56L200 377.46l56-56 56 56L337.46 352l-56-56 56-56z" class="ionicon-fill-none"/><path d="M337.46 240L312 214.54l-56 56-56-56L174.54 240l56 56-56 56L200 377.46l56-56 56 56L337.46 352l-56-56 56-56z" class="ionicon-fill-none"/><path d="M64 160l29.74 282.51A24 24 0 00117.61 464h276.78a24 24 0 0023.87-21.49L448 160zm248 217.46l-56-56-56 56L174.54 352l56-56-56-56L200 214.54l56 56 56-56L337.46 240l-56 56 56 56z"/><rect x="32" y="48" width="448" height="80" rx="12" ry="12"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/trash-bin.svg b/ionic/platforms/android/app/src/main/assets/www/svg/trash-bin.svg deleted file mode 100644 index ec215868e77742852cc123fccd821d66b718d960..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/trash-bin.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Trash Bin</title><rect x="32" y="48" width="448" height="80" rx="32" ry="32"/><path d="M74.45 160a8 8 0 00-8 8.83l26.31 252.56a1.5 1.5 0 000 .22A48 48 0 00140.45 464h231.09a48 48 0 0047.67-42.39v-.21l26.27-252.57a8 8 0 00-8-8.83zm248.86 180.69a16 16 0 11-22.63 22.62L256 318.63l-44.69 44.68a16 16 0 01-22.63-22.62L233.37 296l-44.69-44.69a16 16 0 0122.63-22.62L256 273.37l44.68-44.68a16 16 0 0122.63 22.62L278.62 296z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/trash-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/trash-outline.svg deleted file mode 100644 index d7aa6fa895c62982f48114d73bc71bd1759fd781..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/trash-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Trash</title><path d="M112 112l20 320c.95 18.49 14.4 32 32 32h184c17.67 0 30.87-13.51 32-32l20-320" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-miterlimit="10" d="M80 112h352" class="ionicon-stroke-width"/><path d="M192 112V72h0a23.93 23.93 0 0124-24h80a23.93 23.93 0 0124 24h0v40M256 176v224M184 176l8 224M328 176l-8 224" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/trash-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/trash-sharp.svg deleted file mode 100644 index dbdbbf4f0a0065442afb45cde653b1309abd2034..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/trash-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Trash</title><path d="M296 64h-80a7.91 7.91 0 00-8 8v24h96V72a7.91 7.91 0 00-8-8z" class="ionicon-fill-none"/><path d="M292 64h-72a4 4 0 00-4 4v28h80V68a4 4 0 00-4-4z" class="ionicon-fill-none"/><path d="M447.55 96H336V48a16 16 0 00-16-16H192a16 16 0 00-16 16v48H64.45L64 136h33l20.09 314A32 32 0 00149 480h214a32 32 0 0031.93-29.95L415 136h33zM176 416l-9-256h33l9 256zm96 0h-32V160h32zm24-320h-80V68a4 4 0 014-4h72a4 4 0 014 4zm40 320h-33l9-256h33z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/trash.svg b/ionic/platforms/android/app/src/main/assets/www/svg/trash.svg deleted file mode 100644 index 799309241d4188a20d9b6d728e3bb91b4dbd94ec..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/trash.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Trash</title><path d="M296 64h-80a7.91 7.91 0 00-8 8v24h96V72a7.91 7.91 0 00-8-8z" class="ionicon-fill-none"/><path d="M432 96h-96V72a40 40 0 00-40-40h-80a40 40 0 00-40 40v24H80a16 16 0 000 32h17l19 304.92c1.42 26.85 22 47.08 48 47.08h184c26.13 0 46.3-19.78 48-47l19-305h17a16 16 0 000-32zM192.57 416H192a16 16 0 01-16-15.43l-8-224a16 16 0 1132-1.14l8 224A16 16 0 01192.57 416zM272 400a16 16 0 01-32 0V176a16 16 0 0132 0zm32-304h-96V72a7.91 7.91 0 018-8h80a7.91 7.91 0 018 8zm32 304.57A16 16 0 01320 416h-.58A16 16 0 01304 399.43l8-224a16 16 0 1132 1.14z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/trending-down-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/trending-down-outline.svg deleted file mode 100644 index e2a85cf2578b5f55b8238249ebee4b6c8fdf0d82..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/trending-down-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Trending Down</title><path stroke-linecap="round" stroke-linejoin="round" d="M352 368h112V256" class="ionicon-fill-none ionicon-stroke-width"/><path d="M48 144l121.37 121.37a32 32 0 0045.26 0l50.74-50.74a32 32 0 0145.26 0L448 352" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/trending-down-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/trending-down-sharp.svg deleted file mode 100644 index e1a4595d2d1753ffb6559f6bda0de2e3b2e77a0b..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/trending-down-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Trending Down</title><path stroke-linecap="square" stroke-miterlimit="10" d="M352 368h112V256" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="square" stroke-miterlimit="10" d="M48 144l144 144 96-96 160 160" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/trending-down.svg b/ionic/platforms/android/app/src/main/assets/www/svg/trending-down.svg deleted file mode 100644 index e2a85cf2578b5f55b8238249ebee4b6c8fdf0d82..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/trending-down.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Trending Down</title><path stroke-linecap="round" stroke-linejoin="round" d="M352 368h112V256" class="ionicon-fill-none ionicon-stroke-width"/><path d="M48 144l121.37 121.37a32 32 0 0045.26 0l50.74-50.74a32 32 0 0145.26 0L448 352" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/trending-up-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/trending-up-outline.svg deleted file mode 100644 index e161a765ded6bb2a840906057006a0a50b9edb74..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/trending-up-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Trending Up</title><path stroke-linecap="round" stroke-linejoin="round" d="M352 144h112v112" class="ionicon-fill-none ionicon-stroke-width"/><path d="M48 368l121.37-121.37a32 32 0 0145.26 0l50.74 50.74a32 32 0 0045.26 0L448 160" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/trending-up-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/trending-up-sharp.svg deleted file mode 100644 index ef01a3c7b56a40c7afb0a9d311127eb66ceea422..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/trending-up-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Trending Up</title><path stroke-linecap="square" stroke-miterlimit="10" d="M352 144h112v112" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="square" stroke-miterlimit="10" d="M48 368l144-144 96 96 160-160" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/trending-up.svg b/ionic/platforms/android/app/src/main/assets/www/svg/trending-up.svg deleted file mode 100644 index e161a765ded6bb2a840906057006a0a50b9edb74..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/trending-up.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Trending Up</title><path stroke-linecap="round" stroke-linejoin="round" d="M352 144h112v112" class="ionicon-fill-none ionicon-stroke-width"/><path d="M48 368l121.37-121.37a32 32 0 0145.26 0l50.74 50.74a32 32 0 0045.26 0L448 160" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/triangle-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/triangle-outline.svg deleted file mode 100644 index d6f49bf01f9f815b02092a3a6f4ca28fdeb2aca0..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/triangle-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Triangle</title><path stroke-linecap="round" stroke-linejoin="round" d="M48 448L256 64l208 384H48z" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/triangle-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/triangle-sharp.svg deleted file mode 100644 index dbd706cc62f7b97dab150be74af9013ed7772611..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/triangle-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Triangle</title><path d="M256 32L20 464h472L256 32z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/triangle.svg b/ionic/platforms/android/app/src/main/assets/www/svg/triangle.svg deleted file mode 100644 index 83ed4a57d8d45d245299a2338bdadd73663f2353..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/triangle.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Triangle</title><path d="M464 464H48a16 16 0 01-14.07-23.62l208-384a16 16 0 0128.14 0l208 384A16 16 0 01464 464z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/trophy-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/trophy-outline.svg deleted file mode 100644 index 177d29776b42887832c7774598bce15eb1b700ee..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/trophy-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Trophy</title><path stroke-linecap="round" stroke-linejoin="round" d="M176 464h160M256 464V336M384 224c0-50.64-.08-134.63-.12-160a16 16 0 00-16-16l-223.79.26a16 16 0 00-16 15.95c0 30.58-.13 129.17-.13 159.79 0 64.28 83 112 128 112S384 288.28 384 224z" class="ionicon-fill-none ionicon-stroke-width"/><path d="M128 96H48v16c0 55.22 33.55 112 80 112M384 96h80v16c0 55.22-33.55 112-80 112" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/trophy-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/trophy-sharp.svg deleted file mode 100644 index d28a5531c332575931f4d1b001cbaa725efc426c..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/trophy-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Trophy</title><path d="M399.9 80V32H112v48H32v38c0 32 9.5 62.79 26.76 86.61 13.33 18.4 34.17 31.1 52.91 37.21 5.44 29.29 20.2 57.13 50.19 79.83 22 16.66 48.45 28.87 72.14 33.86V436h-74v44h192v-44h-74v-80.49c23.69-5 50.13-17.2 72.14-33.86 30-22.7 44.75-50.54 50.19-79.83 18.74-6.11 39.58-18.81 52.91-37.21C470.5 180.79 480 150 480 118V80zM94.4 178.8c-10.68-14.68-17.17-34.4-18.24-54.8H112v67.37c-3.94-1.14-12.92-6.12-17.6-12.57zm323.2 0c-4.6 6.61-11.6 12.58-17.6 12.58 0-22.4 0-46.29-.05-67.38h35.9c-1.08 20.4-7.85 39.9-18.25 54.8z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/trophy.svg b/ionic/platforms/android/app/src/main/assets/www/svg/trophy.svg deleted file mode 100644 index 3a1617168e796bcd9c7bfc233189d0c465be33dd..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/trophy.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Trophy</title><path d="M464 80h-60.1a4 4 0 01-4-4V63.92a32 32 0 00-32-31.92l-223.79.26a32 32 0 00-31.94 31.93V76a4 4 0 01-4 4H48a16 16 0 00-16 16v16c0 54.53 30 112.45 76.52 125.35a7.82 7.82 0 015.55 5.9c5.77 26.89 23.52 52.5 51.41 73.61 20.91 15.83 45.85 27.5 68.27 32.48a8 8 0 016.25 7.8V444a4 4 0 01-4 4h-59.55c-8.61 0-16 6.62-16.43 15.23A16 16 0 00176 480h159.55c8.61 0 16-6.62 16.43-15.23A16 16 0 00336 448h-60a4 4 0 01-4-4v-86.86a8 8 0 016.25-7.8c22.42-5 47.36-16.65 68.27-32.48 27.89-21.11 45.64-46.72 51.41-73.61a7.82 7.82 0 015.55-5.9C450 224.45 480 166.53 480 112V96a16 16 0 00-16-16zM112 198.22a4 4 0 01-6 3.45c-10.26-6.11-17.75-15.37-22.14-21.89-11.91-17.69-19-40.67-19.79-63.63a4 4 0 014-4.15h40a4 4 0 014 4c-.02 27.45-.07 58.87-.07 82.22zm316.13-18.44c-4.39 6.52-11.87 15.78-22.13 21.89a4 4 0 01-6-3.46c0-26.51 0-56.63-.05-82.21a4 4 0 014-4h40a4 4 0 014 4.15c-.79 22.96-7.9 45.94-19.81 63.63z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/tv-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/tv-outline.svg deleted file mode 100644 index 82de036fb4641957f7c381656cf8a36a8ccc58dc..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/tv-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Tv</title><rect x="32" y="96" width="448" height="272" rx="32.14" ry="32.14" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-miterlimit="10" d="M128 416h256" class="ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/tv-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/tv-sharp.svg deleted file mode 100644 index 466a4d7fe3c1653147289d72a86dfb91a6d3a9a1..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/tv-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Tv</title><path d="M488 384H24a8 8 0 01-8-8V88a8 8 0 018-8h464a8 8 0 018 8v288a8 8 0 01-8 8z"/><rect x="112" y="400" width="288" height="32" rx="4" ry="4"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/tv.svg b/ionic/platforms/android/app/src/main/assets/www/svg/tv.svg deleted file mode 100644 index 20c91a8fab345a595a406fd71a9907f5a4bac4a8..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/tv.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Tv</title><path d="M447.86 384H64.14A48.2 48.2 0 0116 335.86V128.14A48.2 48.2 0 0164.14 80h383.72A48.2 48.2 0 01496 128.14v207.72A48.2 48.2 0 01447.86 384z"/><path stroke-linecap="round" stroke-miterlimit="10" d="M128 416h256" class="ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/umbrella-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/umbrella-outline.svg deleted file mode 100644 index 0a5a23415ca7f209702f7636effaecd3395b5563..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/umbrella-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Umbrella</title><path d="M256 272v160a32 32 0 01-32 32h0a32 32 0 01-32-32M464 272c0-114.88-93.12-208-208-208S48 157.12 48 272h0a67.88 67.88 0 0196 0h0a78.28 78.28 0 01102.31-7.27L256 272l9.69-7.27A78.28 78.28 0 01368 272h0a67.88 67.88 0 0196 0zM256 64V48" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/umbrella-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/umbrella-sharp.svg deleted file mode 100644 index 6b03d047ce77163fa8654702b86b4f10f7f3c439..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/umbrella-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Umbrella</title><path d="M128.93 280l-.26-.3c-.9-.74-1.83-1.43-2.77-2.1zM383.08 280l2.62-2.12c-.79.58-1.57 1.17-2.34 1.79z"/><path d="M463.14 186.44A224.55 224.55 0 00272 48.57V32h-32v16.57A223.58 223.58 0 0032 272v22.52l12.25-11.21a62.63 62.63 0 0181.43-5.88l.22.17c.94.67 1.87 1.36 2.77 2.1q2.09 1.69 4 3.61L144 294.63l11.31-11.32a62.59 62.59 0 0181.4-5.78L240 280v152a16 16 0 01-32 0v-16h-32v16a48 48 0 0096 0V280l3.29-2.47a62.59 62.59 0 0181.4 5.78L368 294.63l11.31-11.32q1.95-1.94 4.05-3.64c.77-.62 1.55-1.21 2.34-1.79l.26-.21c24.63-18.47 60-16.13 81.81 5.64l12.23 11.2V272a223.62 223.62 0 00-16.86-85.56z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/umbrella.svg b/ionic/platforms/android/app/src/main/assets/www/svg/umbrella.svg deleted file mode 100644 index 18fc5304b1aebe580c10ec4ba4cb560ea37cce37..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/umbrella.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Umbrella</title><path d="M414.39 113.61a222.26 222.26 0 00-136.33-64.54 8.09 8.09 0 01-6.88-5.62 15.79 15.79 0 00-30.36 0 8.09 8.09 0 01-6.88 5.62A224 224 0 0032 271.52a16.41 16.41 0 007.24 13.87 16 16 0 0020.07-2.08 51.89 51.89 0 0173.31-.06 15.94 15.94 0 0022.6.15 62.59 62.59 0 0181.49-5.87 8.24 8.24 0 013.29 6.59v147.42c0 8.6-6.6 16-15.19 16.44A16 16 0 01208 432a16 16 0 00-16.29-16c-9 .16-15.9 8.11-15.7 17.1a48.06 48.06 0 0047.37 46.9c26.88.34 48.62-21.93 48.62-48.81V284.12a8.24 8.24 0 013.29-6.59 62.59 62.59 0 0181.4 5.78 16 16 0 0022.62 0 51.91 51.91 0 0173.38 0 16 16 0 0019.54 2.41 16.4 16.4 0 007.77-14.21 222.54 222.54 0 00-65.61-157.9z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/unlink-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/unlink-outline.svg deleted file mode 100644 index d67f8dd956cba26e5dc44c305756260848b46009..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/unlink-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Unlink</title><path d="M208 352h-64a96 96 0 010-192h64M304 160h64a96 96 0 010 192h-64" stroke-linecap="round" stroke-linejoin="round" stroke-width="36" class="ionicon-fill-none"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/unlink-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/unlink-sharp.svg deleted file mode 100644 index 42fad8876f4a524b36aa5766caf6636a11c71821..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/unlink-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Unlink</title><path d="M200.66 352H144a96 96 0 010-192h55.41M312.59 160H368a96 96 0 010 192h-56.66" stroke-linecap="square" stroke-linejoin="round" stroke-width="48" class="ionicon-fill-none"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/unlink.svg b/ionic/platforms/android/app/src/main/assets/www/svg/unlink.svg deleted file mode 100644 index 864a2f8f75560bee063eda9906e4f6f8ba9b857e..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/unlink.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Unlink</title><path d="M200.66 352H144a96 96 0 010-192h55.41M312.59 160H368a96 96 0 010 192h-56.66" stroke-linecap="round" stroke-linejoin="round" stroke-width="48" class="ionicon-fill-none"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/videocam-off-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/videocam-off-outline.svg deleted file mode 100644 index 0a13d0e4f89c1d2c17a0cc868a597b0fb7368acb..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/videocam-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Videocam Off</title><path stroke-linecap="round" stroke-linejoin="round" d="M374.79 308.78L457.5 367a16 16 0 0022.5-14.62V159.62A16 16 0 00457.5 145l-82.71 58.22A16 16 0 00368 216.3v79.4a16 16 0 006.79 13.08z" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-miterlimit="10" d="M50.19 140.57A51.94 51.94 0 0032 180v152a52.15 52.15 0 0052 52h184a51.6 51.6 0 0022-4.9M208 128h60.48A51.68 51.68 0 01320 179.52V248M416 416L80 80" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/videocam-off-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/videocam-off-sharp.svg deleted file mode 100644 index 9c8b9c5709bd1a06ccb8e0e80e654d88da126955..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/videocam-off-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Videocam Off</title><path d="M57.376 79.998l22.627-22.627 358.63 358.63-22.627 22.628zM32 112a16 16 0 00-16 16v256a16 16 0 0016 16h288a15.89 15.89 0 009.34-3l-285-285zM336 208v-80a16 16 0 00-16-16H179.63l245.44 245.44L496 400V112z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/videocam-off.svg b/ionic/platforms/android/app/src/main/assets/www/svg/videocam-off.svg deleted file mode 100644 index fff3b10799b43654bd4520a4dd756b7a0ec4bf06..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/videocam-off.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Videocam Off</title><path d="M336 179.52A67.52 67.52 0 00268.48 112h-79.2a4 4 0 00-2.82 6.83l142.71 142.71a4 4 0 006.83-2.82zM16 180v152a68 68 0 0068 68h184a67.66 67.66 0 0042.84-15.24 4 4 0 00.33-6L54.41 122a4 4 0 00-4.87-.62A68 68 0 0016 180zM464 384.39a32 32 0 01-13-2.77 15.77 15.77 0 01-2.71-1.54l-82.71-58.22A32 32 0 01352 295.7v-79.4a32 32 0 0113.58-26.16l82.71-58.22a15.77 15.77 0 012.71-1.54 32 32 0 0145 29.24v192.76a32 32 0 01-32 32z"/><path stroke-linecap="round" stroke-miterlimit="10" d="M416 416L80 80" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/videocam-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/videocam-outline.svg deleted file mode 100644 index 1e885e124f45d0e11e3ba7fd7bbf8489661341bd..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/videocam-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Videocam</title><path d="M374.79 308.78L457.5 367a16 16 0 0022.5-14.62V159.62A16 16 0 00457.5 145l-82.71 58.22A16 16 0 00368 216.3v79.4a16 16 0 006.79 13.08z" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M268 384H84a52.15 52.15 0 01-52-52V180a52.15 52.15 0 0152-52h184.48A51.68 51.68 0 01320 179.52V332a52.15 52.15 0 01-52 52z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/videocam-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/videocam-sharp.svg deleted file mode 100644 index 42fe6f79be105023321e22a416dd9acd03d4c45c..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/videocam-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Videocam</title><path d="M336 208v-80a16 16 0 00-16-16H32a16 16 0 00-16 16v256a16 16 0 0016 16h288a16 16 0 0016-16v-80l160 96V112z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/videocam.svg b/ionic/platforms/android/app/src/main/assets/www/svg/videocam.svg deleted file mode 100644 index 09f75071621ed7bada58b52ff1229570930f4f35..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/videocam.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Videocam</title><path d="M464 384.39a32 32 0 01-13-2.77 15.77 15.77 0 01-2.71-1.54l-82.71-58.22A32 32 0 01352 295.7v-79.4a32 32 0 0113.58-26.16l82.71-58.22a15.77 15.77 0 012.71-1.54 32 32 0 0145 29.24v192.76a32 32 0 01-32 32zM268 400H84a68.07 68.07 0 01-68-68V180a68.07 68.07 0 0168-68h184.48A67.6 67.6 0 01336 179.52V332a68.07 68.07 0 01-68 68z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/volume-high-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/volume-high-outline.svg deleted file mode 100644 index ab6c9ffbee98ef933c6fd8b6765b96ceba11a700..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/volume-high-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Volume High</title><path d="M126 192H56a8 8 0 00-8 8v112a8 8 0 008 8h69.65a15.93 15.93 0 0110.14 3.54l91.47 74.89A8 8 0 00240 392V120a8 8 0 00-12.74-6.43l-91.47 74.89A15 15 0 01126 192zM320 320c9.74-19.38 16-40.84 16-64 0-23.48-6-44.42-16-64M368 368c19.48-33.92 32-64.06 32-112s-12-77.74-32-112M416 416c30-46 48-91.43 48-160s-18-113-48-160" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/volume-high-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/volume-high-sharp.svg deleted file mode 100644 index 83f5ad557cf220b4bb3e255c658616cc2db5e7ec..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/volume-high-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Volume High</title><path d="M320 320c9.74-19.38 16-40.84 16-64 0-23.48-6-44.42-16-64M368 368c19.48-33.92 32-64.06 32-112s-12-77.74-32-112M416 416c30-46 48-91.43 48-160s-18-113-48-160" stroke-linecap="square" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><path d="M125.65 176.1H32v159.8h93.65L256 440V72L125.65 176.1z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/volume-high.svg b/ionic/platforms/android/app/src/main/assets/www/svg/volume-high.svg deleted file mode 100644 index 4b843c5d0b2f9efe977f1e86d92d05f57bcb3628..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/volume-high.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Volume High</title><path d="M232 416a23.88 23.88 0 01-14.2-4.68 8.27 8.27 0 01-.66-.51L125.76 336H56a24 24 0 01-24-24V200a24 24 0 0124-24h69.75l91.37-74.81a8.27 8.27 0 01.66-.51A24 24 0 01256 120v272a24 24 0 01-24 24zm-106.18-80zm-.27-159.86zM320 336a16 16 0 01-14.29-23.19c9.49-18.87 14.3-38 14.3-56.81 0-19.38-4.66-37.94-14.25-56.73a16 16 0 0128.5-14.54C346.19 208.12 352 231.44 352 256c0 23.86-6 47.81-17.7 71.19A16 16 0 01320 336z"/><path d="M368 384a16 16 0 01-13.86-24C373.05 327.09 384 299.51 384 256c0-44.17-10.93-71.56-29.82-103.94a16 16 0 0127.64-16.12C402.92 172.11 416 204.81 416 256c0 50.43-13.06 83.29-34.13 120a16 16 0 01-13.87 8z"/><path d="M416 432a16 16 0 01-13.39-24.74C429.85 365.47 448 323.76 448 256c0-66.5-18.18-108.62-45.49-151.39a16 16 0 1127-17.22C459.81 134.89 480 181.74 480 256c0 64.75-14.66 113.63-50.6 168.74A16 16 0 01416 432z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/volume-low-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/volume-low-outline.svg deleted file mode 100644 index ba7d5044044e0881762a3a660aad7c1842facad9..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/volume-low-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Volume Low</title><path d="M189.65 192H120a8 8 0 00-8 8v112a8 8 0 008 8h69.65a16 16 0 0110.14 3.63l91.47 75a8 8 0 0012.74-6.46V119.83a8 8 0 00-12.74-6.44l-91.47 75a16 16 0 01-10.14 3.61zM384 320c9.74-19.41 16-40.81 16-64 0-23.51-6-44.4-16-64" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/volume-low-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/volume-low-sharp.svg deleted file mode 100644 index 62cea58903fc38400a5814f9bb95bb7ba4a80adc..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/volume-low-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Volume Low</title><path d="M391.12 341.48l-28.6-14.36 7.18-14.3c9.49-18.9 14.3-38 14.3-56.82 0-19.36-4.66-37.92-14.25-56.73L362.48 185 391 170.48l7.26 14.25C410.2 208.16 416 231.47 416 256c0 23.83-6 47.78-17.7 71.18zM189.65 176.1H96v159.8h93.65L320 440V72L189.65 176.1z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/volume-low.svg b/ionic/platforms/android/app/src/main/assets/www/svg/volume-low.svg deleted file mode 100644 index 40cd39a73dabc1db19f42a654a0e496d49ec6d7d..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/volume-low.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Volume Low</title><path d="M296 416.19a23.92 23.92 0 01-14.21-4.69l-.66-.51-91.46-75H120a24 24 0 01-24-24V200a24 24 0 0124-24h69.65l91.46-75 .66-.51A24 24 0 01320 119.83v272.34a24 24 0 01-24 24zM384 336a16 16 0 01-14.29-23.18c9.49-18.9 14.3-38 14.3-56.82 0-19.36-4.66-37.92-14.25-56.73a16 16 0 0128.5-14.54C410.2 208.16 416 231.47 416 256c0 23.83-6 47.78-17.7 71.18A16 16 0 01384 336z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/volume-medium-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/volume-medium-outline.svg deleted file mode 100644 index c05b4923e5c3ea4046a78a927aa075beaa48375a..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/volume-medium-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Volume Medium</title><path d="M157.65 192H88a8 8 0 00-8 8v112a8 8 0 008 8h69.65a16 16 0 0110.14 3.63l91.47 75a8 8 0 0012.74-6.46V119.83a8 8 0 00-12.74-6.44l-91.47 75a16 16 0 01-10.14 3.61zM352 320c9.74-19.41 16-40.81 16-64 0-23.51-6-44.4-16-64M400 368c19.48-34 32-64 32-112s-12-77.7-32-112" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/volume-medium-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/volume-medium-sharp.svg deleted file mode 100644 index 0f38156df5fc09f6276de61a2655e59c1d0ab04e..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/volume-medium-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Volume Medium</title><path d="M157.65 176.1H64v159.8h93.65L288 440V72L157.65 176.1z"/><path d="M352 320c9.74-19.41 16-40.81 16-64 0-23.51-6-44.4-16-64M400 368c19.48-34 32-64 32-112s-12-77.7-32-112" stroke-linecap="square" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/volume-medium.svg b/ionic/platforms/android/app/src/main/assets/www/svg/volume-medium.svg deleted file mode 100644 index 3457022654b312051eb0ac0de501ab5a62aff4ca..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/volume-medium.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Volume Medium</title><path d="M264 416.19a23.92 23.92 0 01-14.21-4.69l-.66-.51-91.46-75H88a24 24 0 01-24-24V200a24 24 0 0124-24h69.65l91.46-75 .66-.51A24 24 0 01288 119.83v272.34a24 24 0 01-24 24zM352 336a16 16 0 01-14.29-23.18c9.49-18.9 14.3-38 14.3-56.82 0-19.36-4.66-37.92-14.25-56.73a16 16 0 0128.5-14.54C378.2 208.16 384 231.47 384 256c0 23.83-6 47.78-17.7 71.18A16 16 0 01352 336z"/><path d="M400 384a16 16 0 01-13.87-24C405 327.05 416 299.45 416 256c0-44.12-10.94-71.52-29.83-103.95A16 16 0 01413.83 136C434.92 172.16 448 204.88 448 256c0 50.36-13.06 83.24-34.12 120a16 16 0 01-13.88 8z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/volume-mute-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/volume-mute-outline.svg deleted file mode 100644 index 3548fee579772a0d55c657461a39bfa85d30671b..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/volume-mute-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Volume Mute</title><path stroke-linecap="round" stroke-miterlimit="10" d="M416 432L64 80" class="ionicon-fill-none ionicon-stroke-width"/><path d="M224 136.92v33.8a4 4 0 001.17 2.82l24 24a4 4 0 006.83-2.82v-74.15a24.53 24.53 0 00-12.67-21.72 23.91 23.91 0 00-25.55 1.83 8.27 8.27 0 00-.66.51l-31.94 26.15a4 4 0 00-.29 5.92l17.05 17.06a4 4 0 005.37.26zM224 375.08l-78.07-63.92a32 32 0 00-20.28-7.16H64v-96h50.72a4 4 0 002.82-6.83l-24-24a4 4 0 00-2.82-1.17H56a24 24 0 00-24 24v112a24 24 0 0024 24h69.76l91.36 74.8a8.27 8.27 0 00.66.51 23.93 23.93 0 0025.85 1.69A24.49 24.49 0 00256 391.45v-50.17a4 4 0 00-1.17-2.82l-24-24a4 4 0 00-6.83 2.82zM125.82 336zM352 256c0-24.56-5.81-47.88-17.75-71.27a16 16 0 00-28.5 14.54C315.34 218.06 320 236.62 320 256q0 4-.31 8.13a8 8 0 002.32 6.25l19.66 19.67a4 4 0 006.75-2A146.89 146.89 0 00352 256zM416 256c0-51.19-13.08-83.89-34.18-120.06a16 16 0 00-27.64 16.12C373.07 184.44 384 211.83 384 256c0 23.83-3.29 42.88-9.37 60.65a8 8 0 001.9 8.26l16.77 16.76a4 4 0 006.52-1.27C410.09 315.88 416 289.91 416 256z"/><path d="M480 256c0-74.26-20.19-121.11-50.51-168.61a16 16 0 10-27 17.22C429.82 147.38 448 189.5 448 256c0 47.45-8.9 82.12-23.59 113a4 4 0 00.77 4.55L443 391.39a4 4 0 006.4-1C470.88 348.22 480 307 480 256z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/volume-mute-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/volume-mute-sharp.svg deleted file mode 100644 index 0a23ad63fe47e772bea3a1bd0df2d97d40aa8d67..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/volume-mute-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Volume Mute</title><path stroke-linecap="square" stroke-miterlimit="10" d="M416 432L64 80" class="ionicon-fill-none ionicon-stroke-width"/><path d="M352 256c0-24.56-5.81-47.88-17.75-71.27L327 170.47 298.48 185l7.27 14.25C315.34 218.06 320 236.62 320 256a112.91 112.91 0 01-.63 11.74l27.32 27.32A148.8 148.8 0 00352 256zM416 256c0-51.19-13.08-83.89-34.18-120.06l-8.06-13.82-27.64 16.12 8.06 13.82C373.07 184.44 384 211.83 384 256c0 25.93-3.89 46.21-11 65.33l24.5 24.51C409.19 319.68 416 292.42 416 256z"/><path d="M480 256c0-74.26-20.19-121.11-50.51-168.61l-8.61-13.49-27 17.22 8.61 13.49C429.82 147.38 448 189.5 448 256c0 48.76-9.4 84-24.82 115.55l23.7 23.7C470.16 351.39 480 309 480 256zM256 72l-73.6 58.78 73.6 73.59V72zM32 176.1v159.8h93.65L256 440V339.63L92.47 176.1H32z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/volume-mute.svg b/ionic/platforms/android/app/src/main/assets/www/svg/volume-mute.svg deleted file mode 100644 index 1f7e80bfe61959dc8f3dc217c1640c23583198ca..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/volume-mute.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Volume Mute</title><path stroke-linecap="round" stroke-miterlimit="10" d="M416 432L64 80" class="ionicon-fill-none ionicon-stroke-width"/><path d="M243.33 98.86a23.89 23.89 0 00-25.55 1.82l-.66.51-28.52 23.35a8 8 0 00-.59 11.85l54.33 54.33a8 8 0 0013.66-5.66v-64.49a24.51 24.51 0 00-12.67-21.71zM251.33 335.29L96.69 180.69A16 16 0 0085.38 176H56a24 24 0 00-24 24v112a24 24 0 0024 24h69.76l92 75.31a23.9 23.9 0 0025.87 1.69A24.51 24.51 0 00256 391.45v-44.86a16 16 0 00-4.67-11.3zM352 256c0-24.56-5.81-47.87-17.75-71.27a16 16 0 10-28.5 14.55C315.34 218.06 320 236.62 320 256q0 4-.31 8.13a8 8 0 002.32 6.25l14.36 14.36a8 8 0 0013.55-4.31A146 146 0 00352 256zM416 256c0-51.18-13.08-83.89-34.18-120.06a16 16 0 00-27.64 16.12C373.07 184.44 384 211.83 384 256c0 23.83-3.29 42.88-9.37 60.65a8 8 0 001.9 8.26L389 337.4a8 8 0 0013.13-2.79C411 311.76 416 287.26 416 256z"/><path d="M480 256c0-74.25-20.19-121.11-50.51-168.61a16 16 0 10-27 17.22C429.82 147.38 448 189.5 448 256c0 46.19-8.43 80.27-22.43 110.53a8 8 0 001.59 9l11.92 11.92a8 8 0 0012.92-2.16C471.6 344.9 480 305 480 256z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/volume-off-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/volume-off-outline.svg deleted file mode 100644 index 72ebf3c91ac37acced988ce7b57dd40526aba23a..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/volume-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Volume Off</title><path d="M237.65 192H168a8 8 0 00-8 8v112a8 8 0 008 8h69.65a16 16 0 0110.14 3.63l91.47 75a8 8 0 0012.74-6.46V119.83a8 8 0 00-12.74-6.44l-91.47 75a16 16 0 01-10.14 3.61z" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/volume-off-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/volume-off-sharp.svg deleted file mode 100644 index 7e0f1948de63dfe15f319166b6f3a2953d198cb5..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/volume-off-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Volume Off</title><path d="M237.65 176.1H144v159.8h93.65L368 440V72L237.65 176.1z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/volume-off.svg b/ionic/platforms/android/app/src/main/assets/www/svg/volume-off.svg deleted file mode 100644 index ce21e2221199806b870af44c16dd7dce7f3f9d9a..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/volume-off.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Volume Off</title><path d="M344 416a23.92 23.92 0 01-14.21-4.69c-.23-.16-.44-.33-.66-.51l-91.46-74.9H168a24 24 0 01-24-24V200.07a24 24 0 0124-24h69.65l91.46-74.9c.22-.18.43-.35.66-.51A24 24 0 01368 120v272a24 24 0 01-24 24z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/walk-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/walk-outline.svg deleted file mode 100644 index 5f2b50e83d78076948df09539ec92f0e92d35381..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/walk-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Walk</title><path d="M314.21 482.32l-56.77-114.74-44.89-57.39a72.82 72.82 0 01-10.13-37.05V144h15.67a40.22 40.22 0 0140.23 40.22v183.36M127.9 293.05v-74.52S165.16 144 202.42 144M370.1 274.42L304 231M170.53 478.36L224 400" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="258.32" cy="69.48" r="37.26" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/walk-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/walk-sharp.svg deleted file mode 100644 index 7099bcdedde0fa75dd5b29e64d1f8df6df878296..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/walk-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Walk</title><path d="M315.09 481.38l-56.95-115.12-45-57.56a73.11 73.11 0 01-10.16-37.17V142h15.73A40.36 40.36 0 01259 182.32v162.52" stroke-linecap="square" stroke-linejoin="round" class="ionicon-stroke-width"/><path stroke-linecap="square" stroke-linejoin="round" d="M128.18 291.5v-74.77l64.95-65.1" class="ionicon-fill-none ionicon-stroke-width"/><path d="M376.35 295.73l-83.95-56.38v-44.68l104.68 72.95-20.73 28.11zM175.13 498.58l-21.43-26.91 80.33-81.54 15.53 32.07-74.43 76.38z"/><circle cx="259.02" cy="67.21" r="37.38" stroke-linecap="square" stroke-linejoin="round" stroke-width="16"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/walk.svg b/ionic/platforms/android/app/src/main/assets/www/svg/walk.svg deleted file mode 100644 index b548e93c19287e69c61aa51aeb5143c186ed1fd3..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/walk.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Walk</title><path d="M312.55 479.9l-56.42-114-44.62-57a72.37 72.37 0 01-10.06-36.9V143.64H217a40 40 0 0140 40v182.21" stroke-linecap="round" stroke-linejoin="round" class="ionicon-stroke-width"/><path d="M127.38 291.78v-74.07s37-74.07 74.07-74.07" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M368.09 291.78a18.49 18.49 0 01-10.26-3.11L297.7 250a21.18 21.18 0 01-9.7-17.79v-23.7a5.65 5.65 0 018.69-4.77l81.65 54.11a18.52 18.52 0 01-10.29 33.93zM171.91 493.47a18.5 18.5 0 01-14.83-7.41c-6.14-8.18-4-17.18 3.7-25.92l59.95-74.66a7.41 7.41 0 0110.76 2.06c1.56 2.54 3.38 5.65 5.19 9.09 5.24 9.95 6 16.11-1.68 25.7-8 10-52 67.44-52 67.44-2.62 2.98-7.23 3.7-11.09 3.7z"/><circle cx="257" cy="69.56" r="37.04" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/wallet-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/wallet-outline.svg deleted file mode 100644 index 0f0f0b7c065965904c859df1e5c0d6523c923477..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/wallet-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Wallet</title><rect x="48" y="144" width="416" height="288" rx="48" ry="48" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M411.36 144v-30A50 50 0 00352 64.9L88.64 109.85A50 50 0 0048 159v49" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M368 320a32 32 0 1132-32 32 32 0 01-32 32z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/wallet-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/wallet-sharp.svg deleted file mode 100644 index 25d6688d755af0b9c863653386f163f98df6e1ce..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/wallet-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Wallet</title><path d="M47.5 104H432V51.52a16 16 0 00-19.14-15.69l-368 60.48a16 16 0 00-12 10.47A39.69 39.69 0 0147.5 104zM463.5 128h-416a16 16 0 00-16 16v288a16 16 0 0016 16h416a16 16 0 0016-16V144a16 16 0 00-16-16zM368 320a32 32 0 1132-32 32 32 0 01-32 32z"/><path d="M31.33 259.5V116c0-12.33 5.72-18.48 15.42-20 35.2-5.53 108.58-8.5 108.58-8.5s-8.33 16-27.33 16V128c18.5 0 31.33 23.5 31.33 23.5L84.83 236z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/wallet.svg b/ionic/platforms/android/app/src/main/assets/www/svg/wallet.svg deleted file mode 100644 index 434b08c9ee82bede0efa69c2f214914548427e39..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/wallet.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Wallet</title><path d="M95.5 104h320a87.73 87.73 0 0111.18.71 66 66 0 00-77.51-55.56L86 94.08h-.3a66 66 0 00-41.07 26.13A87.57 87.57 0 0195.5 104zM415.5 128h-320a64.07 64.07 0 00-64 64v192a64.07 64.07 0 0064 64h320a64.07 64.07 0 0064-64V192a64.07 64.07 0 00-64-64zM368 320a32 32 0 1132-32 32 32 0 01-32 32z"/><path d="M32 259.5V160c0-21.67 12-58 53.65-65.87C121 87.5 156 87.5 156 87.5s23 16 4 16-18.5 24.5 0 24.5 0 23.5 0 23.5L85.5 236z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/warning-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/warning-outline.svg deleted file mode 100644 index 52b05948391926b0aefd8209de8b4b3af946b27e..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/warning-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Warning</title><path d="M85.57 446.25h340.86a32 32 0 0028.17-47.17L284.18 82.58c-12.09-22.44-44.27-22.44-56.36 0L57.4 399.08a32 32 0 0028.17 47.17z" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M250.26 195.39l5.74 122 5.73-121.95a5.74 5.74 0 00-5.79-6h0a5.74 5.74 0 00-5.68 5.95z" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M256 397.25a20 20 0 1120-20 20 20 0 01-20 20z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/warning-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/warning-sharp.svg deleted file mode 100644 index 4376c6f126e5058118c985166f3d48d8cd6d0d8e..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/warning-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Warning</title><path d="M479 447.77L268.43 56.64a8 8 0 00-14.09 0L43.73 447.77a8 8 0 007.05 11.79H472a8 8 0 007-11.79zm-197.62-36.29h-40v-40h40zm-4-63.92h-32l-6-160h44z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/warning.svg b/ionic/platforms/android/app/src/main/assets/www/svg/warning.svg deleted file mode 100644 index c7704450571dd454f12a638843315d5c51377cf3..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/warning.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Warning</title><path d="M449.07 399.08L278.64 82.58c-12.08-22.44-44.26-22.44-56.35 0L51.87 399.08A32 32 0 0080 446.25h340.89a32 32 0 0028.18-47.17zm-198.6-1.83a20 20 0 1120-20 20 20 0 01-20 20zm21.72-201.15l-5.74 122a16 16 0 01-32 0l-5.74-121.95a21.73 21.73 0 0121.5-22.69h.21a21.74 21.74 0 0121.73 22.7z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/watch-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/watch-outline.svg deleted file mode 100644 index 8c73310944335bbc992bd313ee3698c54db31ca0..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/watch-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Watch</title><rect x="112" y="112" width="288" height="288" rx="64" ry="64" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M176 112V40a8 8 0 018-8h144a8 8 0 018 8v72M336 400v72a8 8 0 01-8 8H184a8 8 0 01-8-8v-72" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/watch-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/watch-sharp.svg deleted file mode 100644 index 05e9b2158c6df7eaefeb8611c5c9a29412429676..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/watch-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Watch</title><rect x="136" y="136" width="240" height="240" rx="8" ry="8"/><path d="M384 96h-48V16H176v80h-48a32 32 0 00-32 32v256a32 32 0 0032 32h48v80h160v-80h48a32 32 0 0032-32V128a32 32 0 00-32-32zm8 272a24 24 0 01-24 24H144a24 24 0 01-24-24V144a24 24 0 0124-24h224a24 24 0 0124 24z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/watch.svg b/ionic/platforms/android/app/src/main/assets/www/svg/watch.svg deleted file mode 100644 index f7ad227c48fbb72bacb4165d33c96f07b0500276..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/watch.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Watch</title><rect x="136" y="136" width="240" height="240" rx="56" ry="56"/><path d="M336 96V32a16 16 0 00-16-16H192a16 16 0 00-16 16v64a80.09 80.09 0 00-80 80v160a80.09 80.09 0 0080 80v64a16 16 0 0016 16h128a16 16 0 0016-16v-64a80.09 80.09 0 0080-80V176a80.09 80.09 0 00-80-80zm56 224a72.08 72.08 0 01-72 72H192a72.08 72.08 0 01-72-72V192a72.08 72.08 0 0172-72h128a72.08 72.08 0 0172 72z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/water-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/water-outline.svg deleted file mode 100644 index f15535bed368568c32a296e68d9fa20c07741f30..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/water-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Water</title><path d="M400 320c0 88.37-55.63 144-144 144s-144-55.63-144-144c0-94.83 103.23-222.85 134.89-259.88a12 12 0 0118.23 0C296.77 97.15 400 225.17 400 320z" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><path d="M344 328a72 72 0 01-72 72" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/water-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/water-sharp.svg deleted file mode 100644 index 6b99072245109a2c674e3050920ac06e3be999e8..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/water-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Water</title><path d="M256 43.91s-144 158.3-144 270.3c0 88.36 55.64 144 144 144s144-55.64 144-144c0-112-144-270.3-144-270.3zm16 362.3v-24a60.07 60.07 0 0060-60h24a84.09 84.09 0 01-84 84z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/water.svg b/ionic/platforms/android/app/src/main/assets/www/svg/water.svg deleted file mode 100644 index 2aa9d8287299c7b7fbc174845dbf3f4faaed6254..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/water.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Water</title><path d="M265.12 60.12a12 12 0 00-18.23 0C215.23 97.15 112 225.17 112 320c0 88.37 55.64 144 144 144s144-55.63 144-144c0-94.83-103.23-222.85-134.88-259.88zM272 412a12 12 0 01-11.34-16 11.89 11.89 0 0111.41-8A60.06 60.06 0 00332 328.07a11.89 11.89 0 018-11.41A12 12 0 01356 328a84.09 84.09 0 01-84 84z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/wifi-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/wifi-outline.svg deleted file mode 100644 index 0169b1541ddc135203fbfa55977f5bef8be8797c..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/wifi-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Wifi</title><path d="M332.41 310.59a115 115 0 00-152.8 0M393.46 249.54a201.26 201.26 0 00-274.92 0M447.72 182.11a288 288 0 00-383.44 0" stroke-linecap="round" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path d="M256 416a32 32 0 1132-32 32 32 0 01-32 32z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/wifi-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/wifi-sharp.svg deleted file mode 100644 index a545cd25abd5e82d2251478f162191ce725d4a98..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/wifi-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Wifi</title><path d="M332.69 320a115 115 0 00-152.8 0M393.74 259a201.26 201.26 0 00-274.92 0M448 191.52a288 288 0 00-383.44 0" stroke-linecap="square" stroke-linejoin="round" stroke-width="42" class="ionicon-fill-none"/><path d="M300.67 384L256 433l-44.34-49a56.73 56.73 0 0188.92 0z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/wifi.svg b/ionic/platforms/android/app/src/main/assets/www/svg/wifi.svg deleted file mode 100644 index 635b188474a8f78157dc579a6ab3cf6ca70c669f..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/wifi.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Wifi</title><path d="M346.65 304.3a136 136 0 00-180.71 0 21 21 0 1027.91 31.38 94 94 0 01124.89 0 21 21 0 0027.91-31.4z"/><path d="M256.28 183.7a221.47 221.47 0 00-151.8 59.92 21 21 0 1028.68 30.67 180.28 180.28 0 01246.24 0 21 21 0 1028.68-30.67 221.47 221.47 0 00-151.8-59.92z"/><path d="M462 175.86a309 309 0 00-411.44 0 21 21 0 1028 31.29 267 267 0 01355.43 0 21 21 0 0028-31.31z"/><circle cx="256.28" cy="393.41" r="32"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/wine-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/wine-outline.svg deleted file mode 100644 index f465a2cd9b23a5482f6b21026a21348e2349c799..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/wine-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Wine</title><path d="M398.57 80H113.43v16S87.51 272 256 272 398.57 96 398.57 96zM256 272v160" stroke-linejoin="round" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-linejoin="round" d="M352 432H160" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linejoin="round" d="M112 160h288" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/wine-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/wine-sharp.svg deleted file mode 100644 index c0222485593570bd225a7b09c0a1865ddd632775..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/wine-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Wine</title><path d="M453 112V66.33H60.75V112l175.13 176v118H124.75v42H389v-42H277.88V288zm-336.65-3.67h281l-37.81 38H154.16z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/wine.svg b/ionic/platforms/android/app/src/main/assets/www/svg/wine.svg deleted file mode 100644 index 0b5fe14bb1e38c59dd771e269a9744111254ba65..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/wine.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Wine</title><path d="M414.56 94.92V80a16 16 0 00-16-16H113.44a16 16 0 00-16 16v14.92c-1.46 11.37-9.65 90.74 36.93 144.69 24.87 28.8 60.36 44.85 105.63 47.86V416h-80a16 16 0 000 32h192a16 16 0 000-32h-80V287.47c45.27-3 80.76-19.06 105.63-47.86 46.58-53.95 38.37-133.32 36.93-144.69zm-285.3 3.41a15.14 15.14 0 00.18-2.33h253.12a15.14 15.14 0 00.18 2.33 201.91 201.91 0 010 45.67H129.32a204.29 204.29 0 01-.06-45.67z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/woman-outline.svg b/ionic/platforms/android/app/src/main/assets/www/svg/woman-outline.svg deleted file mode 100644 index dad5ddc40e7bb9398083c8659146e8399cd05015..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/woman-outline.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Woman</title><path d="M208 368v104a23.73 23.73 0 0024 24h0a23.73 23.73 0 0024-24" stroke-linecap="round" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><path d="M256 368v104a23.73 23.73 0 0024 24h0a23.73 23.73 0 0024-24V368M183 274a23.73 23.73 0 01-29.84 16.18h0a23.72 23.72 0 01-16.17-29.84l25-84.28A44.85 44.85 0 01205 144h102a44.85 44.85 0 0143 32.08l25 84.28a23.72 23.72 0 01-16.17 29.84h0a23.73 23.73 0 01-29.78-16.2" stroke-linecap="round" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><circle cx="256" cy="56" r="40" stroke-linecap="round" stroke-miterlimit="10" class="ionicon-fill-none ionicon-stroke-width"/><path stroke-linecap="round" stroke-linejoin="round" d="M208 192l-48 160h192l-48-160" class="ionicon-fill-none ionicon-stroke-width"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/woman-sharp.svg b/ionic/platforms/android/app/src/main/assets/www/svg/woman-sharp.svg deleted file mode 100644 index 42a7f8992dd7dae4079e5e4f4bba8f59a84f2cad..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/woman-sharp.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Woman</title><circle cx="255.75" cy="56" r="56"/><path d="M310.28 191.4h.05l7.66-2.3 36.79 122.6 46-13.8-16.21-54.16c0-.12 0-.24-.07-.36l-16.84-56.12-4.71-15.74-.9-3H362l-2.51-8.45a44.84 44.84 0 00-43-32.08H195.24a44.84 44.84 0 00-43 32.08l-2.51 8.45h-.06l-.9 3-4.71 15.74-16.84 56.12c0 .12 0 .24-.07.36l-16.21 54.16 46 13.8 36.76-122.6 7.54 2.26L148.25 368h51.5v144h52V368h8v144h52V368h51.51z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/assets/www/svg/woman.svg b/ionic/platforms/android/app/src/main/assets/www/svg/woman.svg deleted file mode 100644 index cc3ec61b8f20714ff364b6dd91f73b8d185907c3..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/assets/www/svg/woman.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" class="ionicon" viewBox="0 0 512 512"><title>Woman</title><circle cx="255.75" cy="56" r="56"/><path d="M394.63 277.9l-10.33-34.41v-.11l-22.46-74.86h-.05l-2.51-8.45a44.87 44.87 0 00-43-32.08h-120a44.84 44.84 0 00-43 32.08l-2.51 8.45h-.06l-22.46 74.86v.11l-10.37 34.41c-3.12 10.39 2.3 21.66 12.57 25.14a20 20 0 0025.6-13.18l25.58-85.25 2.17-7.23a8 8 0 0115.53 2.62 7.78 7.78 0 01-.17 1.61L155.43 347.4a16 16 0 0015.32 20.6h29v114.69c0 16.46 10.53 29.31 24 29.31s24-12.85 24-29.31V368h16v114.69c0 16.46 10.53 29.31 24 29.31s24-12.85 24-29.31V368h30a16 16 0 0015.33-20.6l-43.74-145.81a7.52 7.52 0 01-.16-1.59 8 8 0 0115.54-2.63l2.17 7.23 25.57 85.25A20 20 0 00382.05 303c10.27-3.44 15.69-14.71 12.58-25.1z"/></svg> \ No newline at end of file diff --git a/ionic/platforms/android/app/src/main/java/com/ionicframework/cordova/webview/AndroidProtocolHandler.java b/ionic/platforms/android/app/src/main/java/com/ionicframework/cordova/webview/AndroidProtocolHandler.java deleted file mode 100644 index 6202a5b919c0f3d816478bfbf23aef3490ffba22..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/java/com/ionicframework/cordova/webview/AndroidProtocolHandler.java +++ /dev/null @@ -1,107 +0,0 @@ -package com.ionicframework.cordova.webview; - -// Copyright 2012 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import android.content.Context; -import android.content.res.AssetManager; -import android.net.Uri; -import android.util.Log; -import android.util.TypedValue; - -import java.io.File; -import java.io.FileInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.util.List; - - -public class AndroidProtocolHandler { - private static final String TAG = "AndroidProtocolHandler"; - - private Context context; - - public AndroidProtocolHandler(Context context) { - this.context = context; - } - - public InputStream openAsset(String path) throws IOException { - return context.getAssets().open(path, AssetManager.ACCESS_STREAMING); - } - - public InputStream openResource(Uri uri) { - assert uri.getPath() != null; - // The path must be of the form ".../asset_type/asset_name.ext". - List<String> pathSegments = uri.getPathSegments(); - String assetType = pathSegments.get(pathSegments.size() - 2); - String assetName = pathSegments.get(pathSegments.size() - 1); - - // Drop the file extension. - assetName = assetName.split("\\.")[0]; - try { - // Use the application context for resolving the resource package name so that we do - // not use the browser's own resources. Note that if 'context' here belongs to the - // test suite, it does not have a separate application context. In that case we use - // the original context object directly. - if (context.getApplicationContext() != null) { - context = context.getApplicationContext(); - } - int fieldId = getFieldId(context, assetType, assetName); - int valueType = getValueType(context, fieldId); - if (valueType == TypedValue.TYPE_STRING) { - return context.getResources().openRawResource(fieldId); - } else { - Log.e(TAG, "Asset not of type string: " + uri); - return null; - } - } catch (ClassNotFoundException e) { - Log.e(TAG, "Unable to open resource URL: " + uri, e); - return null; - } catch (NoSuchFieldException e) { - Log.e(TAG, "Unable to open resource URL: " + uri, e); - return null; - } catch (IllegalAccessException e) { - Log.e(TAG, "Unable to open resource URL: " + uri, e); - return null; - } - } - - public InputStream openFile(String filePath) throws IOException { - String realPath = filePath.replace(WebViewLocalServer.fileStart, ""); - File localFile = new File(realPath); - return new FileInputStream(localFile); - } - - public InputStream openContentUrl(Uri uri) throws IOException { - Integer port = uri.getPort(); - String realPath; - if (port == -1) { - realPath = uri.toString().replace(uri.getScheme() + "://" + uri.getHost() + WebViewLocalServer.contentStart, "content:/"); - } else { - realPath = uri.toString().replace(uri.getScheme() + "://" + uri.getHost() + ":" + port + WebViewLocalServer.contentStart, "content:/"); - } - InputStream stream = null; - try { - stream = context.getContentResolver().openInputStream(Uri.parse(realPath)); - } catch (SecurityException e) { - Log.e(TAG, "Unable to open content URL: " + uri, e); - } - return stream; - } - - private static int getFieldId(Context context, String assetType, String assetName) - throws ClassNotFoundException, NoSuchFieldException, IllegalAccessException { - Class<?> d = context.getClassLoader() - .loadClass(context.getPackageName() + ".R$" + assetType); - java.lang.reflect.Field field = d.getField(assetName); - int id = field.getInt(null); - return id; - } - - private static int getValueType(Context context, int fieldId) { - TypedValue value = new TypedValue(); - context.getResources().getValue(fieldId, value, true); - return value.type; - } -} diff --git a/ionic/platforms/android/app/src/main/java/com/ionicframework/cordova/webview/IonicWebView.java b/ionic/platforms/android/app/src/main/java/com/ionicframework/cordova/webview/IonicWebView.java deleted file mode 100644 index ff771371e7161e081b95948bcfa730e13a09dbb5..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/java/com/ionicframework/cordova/webview/IonicWebView.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.ionicframework.cordova.webview; - -import android.app.Activity; -import android.content.SharedPreferences; - -import org.apache.cordova.CallbackContext; -import org.apache.cordova.CordovaPlugin; -import org.json.JSONArray; -import org.json.JSONException; - -public class IonicWebView extends CordovaPlugin { - - public static final String WEBVIEW_PREFS_NAME = "WebViewSettings"; - public static final String CDV_SERVER_PATH = "serverBasePath"; - - public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException { - - if (action.equals("setServerBasePath")) { - final String path = args.getString(0); - cordova.getActivity().runOnUiThread(new Runnable() { - public void run() { - ((IonicWebViewEngine)webView.getEngine()).setServerBasePath(path); - } - }); - return true; - } else if (action.equals("getServerBasePath")) { - callbackContext.success(((IonicWebViewEngine)webView.getEngine()).getServerBasePath()); - return true; - } else if (action.equals("persistServerBasePath")) { - String path = ((IonicWebViewEngine)webView.getEngine()).getServerBasePath(); - SharedPreferences prefs = cordova.getActivity().getApplicationContext().getSharedPreferences(WEBVIEW_PREFS_NAME, Activity.MODE_PRIVATE); - SharedPreferences.Editor editor = prefs.edit(); - editor.putString(CDV_SERVER_PATH, path); - editor.apply(); - return true; - } - return false; - } - -} - diff --git a/ionic/platforms/android/app/src/main/java/com/ionicframework/cordova/webview/IonicWebViewEngine.java b/ionic/platforms/android/app/src/main/java/com/ionicframework/cordova/webview/IonicWebViewEngine.java deleted file mode 100644 index 02bdaf8cb64e48e7e520bc3b45cf9e161796269c..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/java/com/ionicframework/cordova/webview/IonicWebViewEngine.java +++ /dev/null @@ -1,181 +0,0 @@ -package com.ionicframework.cordova.webview; - -import android.app.Activity; -import android.content.Context; -import android.content.SharedPreferences; -import android.content.pm.PackageInfo; -import android.annotation.TargetApi; -import android.graphics.Bitmap; -import android.net.Uri; -import android.os.Build; -import android.support.annotation.RequiresApi; -import android.util.Log; -import android.webkit.ServiceWorkerController; -import android.webkit.ServiceWorkerClient; -import android.webkit.WebResourceRequest; -import android.webkit.WebResourceResponse; -import android.webkit.WebSettings; -import android.webkit.WebView; -import org.apache.cordova.ConfigXmlParser; -import org.apache.cordova.CordovaInterface; -import org.apache.cordova.CordovaPreferences; -import org.apache.cordova.CordovaResourceApi; -import org.apache.cordova.CordovaWebView; -import org.apache.cordova.CordovaWebViewEngine; -import org.apache.cordova.NativeToJsMessageQueue; -import org.apache.cordova.PluginManager; -import org.apache.cordova.engine.SystemWebViewClient; -import org.apache.cordova.engine.SystemWebViewEngine; -import org.apache.cordova.engine.SystemWebView; - -public class IonicWebViewEngine extends SystemWebViewEngine { - public static final String TAG = "IonicWebViewEngine"; - - private WebViewLocalServer localServer; - private String CDV_LOCAL_SERVER; - private String scheme; - private static final String LAST_BINARY_VERSION_CODE = "lastBinaryVersionCode"; - private static final String LAST_BINARY_VERSION_NAME = "lastBinaryVersionName"; - - /** - * Used when created via reflection. - */ - public IonicWebViewEngine(Context context, CordovaPreferences preferences) { - super(new SystemWebView(context), preferences); - Log.d(TAG, "Ionic Web View Engine Starting Right Up 1..."); - } - - public IonicWebViewEngine(SystemWebView webView) { - super(webView, null); - Log.d(TAG, "Ionic Web View Engine Starting Right Up 2..."); - } - - public IonicWebViewEngine(SystemWebView webView, CordovaPreferences preferences) { - super(webView, preferences); - Log.d(TAG, "Ionic Web View Engine Starting Right Up 3..."); - } - - @Override - public void init(CordovaWebView parentWebView, CordovaInterface cordova, final CordovaWebViewEngine.Client client, - CordovaResourceApi resourceApi, PluginManager pluginManager, - NativeToJsMessageQueue nativeToJsMessageQueue) { - ConfigXmlParser parser = new ConfigXmlParser(); - parser.parse(cordova.getActivity()); - - String hostname = preferences.getString("Hostname", "localhost"); - scheme = preferences.getString("Scheme", "http"); - CDV_LOCAL_SERVER = scheme + "://" + hostname; - - localServer = new WebViewLocalServer(cordova.getActivity(), hostname, true, parser, scheme); - localServer.hostAssets("www"); - - webView.setWebViewClient(new ServerClient(this, parser)); - - super.init(parentWebView, cordova, client, resourceApi, pluginManager, nativeToJsMessageQueue); - if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { - final WebSettings settings = webView.getSettings(); - int mode = preferences.getInteger("MixedContentMode", 0); - settings.setMixedContentMode(mode); - } - SharedPreferences prefs = cordova.getActivity().getApplicationContext().getSharedPreferences(IonicWebView.WEBVIEW_PREFS_NAME, Activity.MODE_PRIVATE); - String path = prefs.getString(IonicWebView.CDV_SERVER_PATH, null); - if (!isDeployDisabled() && !isNewBinary() && path != null && !path.isEmpty()) { - setServerBasePath(path); - } - - boolean setAsServiceWorkerClient = preferences.getBoolean("ResolveServiceWorkerRequests", false); - ServiceWorkerController controller = null; - - if (setAsServiceWorkerClient && android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N) { - controller = ServiceWorkerController.getInstance(); - controller.setServiceWorkerClient(new ServiceWorkerClient(){ - @Override - public WebResourceResponse shouldInterceptRequest(WebResourceRequest request) { - return localServer.shouldInterceptRequest(request.getUrl(), request); - } - }); - } - } - - private boolean isNewBinary() { - String versionCode = ""; - String versionName = ""; - SharedPreferences prefs = cordova.getActivity().getApplicationContext().getSharedPreferences(IonicWebView.WEBVIEW_PREFS_NAME, Activity.MODE_PRIVATE); - String lastVersionCode = prefs.getString(LAST_BINARY_VERSION_CODE, null); - String lastVersionName = prefs.getString(LAST_BINARY_VERSION_NAME, null); - - try { - PackageInfo pInfo = this.cordova.getActivity().getPackageManager().getPackageInfo(this.cordova.getActivity().getPackageName(), 0); - versionCode = Integer.toString(pInfo.versionCode); - versionName = pInfo.versionName; - } catch(Exception ex) { - Log.e(TAG, "Unable to get package info", ex); - } - - if (!versionCode.equals(lastVersionCode) || !versionName.equals(lastVersionName)) { - SharedPreferences.Editor editor = prefs.edit(); - editor.putString(LAST_BINARY_VERSION_CODE, versionCode); - editor.putString(LAST_BINARY_VERSION_NAME, versionName); - editor.putString(IonicWebView.CDV_SERVER_PATH, ""); - editor.apply(); - return true; - } - return false; - } - - private boolean isDeployDisabled() { - return preferences.getBoolean("DisableDeploy", false); - } - private class ServerClient extends SystemWebViewClient { - private ConfigXmlParser parser; - - public ServerClient(SystemWebViewEngine parentEngine, ConfigXmlParser parser) { - super(parentEngine); - this.parser = parser; - } - - @RequiresApi(Build.VERSION_CODES.LOLLIPOP) - @Override - public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) { - return localServer.shouldInterceptRequest(request.getUrl(), request); - } - - @TargetApi(Build.VERSION_CODES.KITKAT) - @Override - public WebResourceResponse shouldInterceptRequest(WebView view, String url) { - return localServer.shouldInterceptRequest(Uri.parse(url), null); - } - - @Override - public void onPageStarted(WebView view, String url, Bitmap favicon) { - super.onPageStarted(view, url, favicon); - String launchUrl = parser.getLaunchUrl(); - if (!launchUrl.contains(WebViewLocalServer.httpsScheme) && !launchUrl.contains(WebViewLocalServer.httpScheme) && url.equals(launchUrl)) { - view.stopLoading(); - // When using a custom scheme the app won't load if server start url doesn't end in / - String startUrl = CDV_LOCAL_SERVER; - if (!scheme.equalsIgnoreCase(WebViewLocalServer.httpsScheme) && !scheme.equalsIgnoreCase(WebViewLocalServer.httpScheme)) { - startUrl += "/"; - } - view.loadUrl(startUrl); - } - } - - @Override - public void onPageFinished(WebView view, String url) { - super.onPageFinished(view, url); - view.loadUrl("javascript:(function() { " + - "window.WEBVIEW_SERVER_URL = '" + CDV_LOCAL_SERVER + "';" + - "})()"); - } - } - - public void setServerBasePath(String path) { - localServer.hostFiles(path); - webView.loadUrl(CDV_LOCAL_SERVER); - } - - public String getServerBasePath() { - return this.localServer.getBasePath(); - } -} diff --git a/ionic/platforms/android/app/src/main/java/com/ionicframework/cordova/webview/UriMatcher.java b/ionic/platforms/android/app/src/main/java/com/ionicframework/cordova/webview/UriMatcher.java deleted file mode 100644 index d8addb9b95a7f5fbb840d89250087c47487b150b..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/java/com/ionicframework/cordova/webview/UriMatcher.java +++ /dev/null @@ -1,183 +0,0 @@ -package com.ionicframework.cordova.webview; - -/* - * Copyright (C) 2006 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -//package com.google.webviewlocalserver.third_party.android; - -import android.net.Uri; - -import java.util.ArrayList; -import java.util.List; -import java.util.regex.Pattern; - -public class UriMatcher { - /** - * Creates the root node of the URI tree. - * - * @param code the code to match for the root URI - */ - public UriMatcher(Object code) { - mCode = code; - mWhich = -1; - mChildren = new ArrayList<UriMatcher>(); - mText = null; - } - - private UriMatcher() { - mCode = null; - mWhich = -1; - mChildren = new ArrayList<UriMatcher>(); - mText = null; - } - - /** - * Add a URI to match, and the code to return when this URI is - * matched. URI nodes may be exact match string, the token "*" - * that matches any text, or the token "#" that matches only - * numbers. - * <p> - * Starting from API level {@link android.os.Build.VERSION_CODES#JELLY_BEAN_MR2}, - * this method will accept a leading slash in the path. - * - * @param authority the authority to match - * @param path the path to match. * may be used as a wild card for - * any text, and # may be used as a wild card for numbers. - * @param code the code that is returned when a URI is matched - * against the given components. Must be positive. - */ - public void addURI(String scheme, String authority, String path, Object code) { - if (code == null) { - throw new IllegalArgumentException("Code can't be null"); - } - - String[] tokens = null; - if (path != null) { - String newPath = path; - // Strip leading slash if present. - if (path.length() > 0 && path.charAt(0) == '/') { - newPath = path.substring(1); - } - tokens = PATH_SPLIT_PATTERN.split(newPath); - } - - int numTokens = tokens != null ? tokens.length : 0; - UriMatcher node = this; - for (int i = -2; i < numTokens; i++) { - String token; - if (i == -2) - token = scheme; - else if (i == -1) - token = authority; - else - token = tokens[i]; - ArrayList<UriMatcher> children = node.mChildren; - int numChildren = children.size(); - UriMatcher child; - int j; - for (j = 0; j < numChildren; j++) { - child = children.get(j); - if (token.equals(child.mText)) { - node = child; - break; - } - } - if (j == numChildren) { - // Child not found, create it - child = new UriMatcher(); - if (token.equals("**")) { - child.mWhich = REST; - } else if (token.equals("*")) { - child.mWhich = TEXT; - } else { - child.mWhich = EXACT; - } - child.mText = token; - node.mChildren.add(child); - node = child; - } - } - node.mCode = code; - } - - static final Pattern PATH_SPLIT_PATTERN = Pattern.compile("/"); - - /** - * Try to match against the path in a url. - * - * @param uri The url whose path we will match against. - * @return The code for the matched node (added using addURI), - * or null if there is no matched node. - */ - public Object match(Uri uri) { - final List<String> pathSegments = uri.getPathSegments(); - final int li = pathSegments.size(); - - UriMatcher node = this; - - if (li == 0 && uri.getAuthority() == null) { - return this.mCode; - } - - for (int i = -2; i < li; i++) { - String u; - if (i == -2) - u = uri.getScheme(); - else if (i == -1) - u = uri.getAuthority(); - else - u = pathSegments.get(i); - ArrayList<UriMatcher> list = node.mChildren; - if (list == null) { - break; - } - node = null; - int lj = list.size(); - for (int j = 0; j < lj; j++) { - UriMatcher n = list.get(j); - which_switch: - switch (n.mWhich) { - case EXACT: - if (n.mText.equals(u)) { - node = n; - } - break; - case TEXT: - node = n; - break; - case REST: - return n.mCode; - } - if (node != null) { - break; - } - } - if (node == null) { - return null; - } - } - - return node.mCode; - } - - private static final int EXACT = 0; - private static final int TEXT = 1; - private static final int REST = 2; - - private Object mCode; - private int mWhich; - private String mText; - private ArrayList<UriMatcher> mChildren; -} diff --git a/ionic/platforms/android/app/src/main/java/com/ionicframework/cordova/webview/WebViewLocalServer.java b/ionic/platforms/android/app/src/main/java/com/ionicframework/cordova/webview/WebViewLocalServer.java deleted file mode 100644 index cf134932bff438f691e52b79873ff80dcb0e028d..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/java/com/ionicframework/cordova/webview/WebViewLocalServer.java +++ /dev/null @@ -1,645 +0,0 @@ -/* -Copyright 2015 Google Inc. All rights reserved. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. - */ -package com.ionicframework.cordova.webview; - -import android.content.Context; -import android.net.Uri; -import android.os.Build; -import android.util.Log; -import android.webkit.WebResourceRequest; -import android.webkit.WebResourceResponse; - -import org.apache.cordova.ConfigXmlParser; - -import java.io.IOException; -import java.io.InputStream; -import java.net.HttpURLConnection; -import java.net.SocketTimeoutException; -import java.net.URL; -import java.net.URLConnection; -import java.util.HashMap; -import java.util.Map; -import java.util.UUID; - -/** - * Helper class meant to be used with the android.webkit.WebView class to enable hosting assets, - * resources and other data on 'virtual' http(s):// URL. - * Hosting assets and resources on http(s):// URLs is desirable as it is compatible with the - * Same-Origin policy. - * <p> - * This class is intended to be used from within the - * {@link android.webkit.WebViewClient#shouldInterceptRequest(android.webkit.WebView, String)} and - * {@link android.webkit.WebViewClient#shouldInterceptRequest(android.webkit.WebView, - * android.webkit.WebResourceRequest)} - * methods. - */ -public class WebViewLocalServer { - private static String TAG = "WebViewAssetServer"; - private String basePath; - public final static String httpScheme = "http"; - public final static String httpsScheme = "https"; - public final static String fileStart = "/_app_file_"; - public final static String contentStart = "/_app_content_"; - - private final UriMatcher uriMatcher; - private final AndroidProtocolHandler protocolHandler; - private final String authority; - private final String customScheme; - // Whether we're serving local files or proxying (for example, when doing livereload on a - // non-local endpoint (will be false in that case) - private boolean isAsset; - // Whether to route all requests to paths without extensions back to `index.html` - private final boolean html5mode; - private ConfigXmlParser parser; - - public String getAuthority() { return authority; } - - /** - * A handler that produces responses for paths on the virtual asset server. - * <p> - * Methods of this handler will be invoked on a background thread and care must be taken to - * correctly synchronize access to any shared state. - * <p> - * On Android KitKat and above these methods may be called on more than one thread. This thread - * may be different than the thread on which the shouldInterceptRequest method was invoke. - * This means that on Android KitKat and above it is possible to block in this method without - * blocking other resources from loading. The number of threads used to parallelize loading - * is an internal implementation detail of the WebView and may change between updates which - * means that the amount of time spend blocking in this method should be kept to an absolute - * minimum. - */ - public abstract static class PathHandler { - protected String mimeType; - private String encoding; - private String charset; - private int statusCode; - private String reasonPhrase; - private Map<String, String> responseHeaders; - - public PathHandler() { - this(null, null, 200, "OK", null); - } - - public PathHandler(String encoding, String charset, int statusCode, - String reasonPhrase, Map<String, String> responseHeaders) { - this.encoding = encoding; - this.charset = charset; - this.statusCode = statusCode; - this.reasonPhrase = reasonPhrase; - Map<String, String> tempResponseHeaders; - if (responseHeaders == null) { - tempResponseHeaders = new HashMap<String, String>(); - } else { - tempResponseHeaders = responseHeaders; - } - tempResponseHeaders.put("Cache-Control", "no-cache"); - this.responseHeaders = tempResponseHeaders; - } - - abstract public InputStream handle(Uri url); - - public String getEncoding() { - return encoding; - } - - public String getCharset() { - return charset; - } - - public int getStatusCode() { - return statusCode; - } - - public String getReasonPhrase() { - return reasonPhrase; - } - - public Map<String, String> getResponseHeaders() { - return responseHeaders; - } - } - - /** - * Information about the URLs used to host the assets in the WebView. - */ - public static class AssetHostingDetails { - private Uri httpPrefix; - private Uri httpsPrefix; - - /*package*/ AssetHostingDetails(Uri httpPrefix, Uri httpsPrefix) { - this.httpPrefix = httpPrefix; - this.httpsPrefix = httpsPrefix; - } - - /** - * Gets the http: scheme prefix at which assets are hosted. - * - * @return the http: scheme prefix at which assets are hosted. Can return null. - */ - public Uri getHttpPrefix() { - return httpPrefix; - } - - /** - * Gets the https: scheme prefix at which assets are hosted. - * - * @return the https: scheme prefix at which assets are hosted. Can return null. - */ - public Uri getHttpsPrefix() { - return httpsPrefix; - } - } - - WebViewLocalServer(Context context, String authority, boolean html5mode, ConfigXmlParser parser, String customScheme) { - uriMatcher = new UriMatcher(null); - this.html5mode = html5mode; - this.parser = parser; - this.protocolHandler = new AndroidProtocolHandler(context.getApplicationContext()); - this.authority = authority; - this.customScheme = customScheme; - } - - private static Uri parseAndVerifyUrl(String url) { - if (url == null) { - return null; - } - Uri uri = Uri.parse(url); - if (uri == null) { - Log.e(TAG, "Malformed URL: " + url); - return null; - } - String path = uri.getPath(); - if (path == null || path.length() == 0) { - Log.e(TAG, "URL does not have a path: " + url); - return null; - } - return uri; - } - - private static WebResourceResponse createWebResourceResponse(String mimeType, String encoding, int statusCode, String reasonPhrase, Map<String, String> responseHeaders, InputStream data) { - if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { - int finalStatusCode = statusCode; - try { - if (data.available() == 0) { - finalStatusCode = 404; - } - } catch (IOException e) { - finalStatusCode = 500; - } - return new WebResourceResponse(mimeType, encoding, finalStatusCode, reasonPhrase, responseHeaders, data); - } else { - return new WebResourceResponse(mimeType, encoding, data); - } - } - - /** - * Attempt to retrieve the WebResourceResponse associated with the given <code>request</code>. - * This method should be invoked from within - * {@link android.webkit.WebViewClient#shouldInterceptRequest(android.webkit.WebView, - * android.webkit.WebResourceRequest)}. - * - * @param uri the request Uri to process. - * @return a response if the request URL had a matching handler, null if no handler was found. - */ - public WebResourceResponse shouldInterceptRequest(Uri uri, WebResourceRequest request) { - PathHandler handler; - synchronized (uriMatcher) { - handler = (PathHandler) uriMatcher.match(uri); - } - if (handler == null) { - return null; - } - - if (isLocalFile(uri) || uri.getAuthority().equals(this.authority)) { - Log.d("SERVER", "Handling local request: " + uri.toString()); - return handleLocalRequest(uri, handler, request); - } else { - return handleProxyRequest(uri, handler); - } - } - - private boolean isLocalFile(Uri uri) { - String path = uri.getPath(); - if (path.startsWith(contentStart) || path.startsWith(fileStart)) { - return true; - } - return false; - } - - - private WebResourceResponse handleLocalRequest(Uri uri, PathHandler handler, WebResourceRequest request) { - String path = uri.getPath(); - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP && request != null && request.getRequestHeaders().get("Range") != null) { - InputStream responseStream = new LollipopLazyInputStream(handler, uri); - String mimeType = getMimeType(path, responseStream); - Map<String, String> tempResponseHeaders = handler.getResponseHeaders(); - int statusCode = 206; - try { - int totalRange = responseStream.available(); - String rangeString = request.getRequestHeaders().get("Range"); - String[] parts = rangeString.split("="); - String[] streamParts = parts[1].split("-"); - String fromRange = streamParts[0]; - int range = totalRange-1; - if (streamParts.length > 1) { - range = Integer.parseInt(streamParts[1]); - } - tempResponseHeaders.put("Accept-Ranges", "bytes"); - tempResponseHeaders.put("Content-Range", "bytes " + fromRange + "-" + range + "/" + totalRange); - } catch (IOException e) { - statusCode = 404; - } - return createWebResourceResponse(mimeType, handler.getEncoding(), - statusCode, handler.getReasonPhrase(), tempResponseHeaders, responseStream); - } - if (isLocalFile(uri)) { - InputStream responseStream = new LollipopLazyInputStream(handler, uri); - String mimeType = getMimeType(path, responseStream); - return createWebResourceResponse(mimeType, handler.getEncoding(), - handler.getStatusCode(), handler.getReasonPhrase(), handler.getResponseHeaders(), responseStream); - } - - if (path.equals("") || path.equals("/") || (!uri.getLastPathSegment().contains(".") && html5mode)) { - InputStream stream; - String launchURL = parser.getLaunchUrl(); - String launchFile = launchURL.substring(launchURL.lastIndexOf("/") + 1, launchURL.length()); - try { - String startPath = this.basePath + "/" + launchFile; - if (isAsset) { - stream = protocolHandler.openAsset(startPath); - } else { - stream = protocolHandler.openFile(startPath); - } - - } catch (IOException e) { - Log.e(TAG, "Unable to open " + launchFile, e); - return null; - } - - return createWebResourceResponse("text/html", handler.getEncoding(), - handler.getStatusCode(), handler.getReasonPhrase(), handler.getResponseHeaders(), stream); - } - - int periodIndex = path.lastIndexOf("."); - if (periodIndex >= 0) { - InputStream responseStream = new LollipopLazyInputStream(handler, uri); - String mimeType = getMimeType(path, responseStream); - return createWebResourceResponse(mimeType, handler.getEncoding(), - handler.getStatusCode(), handler.getReasonPhrase(), handler.getResponseHeaders(), responseStream); - } - - return null; - } - - /** - * Instead of reading files from the filesystem/assets, proxy through to the URL - * and let an external server handle it. - * @param uri - * @param handler - * @return - */ - private WebResourceResponse handleProxyRequest(Uri uri, PathHandler handler) { - try { - String path = uri.getPath(); - URL url = new URL(uri.toString()); - HttpURLConnection conn = (HttpURLConnection) url.openConnection(); - conn.setRequestMethod("GET"); - conn.setReadTimeout(30 * 1000); - conn.setConnectTimeout(30 * 1000); - - InputStream stream = conn.getInputStream(); - - if (path.equals("/") || (!uri.getLastPathSegment().contains(".") && html5mode)) { - return createWebResourceResponse("text/html", handler.getEncoding(), - handler.getStatusCode(), handler.getReasonPhrase(), handler.getResponseHeaders(), stream); - } - - int periodIndex = path.lastIndexOf("."); - if (periodIndex >= 0) { - String ext = path.substring(path.lastIndexOf("."), path.length()); - - // TODO: Conjure up a bit more subtlety than this - if (ext.equals(".html")) { - } - - String mimeType = getMimeType(path, stream); - - return createWebResourceResponse(mimeType, handler.getEncoding(), - handler.getStatusCode(), handler.getReasonPhrase(), handler.getResponseHeaders(), stream); - } - - return createWebResourceResponse("", handler.getEncoding(), - handler.getStatusCode(), handler.getReasonPhrase(), handler.getResponseHeaders(), stream); - - } catch (SocketTimeoutException ex) { - // bridge.handleAppUrlLoadError(ex); - } catch (Exception ex) { - // bridge.handleAppUrlLoadError(ex); - } - return null; - } - - private String getMimeType(String path, InputStream stream) { - String mimeType = null; - try { - mimeType = URLConnection.guessContentTypeFromName(path); // Does not recognize *.js - if (mimeType != null && path.endsWith(".js") && mimeType.equals("image/x-icon")) { - Log.d(IonicWebViewEngine.TAG, "We shouldn't be here"); - } - if (mimeType == null) { - if (path.endsWith(".js") || path.endsWith(".mjs")) { - // Make sure JS files get the proper mimetype to support ES modules - mimeType = "application/javascript"; - } else if (path.endsWith(".wasm")) { - mimeType = "application/wasm"; - } else { - mimeType = URLConnection.guessContentTypeFromStream(stream); - } - } - } catch (Exception ex) { - Log.e(TAG, "Unable to get mime type" + path, ex); - } - return mimeType; - } - - /** - * Registers a handler for the given <code>uri</code>. The <code>handler</code> will be invoked - * every time the <code>shouldInterceptRequest</code> method of the instance is called with - * a matching <code>uri</code>. - * - * @param uri the uri to use the handler for. The scheme and authority (domain) will be matched - * exactly. The path may contain a '*' element which will match a single element of - * a path (so a handler registered for /a/* will be invoked for /a/b and /a/c.html - * but not for /a/b/b) or the '**' element which will match any number of path - * elements. - * @param handler the handler to use for the uri. - */ - void register(Uri uri, PathHandler handler) { - synchronized (uriMatcher) { - uriMatcher.addURI(uri.getScheme(), uri.getAuthority(), uri.getPath(), handler); - } - } - - /** - * Hosts the application's assets on an http(s):// URL. Assets from the local path - * <code>assetPath/...</code> will be available under - * <code>http(s)://{uuid}.androidplatform.net/assets/...</code>. - * - * @param assetPath the local path in the application's asset folder which will be made - * available by the server (for example "/www"). - */ - public void hostAssets(String assetPath) { - hostAssets(authority, assetPath); - } - - - /** - * Hosts the application's assets on an http(s):// URL. Assets from the local path - * <code>assetPath/...</code> will be available under - * <code>http(s)://{domain}/{virtualAssetPath}/...</code>. - * - * @param domain custom domain on which the assets should be hosted (for example "example.com"). - * @param assetPath the local path in the application's asset folder which will be made - * available by the server (for example "/www"). - * @return prefixes under which the assets are hosted. - */ - public void hostAssets(final String domain, - final String assetPath) { - this.isAsset = true; - this.basePath = assetPath; - - createHostingDetails(); - } - - private void createHostingDetails() { - final String assetPath = this.basePath; - - if (assetPath.indexOf('*') != -1) { - throw new IllegalArgumentException("assetPath cannot contain the '*' character."); - } - - PathHandler handler = new PathHandler() { - @Override - public InputStream handle(Uri url) { - InputStream stream = null; - String path = url.getPath(); - try { - if (path.startsWith(contentStart)) { - stream = protocolHandler.openContentUrl(url); - } else if (path.startsWith(fileStart) || !isAsset) { - if (!path.startsWith(fileStart)) { - path = basePath + url.getPath(); - } - stream = protocolHandler.openFile(path); - } else { - stream = protocolHandler.openAsset(assetPath + path); - } - } catch (IOException e) { - Log.e(TAG, "Unable to open asset URL: " + url); - return null; - } - - return stream; - } - }; - - registerUriForScheme(httpScheme, handler, authority); - registerUriForScheme(httpsScheme, handler, authority); - if (!customScheme.equals(httpScheme) && !customScheme.equals(httpsScheme)) { - registerUriForScheme(customScheme, handler, authority); - } - - } - - private void registerUriForScheme(String scheme, PathHandler handler, String authority) { - Uri.Builder uriBuilder = new Uri.Builder(); - uriBuilder.scheme(scheme); - uriBuilder.authority(authority); - uriBuilder.path(""); - Uri uriPrefix = uriBuilder.build(); - - register(Uri.withAppendedPath(uriPrefix, "/"), handler); - register(Uri.withAppendedPath(uriPrefix, "**"), handler); - } - - /** - * Hosts the application's resources on an http(s):// URL. Resources - * <code>http(s)://{uuid}.androidplatform.net/res/{resource_type}/{resource_name}</code>. - * - * @return prefixes under which the resources are hosted. - */ - public AssetHostingDetails hostResources() { - return hostResources(authority, "/res", true, true); - } - - /** - * Hosts the application's resources on an http(s):// URL. Resources - * <code>http(s)://{uuid}.androidplatform.net/{virtualResourcesPath}/{resource_type}/{resource_name}</code>. - * - * @param virtualResourcesPath the path on the local server under which the resources - * should be hosted. - * @param enableHttp whether to enable hosting using the http scheme. - * @param enableHttps whether to enable hosting using the https scheme. - * @return prefixes under which the resources are hosted. - */ - public AssetHostingDetails hostResources(final String virtualResourcesPath, boolean enableHttp, - boolean enableHttps) { - return hostResources(authority, virtualResourcesPath, enableHttp, enableHttps); - } - - /** - * Hosts the application's resources on an http(s):// URL. Resources - * <code>http(s)://{domain}/{virtualResourcesPath}/{resource_type}/{resource_name}</code>. - * - * @param domain custom domain on which the assets should be hosted (for example "example.com"). - * If untrusted content is to be loaded into the WebView it is advised to make - * this random. - * @param virtualResourcesPath the path on the local server under which the resources - * should be hosted. - * @param enableHttp whether to enable hosting using the http scheme. - * @param enableHttps whether to enable hosting using the https scheme. - * @return prefixes under which the resources are hosted. - */ - public AssetHostingDetails hostResources(final String domain, - final String virtualResourcesPath, boolean enableHttp, - boolean enableHttps) { - if (virtualResourcesPath.indexOf('*') != -1) { - throw new IllegalArgumentException( - "virtualResourcesPath cannot contain the '*' character."); - } - - Uri.Builder uriBuilder = new Uri.Builder(); - uriBuilder.scheme(httpScheme); - uriBuilder.authority(domain); - uriBuilder.path(virtualResourcesPath); - - Uri httpPrefix = null; - Uri httpsPrefix = null; - - PathHandler handler = new PathHandler() { - @Override - public InputStream handle(Uri url) { - InputStream stream = protocolHandler.openResource(url); - String mimeType = null; - try { - mimeType = URLConnection.guessContentTypeFromStream(stream); - } catch (Exception ex) { - Log.e(TAG, "Unable to get mime type" + url); - } - - return stream; - } - }; - - if (enableHttp) { - httpPrefix = uriBuilder.build(); - register(Uri.withAppendedPath(httpPrefix, "**"), handler); - } - if (enableHttps) { - uriBuilder.scheme(httpsScheme); - httpsPrefix = uriBuilder.build(); - register(Uri.withAppendedPath(httpsPrefix, "**"), handler); - } - return new AssetHostingDetails(httpPrefix, httpsPrefix); - } - - - /** - * Hosts the application's files on an http(s):// URL. Files from the basePath - * <code>basePath/...</code> will be available under - * <code>http(s)://{uuid}.androidplatform.net/...</code>. - * - * @param basePath the local path in the application's data folder which will be made - * available by the server (for example "/www"). - */ - public void hostFiles(final String basePath) { - this.isAsset = false; - this.basePath = basePath; - createHostingDetails(); - } - - /** - * The KitKat WebView reads the InputStream on a separate threadpool. We can use that to - * parallelize loading. - */ - private static abstract class LazyInputStream extends InputStream { - protected final PathHandler handler; - private InputStream is = null; - - public LazyInputStream(PathHandler handler) { - this.handler = handler; - } - - private InputStream getInputStream() { - if (is == null) { - is = handle(); - } - return is; - } - - protected abstract InputStream handle(); - - @Override - public int available() throws IOException { - InputStream is = getInputStream(); - return (is != null) ? is.available() : 0; - } - - @Override - public int read() throws IOException { - InputStream is = getInputStream(); - return (is != null) ? is.read() : -1; - } - - @Override - public int read(byte b[]) throws IOException { - InputStream is = getInputStream(); - return (is != null) ? is.read(b) : -1; - } - - @Override - public int read(byte b[], int off, int len) throws IOException { - InputStream is = getInputStream(); - return (is != null) ? is.read(b, off, len) : -1; - } - - @Override - public long skip(long n) throws IOException { - InputStream is = getInputStream(); - return (is != null) ? is.skip(n) : 0; - } - } - - // For L and above. - private static class LollipopLazyInputStream extends LazyInputStream { - private Uri uri; - private InputStream is; - - public LollipopLazyInputStream(PathHandler handler, Uri uri) { - super(handler); - this.uri = uri; - } - - @Override - protected InputStream handle() { - return handler.handle(uri); - } - } - - public String getBasePath(){ - return this.basePath; - } -} diff --git a/ionic/platforms/android/app/src/main/java/io/ionic/keyboard/CDVIonicKeyboard.java b/ionic/platforms/android/app/src/main/java/io/ionic/keyboard/CDVIonicKeyboard.java deleted file mode 100644 index b7ec4556b0a0f8d24dfde883b96e402b2021d490..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/java/io/ionic/keyboard/CDVIonicKeyboard.java +++ /dev/null @@ -1,165 +0,0 @@ -package io.ionic.keyboard; - -import org.apache.cordova.CallbackContext; -import org.apache.cordova.CordovaInterface; -import org.apache.cordova.CordovaPlugin; -import org.apache.cordova.CordovaWebView; -import org.apache.cordova.PluginResult; -import org.apache.cordova.PluginResult.Status; -import org.json.JSONArray; -import org.json.JSONException; - -import android.content.Context; -import android.graphics.Rect; -import android.util.DisplayMetrics; -import android.view.View; -import android.view.ViewTreeObserver; -import android.view.ViewTreeObserver.OnGlobalLayoutListener; -import android.view.inputmethod.InputMethodManager; - -// import additionally required classes for calculating screen height -import android.view.Display; -import android.graphics.Point; -import android.os.Build; -import android.widget.FrameLayout; - -public class CDVIonicKeyboard extends CordovaPlugin { - private OnGlobalLayoutListener list; - private View rootView; - private View mChildOfContent; - private int usableHeightPrevious; - private FrameLayout.LayoutParams frameLayoutParams; - - public void initialize(CordovaInterface cordova, CordovaWebView webView) { - super.initialize(cordova, webView); - } - - public boolean execute(String action, JSONArray args, final CallbackContext callbackContext) throws JSONException { - if ("hide".equals(action)) { - cordova.getThreadPool().execute(new Runnable() { - public void run() { - //http://stackoverflow.com/a/7696791/1091751 - InputMethodManager inputManager = (InputMethodManager) cordova.getActivity().getSystemService(Context.INPUT_METHOD_SERVICE); - View v = cordova.getActivity().getCurrentFocus(); - - if (v == null) { - callbackContext.error("No current focus"); - } else { - inputManager.hideSoftInputFromWindow(v.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS); - callbackContext.success(); // Thread-safe. - } - } - }); - return true; - } - if ("show".equals(action)) { - cordova.getThreadPool().execute(new Runnable() { - public void run() { - ((InputMethodManager) cordova.getActivity().getSystemService(Context.INPUT_METHOD_SERVICE)).toggleSoftInput(0, InputMethodManager.HIDE_IMPLICIT_ONLY); - callbackContext.success(); // Thread-safe. - } - }); - return true; - } - if ("init".equals(action)) { - cordova.getThreadPool().execute(new Runnable() { - public void run() { - //calculate density-independent pixels (dp) - //http://developer.android.com/guide/practices/screens_support.html - DisplayMetrics dm = new DisplayMetrics(); - cordova.getActivity().getWindowManager().getDefaultDisplay().getMetrics(dm); - final float density = dm.density; - - //http://stackoverflow.com/a/4737265/1091751 detect if keyboard is showing - FrameLayout content = (FrameLayout) cordova.getActivity().findViewById(android.R.id.content); - rootView = content.getRootView(); - list = new OnGlobalLayoutListener() { - int previousHeightDiff = 0; - @Override - public void onGlobalLayout() { - boolean resize = preferences.getBoolean("resizeOnFullScreen", false); - if (resize) { - possiblyResizeChildOfContent(); - } - Rect r = new Rect(); - //r will be populated with the coordinates of your view that area still visible. - rootView.getWindowVisibleDisplayFrame(r); - - PluginResult result; - - // cache properties for later use - int rootViewHeight = rootView.getRootView().getHeight(); - int resultBottom = r.bottom; - - // calculate screen height differently for android versions >= 21: Lollipop 5.x, Marshmallow 6.x - //http://stackoverflow.com/a/29257533/3642890 beware of nexus 5 - int screenHeight; - - if (Build.VERSION.SDK_INT >= 21) { - Display display = cordova.getActivity().getWindowManager().getDefaultDisplay(); - Point size = new Point(); - display.getSize(size); - screenHeight = size.y; - } else { - screenHeight = rootViewHeight; - } - - int heightDiff = screenHeight - resultBottom; - - int pixelHeightDiff = (int)(heightDiff / density); - if (pixelHeightDiff > 100 && pixelHeightDiff != previousHeightDiff) { // if more than 100 pixels, its probably a keyboard... - String msg = "S" + Integer.toString(pixelHeightDiff); - result = new PluginResult(PluginResult.Status.OK, msg); - result.setKeepCallback(true); - callbackContext.sendPluginResult(result); - } - else if ( pixelHeightDiff != previousHeightDiff && ( previousHeightDiff - pixelHeightDiff ) > 100 ){ - String msg = "H"; - result = new PluginResult(PluginResult.Status.OK, msg); - result.setKeepCallback(true); - callbackContext.sendPluginResult(result); - } - previousHeightDiff = pixelHeightDiff; - } - - private void possiblyResizeChildOfContent() { - int usableHeightNow = computeUsableHeight(); - if (usableHeightNow != usableHeightPrevious) { - int usableHeightSansKeyboard = mChildOfContent.getRootView().getHeight(); - int heightDifference = usableHeightSansKeyboard - usableHeightNow; - if (heightDifference > (usableHeightSansKeyboard/4)) { - frameLayoutParams.height = usableHeightSansKeyboard - heightDifference; - } else { - frameLayoutParams.height = usableHeightSansKeyboard; - } - mChildOfContent.requestLayout(); - usableHeightPrevious = usableHeightNow; - } - } - - private int computeUsableHeight() { - Rect r = new Rect(); - mChildOfContent.getWindowVisibleDisplayFrame(r); - return (r.bottom - r.top); - } - }; - - mChildOfContent = content.getChildAt(0); - rootView.getViewTreeObserver().addOnGlobalLayoutListener(list); - frameLayoutParams = (FrameLayout.LayoutParams) mChildOfContent.getLayoutParams(); - PluginResult dataResult = new PluginResult(PluginResult.Status.OK); - dataResult.setKeepCallback(true); - callbackContext.sendPluginResult(dataResult); - } - }); - return true; - } - return false; // Returning false results in a "MethodNotFound" error. - } - - @Override - public void onDestroy() { - rootView.getViewTreeObserver().removeOnGlobalLayoutListener(list); - } - -} diff --git a/ionic/platforms/android/app/src/main/java/io/ionic/starter/MainActivity.java b/ionic/platforms/android/app/src/main/java/io/ionic/starter/MainActivity.java deleted file mode 100644 index 116ca28ffa0399bb832bf8e56711a859527d4621..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/java/io/ionic/starter/MainActivity.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. - */ - -package io.ionic.starter; - -import android.os.Bundle; -import org.apache.cordova.*; - -public class MainActivity extends CordovaActivity -{ - @Override - public void onCreate(Bundle savedInstanceState) - { - super.onCreate(savedInstanceState); - - // enable Cordova apps to be started in the background - Bundle extras = getIntent().getExtras(); - if (extras != null && extras.getBoolean("cdvStartInBackground", false)) { - moveTaskToBack(true); - } - - // Set by <content src="index.html" /> in config.xml - loadUrl(launchUrl); - } -} diff --git a/ionic/platforms/android/app/src/main/java/org/apache/cordova/device/Device.java b/ionic/platforms/android/app/src/main/java/org/apache/cordova/device/Device.java deleted file mode 100644 index e9efcb49b08d057482fd8c08fbe8eeb5e6dd8a03..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/java/org/apache/cordova/device/Device.java +++ /dev/null @@ -1,174 +0,0 @@ -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*/ -package org.apache.cordova.device; - -import java.util.TimeZone; - -import org.apache.cordova.CordovaWebView; -import org.apache.cordova.CallbackContext; -import org.apache.cordova.CordovaPlugin; -import org.apache.cordova.CordovaInterface; -import org.json.JSONArray; -import org.json.JSONException; -import org.json.JSONObject; - -import android.provider.Settings; - -public class Device extends CordovaPlugin { - public static final String TAG = "Device"; - - public static String platform; // Device OS - public static String uuid; // Device UUID - - private static final String ANDROID_PLATFORM = "Android"; - private static final String AMAZON_PLATFORM = "amazon-fireos"; - private static final String AMAZON_DEVICE = "Amazon"; - - /** - * Constructor. - */ - public Device() { - } - - /** - * Sets the context of the Command. This can then be used to do things like - * get file paths associated with the Activity. - * - * @param cordova The context of the main Activity. - * @param webView The CordovaWebView Cordova is running in. - */ - public void initialize(CordovaInterface cordova, CordovaWebView webView) { - super.initialize(cordova, webView); - Device.uuid = getUuid(); - } - - /** - * Executes the request and returns PluginResult. - * - * @param action The action to execute. - * @param args JSONArry of arguments for the plugin. - * @param callbackContext The callback id used when calling back into JavaScript. - * @return True if the action was valid, false if not. - */ - public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException { - if ("getDeviceInfo".equals(action)) { - JSONObject r = new JSONObject(); - r.put("uuid", Device.uuid); - r.put("version", this.getOSVersion()); - r.put("platform", this.getPlatform()); - r.put("model", this.getModel()); - r.put("manufacturer", this.getManufacturer()); - r.put("isVirtual", this.isVirtual()); - r.put("serial", this.getSerialNumber()); - callbackContext.success(r); - } - else { - return false; - } - return true; - } - - //-------------------------------------------------------------------------- - // LOCAL METHODS - //-------------------------------------------------------------------------- - - /** - * Get the OS name. - * - * @return - */ - public String getPlatform() { - String platform; - if (isAmazonDevice()) { - platform = AMAZON_PLATFORM; - } else { - platform = ANDROID_PLATFORM; - } - return platform; - } - - /** - * Get the device's Universally Unique Identifier (UUID). - * - * @return - */ - public String getUuid() { - String uuid = Settings.Secure.getString(this.cordova.getActivity().getContentResolver(), android.provider.Settings.Secure.ANDROID_ID); - return uuid; - } - - public String getModel() { - String model = android.os.Build.MODEL; - return model; - } - - public String getProductName() { - String productname = android.os.Build.PRODUCT; - return productname; - } - - public String getManufacturer() { - String manufacturer = android.os.Build.MANUFACTURER; - return manufacturer; - } - - public String getSerialNumber() { - String serial = android.os.Build.SERIAL; - return serial; - } - - /** - * Get the OS version. - * - * @return - */ - public String getOSVersion() { - String osversion = android.os.Build.VERSION.RELEASE; - return osversion; - } - - public String getSDKVersion() { - @SuppressWarnings("deprecation") - String sdkversion = android.os.Build.VERSION.SDK; - return sdkversion; - } - - public String getTimeZoneID() { - TimeZone tz = TimeZone.getDefault(); - return (tz.getID()); - } - - /** - * Function to check if the device is manufactured by Amazon - * - * @return - */ - public boolean isAmazonDevice() { - if (android.os.Build.MANUFACTURER.equals(AMAZON_DEVICE)) { - return true; - } - return false; - } - - public boolean isVirtual() { - return android.os.Build.FINGERPRINT.contains("generic") || - android.os.Build.PRODUCT.contains("sdk"); - } - -} diff --git a/ionic/platforms/android/app/src/main/java/org/apache/cordova/splashscreen/SplashScreen.java b/ionic/platforms/android/app/src/main/java/org/apache/cordova/splashscreen/SplashScreen.java deleted file mode 100644 index 6f56c6c649b370074ffcce1ed1889810157802f8..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/java/org/apache/cordova/splashscreen/SplashScreen.java +++ /dev/null @@ -1,413 +0,0 @@ -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*/ - -package org.apache.cordova.splashscreen; - -import android.app.Dialog; -import android.app.ProgressDialog; -import android.content.Context; -import android.content.DialogInterface; -import android.content.res.Configuration; -import android.content.res.ColorStateList; -import android.graphics.Color; -import android.graphics.drawable.ColorDrawable; -import android.os.Handler; -import android.view.Display; -import android.view.Gravity; -import android.view.View; -import android.view.ViewGroup.LayoutParams; -import android.view.WindowManager; -import android.view.animation.Animation; -import android.view.animation.AlphaAnimation; -import android.view.animation.DecelerateInterpolator; -import android.widget.ImageView; -import android.widget.LinearLayout; -import android.widget.ProgressBar; -import android.widget.RelativeLayout; - -import org.apache.cordova.CallbackContext; -import org.apache.cordova.CordovaPlugin; -import org.apache.cordova.CordovaWebView; -import org.json.JSONArray; -import org.json.JSONException; - -public class SplashScreen extends CordovaPlugin { - private static final String LOG_TAG = "SplashScreen"; - // Cordova 3.x.x has a copy of this plugin bundled with it (SplashScreenInternal.java). - // Enable functionality only if running on 4.x.x. - private static final boolean HAS_BUILT_IN_SPLASH_SCREEN = Integer.valueOf(CordovaWebView.CORDOVA_VERSION.split("\\.")[0]) < 4; - private static final int DEFAULT_SPLASHSCREEN_DURATION = 3000; - private static final int DEFAULT_FADE_DURATION = 500; - private static Dialog splashDialog; - private static ProgressDialog spinnerDialog; - private static boolean firstShow = true; - private static boolean lastHideAfterDelay; // https://issues.apache.org/jira/browse/CB-9094 - - /** - * Displays the splash drawable. - */ - private ImageView splashImageView; - - /** - * Remember last device orientation to detect orientation changes. - */ - private int orientation; - - // Helper to be compile-time compatible with both Cordova 3.x and 4.x. - private View getView() { - try { - return (View)webView.getClass().getMethod("getView").invoke(webView); - } catch (Exception e) { - return (View)webView; - } - } - - private int getSplashId() { - int drawableId = 0; - String splashResource = preferences.getString("SplashScreen", "screen"); - if (splashResource != null) { - drawableId = cordova.getActivity().getResources().getIdentifier(splashResource, "drawable", cordova.getActivity().getClass().getPackage().getName()); - if (drawableId == 0) { - drawableId = cordova.getActivity().getResources().getIdentifier(splashResource, "drawable", cordova.getActivity().getPackageName()); - } - } - return drawableId; - } - - @Override - protected void pluginInitialize() { - if (HAS_BUILT_IN_SPLASH_SCREEN) { - return; - } - // Make WebView invisible while loading URL - // CB-11326 Ensure we're calling this on UI thread - cordova.getActivity().runOnUiThread(new Runnable() { - @Override - public void run() { - getView().setVisibility(View.INVISIBLE); - } - }); - int drawableId = getSplashId(); - - // Save initial orientation. - orientation = cordova.getActivity().getResources().getConfiguration().orientation; - - if (firstShow) { - boolean autoHide = preferences.getBoolean("AutoHideSplashScreen", true); - showSplashScreen(autoHide); - } - - if (preferences.getBoolean("SplashShowOnlyFirstTime", true)) { - firstShow = false; - } - } - - /** - * Shorter way to check value of "SplashMaintainAspectRatio" preference. - */ - private boolean isMaintainAspectRatio () { - return preferences.getBoolean("SplashMaintainAspectRatio", false); - } - - private int getFadeDuration () { - int fadeSplashScreenDuration = preferences.getBoolean("FadeSplashScreen", true) ? - preferences.getInteger("FadeSplashScreenDuration", DEFAULT_FADE_DURATION) : 0; - - if (fadeSplashScreenDuration < 30) { - // [CB-9750] This value used to be in decimal seconds, so we will assume that if someone specifies 10 - // they mean 10 seconds, and not the meaningless 10ms - fadeSplashScreenDuration *= 1000; - } - - return fadeSplashScreenDuration; - } - - @Override - public void onPause(boolean multitasking) { - if (HAS_BUILT_IN_SPLASH_SCREEN) { - return; - } - // hide the splash screen to avoid leaking a window - this.removeSplashScreen(true); - } - - @Override - public void onDestroy() { - if (HAS_BUILT_IN_SPLASH_SCREEN) { - return; - } - // hide the splash screen to avoid leaking a window - this.removeSplashScreen(true); - // If we set this to true onDestroy, we lose track when we go from page to page! - //firstShow = true; - } - - @Override - public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException { - if (action.equals("hide")) { - cordova.getActivity().runOnUiThread(new Runnable() { - public void run() { - webView.postMessage("splashscreen", "hide"); - } - }); - } else if (action.equals("show")) { - cordova.getActivity().runOnUiThread(new Runnable() { - public void run() { - webView.postMessage("splashscreen", "show"); - } - }); - } else { - return false; - } - - callbackContext.success(); - return true; - } - - @Override - public Object onMessage(String id, Object data) { - if (HAS_BUILT_IN_SPLASH_SCREEN) { - return null; - } - if ("splashscreen".equals(id)) { - if ("hide".equals(data.toString())) { - this.removeSplashScreen(false); - } else { - this.showSplashScreen(false); - } - } else if ("spinner".equals(id)) { - if ("stop".equals(data.toString())) { - getView().setVisibility(View.VISIBLE); - } - } else if ("onReceivedError".equals(id)) { - this.spinnerStop(); - } - return null; - } - - // Don't add @Override so that plugin still compiles on 3.x.x for a while - public void onConfigurationChanged(Configuration newConfig) { - if (newConfig.orientation != orientation) { - orientation = newConfig.orientation; - - // Splash drawable may change with orientation, so reload it. - if (splashImageView != null) { - int drawableId = getSplashId(); - if (drawableId != 0) { - splashImageView.setImageDrawable(cordova.getActivity().getResources().getDrawable(drawableId)); - } - } - } - } - - private void removeSplashScreen(final boolean forceHideImmediately) { - cordova.getActivity().runOnUiThread(new Runnable() { - public void run() { - if (splashDialog != null && splashDialog.isShowing()) { - final int fadeSplashScreenDuration = getFadeDuration(); - // CB-10692 If the plugin is being paused/destroyed, skip the fading and hide it immediately - if (fadeSplashScreenDuration > 0 && forceHideImmediately == false) { - AlphaAnimation fadeOut = new AlphaAnimation(1, 0); - fadeOut.setInterpolator(new DecelerateInterpolator()); - fadeOut.setDuration(fadeSplashScreenDuration); - - splashImageView.setAnimation(fadeOut); - splashImageView.startAnimation(fadeOut); - - fadeOut.setAnimationListener(new Animation.AnimationListener() { - @Override - public void onAnimationStart(Animation animation) { - spinnerStop(); - } - - @Override - public void onAnimationEnd(Animation animation) { - if (splashDialog != null && splashDialog.isShowing()) { - splashDialog.dismiss(); - splashDialog = null; - splashImageView = null; - } - } - - @Override - public void onAnimationRepeat(Animation animation) { - } - }); - } else { - spinnerStop(); - splashDialog.dismiss(); - splashDialog = null; - splashImageView = null; - } - } - } - }); - } - - /** - * Shows the splash screen over the full Activity - */ - @SuppressWarnings("deprecation") - private void showSplashScreen(final boolean hideAfterDelay) { - final int splashscreenTime = preferences.getInteger("SplashScreenDelay", DEFAULT_SPLASHSCREEN_DURATION); - final int drawableId = getSplashId(); - - final int fadeSplashScreenDuration = getFadeDuration(); - final int effectiveSplashDuration = Math.max(0, splashscreenTime - fadeSplashScreenDuration); - - lastHideAfterDelay = hideAfterDelay; - - // Prevent to show the splash dialog if the activity is in the process of finishing - if (cordova.getActivity().isFinishing()) { - return; - } - // If the splash dialog is showing don't try to show it again - if (splashDialog != null && splashDialog.isShowing()) { - return; - } - if (drawableId == 0 || (splashscreenTime <= 0 && hideAfterDelay)) { - return; - } - - cordova.getActivity().runOnUiThread(new Runnable() { - public void run() { - // Get reference to display - Display display = cordova.getActivity().getWindowManager().getDefaultDisplay(); - Context context = webView.getContext(); - - // Use an ImageView to render the image because of its flexible scaling options. - splashImageView = new ImageView(context); - splashImageView.setImageResource(drawableId); - LayoutParams layoutParams = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT); - splashImageView.setLayoutParams(layoutParams); - - splashImageView.setMinimumHeight(display.getHeight()); - splashImageView.setMinimumWidth(display.getWidth()); - - // TODO: Use the background color of the webView's parent instead of using the preference. - splashImageView.setBackgroundColor(preferences.getInteger("backgroundColor", Color.BLACK)); - - if (isMaintainAspectRatio()) { - // CENTER_CROP scale mode is equivalent to CSS "background-size:cover" - splashImageView.setScaleType(ImageView.ScaleType.CENTER_CROP); - } - else { - // FIT_XY scales image non-uniformly to fit into image view. - splashImageView.setScaleType(ImageView.ScaleType.FIT_XY); - } - - // Create and show the dialog - splashDialog = new Dialog(context, android.R.style.Theme_Translucent_NoTitleBar); - // check to see if the splash screen should be full screen - if ((cordova.getActivity().getWindow().getAttributes().flags & WindowManager.LayoutParams.FLAG_FULLSCREEN) - == WindowManager.LayoutParams.FLAG_FULLSCREEN) { - splashDialog.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, - WindowManager.LayoutParams.FLAG_FULLSCREEN); - } - splashDialog.setContentView(splashImageView); - splashDialog.setCancelable(false); - splashDialog.show(); - - if (preferences.getBoolean("ShowSplashScreenSpinner", true)) { - spinnerStart(); - } - - // Set Runnable to remove splash screen just in case - if (hideAfterDelay) { - final Handler handler = new Handler(); - handler.postDelayed(new Runnable() { - public void run() { - if (lastHideAfterDelay) { - removeSplashScreen(false); - } - } - }, effectiveSplashDuration); - } - } - }); - } - - // Show only spinner in the center of the screen - private void spinnerStart() { - cordova.getActivity().runOnUiThread(new Runnable() { - public void run() { - spinnerStop(); - - spinnerDialog = new ProgressDialog(webView.getContext()); - spinnerDialog.setOnCancelListener(new DialogInterface.OnCancelListener() { - public void onCancel(DialogInterface dialog) { - spinnerDialog = null; - } - }); - - spinnerDialog.setCancelable(false); - spinnerDialog.setIndeterminate(true); - - RelativeLayout centeredLayout = new RelativeLayout(cordova.getActivity()); - centeredLayout.setGravity(Gravity.CENTER); - centeredLayout.setLayoutParams(new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); - - ProgressBar progressBar = new ProgressBar(webView.getContext()); - RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); - layoutParams.addRule(RelativeLayout.CENTER_IN_PARENT, RelativeLayout.TRUE); - progressBar.setLayoutParams(layoutParams); - - if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) { - String colorName = preferences.getString("SplashScreenSpinnerColor", null); - if(colorName != null){ - int[][] states = new int[][] { - new int[] { android.R.attr.state_enabled}, // enabled - new int[] {-android.R.attr.state_enabled}, // disabled - new int[] {-android.R.attr.state_checked}, // unchecked - new int[] { android.R.attr.state_pressed} // pressed - }; - int progressBarColor = Color.parseColor(colorName); - int[] colors = new int[] { - progressBarColor, - progressBarColor, - progressBarColor, - progressBarColor - }; - ColorStateList colorStateList = new ColorStateList(states, colors); - progressBar.setIndeterminateTintList(colorStateList); - } - } - - centeredLayout.addView(progressBar); - - spinnerDialog.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND); - spinnerDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); - - spinnerDialog.show(); - spinnerDialog.setContentView(centeredLayout); - } - }); - } - - private void spinnerStop() { - cordova.getActivity().runOnUiThread(new Runnable() { - public void run() { - if (spinnerDialog != null && spinnerDialog.isShowing()) { - spinnerDialog.dismiss(); - spinnerDialog = null; - } - } - }); - } -} diff --git a/ionic/platforms/android/app/src/main/java/org/apache/cordova/statusbar/StatusBar.java b/ionic/platforms/android/app/src/main/java/org/apache/cordova/statusbar/StatusBar.java deleted file mode 100644 index 714c30e87c3655b483ec9a2986334ab32ec73594..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/java/org/apache/cordova/statusbar/StatusBar.java +++ /dev/null @@ -1,276 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - * -*/ -package org.apache.cordova.statusbar; - -import android.app.Activity; -import android.graphics.Color; -import android.os.Build; -import android.view.View; -import android.view.Window; -import android.view.WindowManager; - -import org.apache.cordova.CallbackContext; -import org.apache.cordova.CordovaArgs; -import org.apache.cordova.CordovaInterface; -import org.apache.cordova.CordovaPlugin; -import org.apache.cordova.CordovaWebView; -import org.apache.cordova.LOG; -import org.apache.cordova.PluginResult; -import org.json.JSONException; -import java.util.Arrays; - -public class StatusBar extends CordovaPlugin { - private static final String TAG = "StatusBar"; - - /** - * Sets the context of the Command. This can then be used to do things like - * get file paths associated with the Activity. - * - * @param cordova The context of the main Activity. - * @param webView The CordovaWebView Cordova is running in. - */ - @Override - public void initialize(final CordovaInterface cordova, CordovaWebView webView) { - LOG.v(TAG, "StatusBar: initialization"); - super.initialize(cordova, webView); - - this.cordova.getActivity().runOnUiThread(new Runnable() { - @Override - public void run() { - // Clear flag FLAG_FORCE_NOT_FULLSCREEN which is set initially - // by the Cordova. - Window window = cordova.getActivity().getWindow(); - window.clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN); - - // Read 'StatusBarBackgroundColor' from config.xml, default is #000000. - setStatusBarBackgroundColor(preferences.getString("StatusBarBackgroundColor", "#000000")); - - // Read 'StatusBarStyle' from config.xml, default is 'lightcontent'. - setStatusBarStyle(preferences.getString("StatusBarStyle", "lightcontent")); - } - }); - } - - /** - * Executes the request and returns PluginResult. - * - * @param action The action to execute. - * @param args JSONArry of arguments for the plugin. - * @param callbackContext The callback id used when calling back into JavaScript. - * @return True if the action was valid, false otherwise. - */ - @Override - public boolean execute(final String action, final CordovaArgs args, final CallbackContext callbackContext) throws JSONException { - LOG.v(TAG, "Executing action: " + action); - final Activity activity = this.cordova.getActivity(); - final Window window = activity.getWindow(); - - if ("_ready".equals(action)) { - boolean statusBarVisible = (window.getAttributes().flags & WindowManager.LayoutParams.FLAG_FULLSCREEN) == 0; - callbackContext.sendPluginResult(new PluginResult(PluginResult.Status.OK, statusBarVisible)); - return true; - } - - if ("show".equals(action)) { - this.cordova.getActivity().runOnUiThread(new Runnable() { - @Override - public void run() { - // SYSTEM_UI_FLAG_FULLSCREEN is available since JellyBean, but we - // use KitKat here to be aligned with "Fullscreen" preference - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { - int uiOptions = window.getDecorView().getSystemUiVisibility(); - uiOptions &= ~View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN; - uiOptions &= ~View.SYSTEM_UI_FLAG_FULLSCREEN; - - window.getDecorView().setSystemUiVisibility(uiOptions); - } - - // CB-11197 We still need to update LayoutParams to force status bar - // to be hidden when entering e.g. text fields - window.clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); - } - }); - return true; - } - - if ("hide".equals(action)) { - this.cordova.getActivity().runOnUiThread(new Runnable() { - @Override - public void run() { - // SYSTEM_UI_FLAG_FULLSCREEN is available since JellyBean, but we - // use KitKat here to be aligned with "Fullscreen" preference - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { - int uiOptions = window.getDecorView().getSystemUiVisibility() - | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN - | View.SYSTEM_UI_FLAG_FULLSCREEN; - - window.getDecorView().setSystemUiVisibility(uiOptions); - } - - // CB-11197 We still need to update LayoutParams to force status bar - // to be hidden when entering e.g. text fields - window.addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); - } - }); - return true; - } - - if ("backgroundColorByHexString".equals(action)) { - this.cordova.getActivity().runOnUiThread(new Runnable() { - @Override - public void run() { - try { - setStatusBarBackgroundColor(args.getString(0)); - } catch (JSONException ignore) { - LOG.e(TAG, "Invalid hexString argument, use f.i. '#777777'"); - } - } - }); - return true; - } - - if ("overlaysWebView".equals(action)) { - if (Build.VERSION.SDK_INT >= 21) { - this.cordova.getActivity().runOnUiThread(new Runnable() { - @Override - public void run() { - try { - setStatusBarTransparent(args.getBoolean(0)); - } catch (JSONException ignore) { - LOG.e(TAG, "Invalid boolean argument"); - } - } - }); - return true; - } - else return args.getBoolean(0) == false; - } - - if ("styleDefault".equals(action)) { - this.cordova.getActivity().runOnUiThread(new Runnable() { - @Override - public void run() { - setStatusBarStyle("default"); - } - }); - return true; - } - - if ("styleLightContent".equals(action)) { - this.cordova.getActivity().runOnUiThread(new Runnable() { - @Override - public void run() { - setStatusBarStyle("lightcontent"); - } - }); - return true; - } - - if ("styleBlackTranslucent".equals(action)) { - this.cordova.getActivity().runOnUiThread(new Runnable() { - @Override - public void run() { - setStatusBarStyle("blacktranslucent"); - } - }); - return true; - } - - if ("styleBlackOpaque".equals(action)) { - this.cordova.getActivity().runOnUiThread(new Runnable() { - @Override - public void run() { - setStatusBarStyle("blackopaque"); - } - }); - return true; - } - - return false; - } - - private void setStatusBarBackgroundColor(final String colorPref) { - if (Build.VERSION.SDK_INT >= 21) { - if (colorPref != null && !colorPref.isEmpty()) { - final Window window = cordova.getActivity().getWindow(); - // Method and constants not available on all SDKs but we want to be able to compile this code with any SDK - window.clearFlags(0x04000000); // SDK 19: WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); - window.addFlags(0x80000000); // SDK 21: WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); - try { - // Using reflection makes sure any 5.0+ device will work without having to compile with SDK level 21 - window.getClass().getMethod("setStatusBarColor", int.class).invoke(window, Color.parseColor(colorPref)); - } catch (IllegalArgumentException ignore) { - LOG.e(TAG, "Invalid hexString argument, use f.i. '#999999'"); - } catch (Exception ignore) { - // this should not happen, only in case Android removes this method in a version > 21 - LOG.w(TAG, "Method window.setStatusBarColor not found for SDK level " + Build.VERSION.SDK_INT); - } - } - } - } - - private void setStatusBarTransparent(final boolean transparent) { - if (Build.VERSION.SDK_INT >= 21) { - final Window window = cordova.getActivity().getWindow(); - if (transparent) { - window.getDecorView().setSystemUiVisibility( - View.SYSTEM_UI_FLAG_LAYOUT_STABLE - | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN); - window.setStatusBarColor(Color.TRANSPARENT); - } - else { - window.getDecorView().setSystemUiVisibility( - View.SYSTEM_UI_FLAG_LAYOUT_STABLE - | View.SYSTEM_UI_FLAG_VISIBLE); - } - } - } - - private void setStatusBarStyle(final String style) { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { - if (style != null && !style.isEmpty()) { - View decorView = cordova.getActivity().getWindow().getDecorView(); - int uiOptions = decorView.getSystemUiVisibility(); - - String[] darkContentStyles = { - "default", - }; - - String[] lightContentStyles = { - "lightcontent", - "blacktranslucent", - "blackopaque", - }; - - if (Arrays.asList(darkContentStyles).contains(style.toLowerCase())) { - decorView.setSystemUiVisibility(uiOptions | View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR); - return; - } - - if (Arrays.asList(lightContentStyles).contains(style.toLowerCase())) { - decorView.setSystemUiVisibility(uiOptions & ~View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR); - return; - } - - LOG.e(TAG, "Invalid style, must be either 'default', 'lightcontent' or the deprecated 'blacktranslucent' and 'blackopaque'"); - } - } - } -} diff --git a/ionic/platforms/android/app/src/main/java/org/apache/cordova/whitelist/WhitelistPlugin.java b/ionic/platforms/android/app/src/main/java/org/apache/cordova/whitelist/WhitelistPlugin.java deleted file mode 100644 index 36567886495003a19e2a1d7313ba1d8438556a66..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/java/org/apache/cordova/whitelist/WhitelistPlugin.java +++ /dev/null @@ -1,161 +0,0 @@ -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*/ - -package org.apache.cordova.whitelist; - -import org.apache.cordova.CordovaPlugin; -import org.apache.cordova.ConfigXmlParser; -import org.apache.cordova.LOG; -import org.apache.cordova.Whitelist; -import org.xmlpull.v1.XmlPullParser; - -import android.content.Context; - -public class WhitelistPlugin extends CordovaPlugin { - private static final String LOG_TAG = "WhitelistPlugin"; - private Whitelist allowedNavigations; - private Whitelist allowedIntents; - private Whitelist allowedRequests; - - // Used when instantiated via reflection by PluginManager - public WhitelistPlugin() { - } - // These can be used by embedders to allow Java-configuration of whitelists. - public WhitelistPlugin(Context context) { - this(new Whitelist(), new Whitelist(), null); - new CustomConfigXmlParser().parse(context); - } - public WhitelistPlugin(XmlPullParser xmlParser) { - this(new Whitelist(), new Whitelist(), null); - new CustomConfigXmlParser().parse(xmlParser); - } - public WhitelistPlugin(Whitelist allowedNavigations, Whitelist allowedIntents, Whitelist allowedRequests) { - if (allowedRequests == null) { - allowedRequests = new Whitelist(); - allowedRequests.addWhiteListEntry("file:///*", false); - allowedRequests.addWhiteListEntry("data:*", false); - } - this.allowedNavigations = allowedNavigations; - this.allowedIntents = allowedIntents; - this.allowedRequests = allowedRequests; - } - @Override - public void pluginInitialize() { - if (allowedNavigations == null) { - allowedNavigations = new Whitelist(); - allowedIntents = new Whitelist(); - allowedRequests = new Whitelist(); - new CustomConfigXmlParser().parse(webView.getContext()); - } - } - - private class CustomConfigXmlParser extends ConfigXmlParser { - @Override - public void handleStartTag(XmlPullParser xml) { - String strNode = xml.getName(); - if (strNode.equals("content")) { - String startPage = xml.getAttributeValue(null, "src"); - allowedNavigations.addWhiteListEntry(startPage, false); - } else if (strNode.equals("allow-navigation")) { - String origin = xml.getAttributeValue(null, "href"); - if ("*".equals(origin)) { - allowedNavigations.addWhiteListEntry("http://*/*", false); - allowedNavigations.addWhiteListEntry("https://*/*", false); - allowedNavigations.addWhiteListEntry("data:*", false); - } else { - allowedNavigations.addWhiteListEntry(origin, false); - } - } else if (strNode.equals("allow-intent")) { - String origin = xml.getAttributeValue(null, "href"); - allowedIntents.addWhiteListEntry(origin, false); - } else if (strNode.equals("access")) { - String origin = xml.getAttributeValue(null, "origin"); - String subdomains = xml.getAttributeValue(null, "subdomains"); - boolean external = (xml.getAttributeValue(null, "launch-external") != null); - if (origin != null) { - if (external) { - LOG.w(LOG_TAG, "Found <access launch-external> within config.xml. Please use <allow-intent> instead."); - allowedIntents.addWhiteListEntry(origin, (subdomains != null) && (subdomains.compareToIgnoreCase("true") == 0)); - } else { - if ("*".equals(origin)) { - allowedRequests.addWhiteListEntry("http://*/*", false); - allowedRequests.addWhiteListEntry("https://*/*", false); - } else { - allowedRequests.addWhiteListEntry(origin, (subdomains != null) && (subdomains.compareToIgnoreCase("true") == 0)); - } - } - } - } - } - @Override - public void handleEndTag(XmlPullParser xml) { - } - } - - @Override - public Boolean shouldAllowNavigation(String url) { - if (allowedNavigations.isUrlWhiteListed(url)) { - return true; - } - return null; // Default policy - } - - @Override - public Boolean shouldAllowRequest(String url) { - if (Boolean.TRUE == shouldAllowNavigation(url)) { - return true; - } - if (allowedRequests.isUrlWhiteListed(url)) { - return true; - } - return null; // Default policy - } - - @Override - public Boolean shouldOpenExternalUrl(String url) { - if (allowedIntents.isUrlWhiteListed(url)) { - return true; - } - return null; // Default policy - } - - public Whitelist getAllowedNavigations() { - return allowedNavigations; - } - - public void setAllowedNavigations(Whitelist allowedNavigations) { - this.allowedNavigations = allowedNavigations; - } - - public Whitelist getAllowedIntents() { - return allowedIntents; - } - - public void setAllowedIntents(Whitelist allowedIntents) { - this.allowedIntents = allowedIntents; - } - - public Whitelist getAllowedRequests() { - return allowedRequests; - } - - public void setAllowedRequests(Whitelist allowedRequests) { - this.allowedRequests = allowedRequests; - } -} diff --git a/ionic/platforms/android/app/src/main/res/drawable-land-hdpi/screen.png b/ionic/platforms/android/app/src/main/res/drawable-land-hdpi/screen.png deleted file mode 100644 index 74abe28ea792c29b9b3f117a3fd4b5fed614dc69..0000000000000000000000000000000000000000 Binary files a/ionic/platforms/android/app/src/main/res/drawable-land-hdpi/screen.png and /dev/null differ diff --git a/ionic/platforms/android/app/src/main/res/drawable-land-ldpi/screen.png b/ionic/platforms/android/app/src/main/res/drawable-land-ldpi/screen.png deleted file mode 100644 index b224ba8c8f80db7b0251689d5d521cace0dcb550..0000000000000000000000000000000000000000 Binary files a/ionic/platforms/android/app/src/main/res/drawable-land-ldpi/screen.png and /dev/null differ diff --git a/ionic/platforms/android/app/src/main/res/drawable-land-mdpi/screen.png b/ionic/platforms/android/app/src/main/res/drawable-land-mdpi/screen.png deleted file mode 100644 index f18770eb127263a957c4b22d115495fed1ab443f..0000000000000000000000000000000000000000 Binary files a/ionic/platforms/android/app/src/main/res/drawable-land-mdpi/screen.png and /dev/null differ diff --git a/ionic/platforms/android/app/src/main/res/drawable-land-xhdpi/screen.png b/ionic/platforms/android/app/src/main/res/drawable-land-xhdpi/screen.png deleted file mode 100644 index 76eab0d7271e38f78d28f2e9369029ce2f53979c..0000000000000000000000000000000000000000 Binary files a/ionic/platforms/android/app/src/main/res/drawable-land-xhdpi/screen.png and /dev/null differ diff --git a/ionic/platforms/android/app/src/main/res/drawable-land-xxhdpi/screen.png b/ionic/platforms/android/app/src/main/res/drawable-land-xxhdpi/screen.png deleted file mode 100644 index b15925df5b477a3abe24f3ae7f8ec34800d93bd7..0000000000000000000000000000000000000000 Binary files a/ionic/platforms/android/app/src/main/res/drawable-land-xxhdpi/screen.png and /dev/null differ diff --git a/ionic/platforms/android/app/src/main/res/drawable-land-xxxhdpi/screen.png b/ionic/platforms/android/app/src/main/res/drawable-land-xxxhdpi/screen.png deleted file mode 100644 index 4b22b8b59ac6abca0731ac281c4977ba2bb1213e..0000000000000000000000000000000000000000 Binary files a/ionic/platforms/android/app/src/main/res/drawable-land-xxxhdpi/screen.png and /dev/null differ diff --git a/ionic/platforms/android/app/src/main/res/drawable-port-hdpi/screen.png b/ionic/platforms/android/app/src/main/res/drawable-port-hdpi/screen.png deleted file mode 100644 index c0c981b971feaa8ae304b857bd8b69d38a040229..0000000000000000000000000000000000000000 Binary files a/ionic/platforms/android/app/src/main/res/drawable-port-hdpi/screen.png and /dev/null differ diff --git a/ionic/platforms/android/app/src/main/res/drawable-port-ldpi/screen.png b/ionic/platforms/android/app/src/main/res/drawable-port-ldpi/screen.png deleted file mode 100644 index dfba932196d9e55729d7244f6bd22b10e2b9827a..0000000000000000000000000000000000000000 Binary files a/ionic/platforms/android/app/src/main/res/drawable-port-ldpi/screen.png and /dev/null differ diff --git a/ionic/platforms/android/app/src/main/res/drawable-port-mdpi/screen.png b/ionic/platforms/android/app/src/main/res/drawable-port-mdpi/screen.png deleted file mode 100644 index e5129fd04e48cef60717825136198e4f52e1664e..0000000000000000000000000000000000000000 Binary files a/ionic/platforms/android/app/src/main/res/drawable-port-mdpi/screen.png and /dev/null differ diff --git a/ionic/platforms/android/app/src/main/res/drawable-port-xhdpi/screen.png b/ionic/platforms/android/app/src/main/res/drawable-port-xhdpi/screen.png deleted file mode 100644 index 14ec839e86b6cbd3ab5749ab6755af5e32168bf6..0000000000000000000000000000000000000000 Binary files a/ionic/platforms/android/app/src/main/res/drawable-port-xhdpi/screen.png and /dev/null differ diff --git a/ionic/platforms/android/app/src/main/res/drawable-port-xxhdpi/screen.png b/ionic/platforms/android/app/src/main/res/drawable-port-xxhdpi/screen.png deleted file mode 100644 index 4df256fbf957f5ada583c28af15743792361e0ce..0000000000000000000000000000000000000000 Binary files a/ionic/platforms/android/app/src/main/res/drawable-port-xxhdpi/screen.png and /dev/null differ diff --git a/ionic/platforms/android/app/src/main/res/drawable-port-xxxhdpi/screen.png b/ionic/platforms/android/app/src/main/res/drawable-port-xxxhdpi/screen.png deleted file mode 100644 index 53f97f9d936562a2755e7d6308430fb3d2e58b0e..0000000000000000000000000000000000000000 Binary files a/ionic/platforms/android/app/src/main/res/drawable-port-xxxhdpi/screen.png and /dev/null differ diff --git a/ionic/platforms/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/ionic/platforms/android/app/src/main/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index 3f84fc1b2b36263e0eef1f0a9d23269b873ab613..0000000000000000000000000000000000000000 Binary files a/ionic/platforms/android/app/src/main/res/mipmap-hdpi/ic_launcher.png and /dev/null differ diff --git a/ionic/platforms/android/app/src/main/res/mipmap-ldpi/ic_launcher.png b/ionic/platforms/android/app/src/main/res/mipmap-ldpi/ic_launcher.png deleted file mode 100644 index 3de9b4f79ba0742e8cca99c24289d8a62d8e74d4..0000000000000000000000000000000000000000 Binary files a/ionic/platforms/android/app/src/main/res/mipmap-ldpi/ic_launcher.png and /dev/null differ diff --git a/ionic/platforms/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/ionic/platforms/android/app/src/main/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index 4b455d317a5be633643484260d0b46d393b13312..0000000000000000000000000000000000000000 Binary files a/ionic/platforms/android/app/src/main/res/mipmap-mdpi/ic_launcher.png and /dev/null differ diff --git a/ionic/platforms/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/ionic/platforms/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png deleted file mode 100644 index fe47ccce8d00fe26b3bdf4656a64e1d6a1d6e764..0000000000000000000000000000000000000000 Binary files a/ionic/platforms/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ diff --git a/ionic/platforms/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/ionic/platforms/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index 391b4af13a2b8f878c1db28ff3cfc6ba708dfec0..0000000000000000000000000000000000000000 Binary files a/ionic/platforms/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ diff --git a/ionic/platforms/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/ionic/platforms/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index 09e50b7b356d1ab45939fb63515b5e3a77b0d802..0000000000000000000000000000000000000000 Binary files a/ionic/platforms/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ diff --git a/ionic/platforms/android/app/src/main/res/values/strings.xml b/ionic/platforms/android/app/src/main/res/values/strings.xml deleted file mode 100644 index 9b058b541074f8a8d5d9aa42fd5e964b2e4fef9c..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/res/values/strings.xml +++ /dev/null @@ -1,6 +0,0 @@ -<?xml version='1.0' encoding='utf-8'?> -<resources> - <string name="app_name">MyApp</string> - <string name="launcher_name">@string/app_name</string> - <string name="activity_name">@string/launcher_name</string> -</resources> diff --git a/ionic/platforms/android/app/src/main/res/xml/config.xml b/ionic/platforms/android/app/src/main/res/xml/config.xml deleted file mode 100644 index a53bdeb6d04f97238e09110e9e7acb6adda66269..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/res/xml/config.xml +++ /dev/null @@ -1,70 +0,0 @@ -<?xml version='1.0' encoding='utf-8'?> -<widget id="io.ionic.starter" version="0.0.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0"> - <feature name="Whitelist"> - <param name="android-package" value="org.apache.cordova.whitelist.WhitelistPlugin" /> - <param name="onload" value="true" /> - </feature> - <feature name="StatusBar"> - <param name="android-package" value="org.apache.cordova.statusbar.StatusBar" /> - <param name="onload" value="true" /> - </feature> - <feature name="Device"> - <param name="android-package" value="org.apache.cordova.device.Device" /> - </feature> - <feature name="SplashScreen"> - <param name="android-package" value="org.apache.cordova.splashscreen.SplashScreen" /> - <param name="onload" value="true" /> - </feature> - <allow-navigation href="http://localhost/*" /> - <allow-navigation href="https://localhost/*" /> - <allow-navigation href="ionic://*" /> - <feature name="IonicWebView"> - <param name="android-package" value="com.ionicframework.cordova.webview.IonicWebView" /> - </feature> - <feature name="CDVIonicKeyboard"> - <param name="android-package" onload="true" value="io.ionic.keyboard.CDVIonicKeyboard" /> - </feature> - <name>MyApp</name> - <description>An awesome Ionic/Cordova app.</description> - <author email="hi@ionicframework.com" href="http://ionicframework.com/">Ionic Framework Team</author> - <content src="index.html" /> - <access origin="*" /> - <allow-intent href="http://*/*" /> - <allow-intent href="https://*/*" /> - <allow-intent href="tel:*" /> - <allow-intent href="sms:*" /> - <allow-intent href="mailto:*" /> - <allow-intent href="geo:*" /> - <edit-config file="app/src/main/AndroidManifest.xml" mode="merge" target="/manifest/application" xmlns:android="http://schemas.android.com/apk/res/android"> - <application android:networkSecurityConfig="@xml/network_security_config" /> - </edit-config> - <resource-file src="resources/android/xml/network_security_config.xml" target="app/src/main/res/xml/network_security_config.xml" /> - <allow-intent href="market:*" /> - <icon density="ldpi" src="resources/android/icon/drawable-ldpi-icon.png" /> - <icon density="mdpi" src="resources/android/icon/drawable-mdpi-icon.png" /> - <icon density="hdpi" src="resources/android/icon/drawable-hdpi-icon.png" /> - <icon density="xhdpi" src="resources/android/icon/drawable-xhdpi-icon.png" /> - <icon density="xxhdpi" src="resources/android/icon/drawable-xxhdpi-icon.png" /> - <icon density="xxxhdpi" src="resources/android/icon/drawable-xxxhdpi-icon.png" /> - <splash density="land-ldpi" src="resources/android/splash/drawable-land-ldpi-screen.png" /> - <splash density="land-mdpi" src="resources/android/splash/drawable-land-mdpi-screen.png" /> - <splash density="land-hdpi" src="resources/android/splash/drawable-land-hdpi-screen.png" /> - <splash density="land-xhdpi" src="resources/android/splash/drawable-land-xhdpi-screen.png" /> - <splash density="land-xxhdpi" src="resources/android/splash/drawable-land-xxhdpi-screen.png" /> - <splash density="land-xxxhdpi" src="resources/android/splash/drawable-land-xxxhdpi-screen.png" /> - <splash density="port-ldpi" src="resources/android/splash/drawable-port-ldpi-screen.png" /> - <splash density="port-mdpi" src="resources/android/splash/drawable-port-mdpi-screen.png" /> - <splash density="port-hdpi" src="resources/android/splash/drawable-port-hdpi-screen.png" /> - <splash density="port-xhdpi" src="resources/android/splash/drawable-port-xhdpi-screen.png" /> - <splash density="port-xxhdpi" src="resources/android/splash/drawable-port-xxhdpi-screen.png" /> - <splash density="port-xxxhdpi" src="resources/android/splash/drawable-port-xxxhdpi-screen.png" /> - <preference name="loglevel" value="DEBUG" /> - <preference name="webView" value="com.ionicframework.cordova.webview.IonicWebViewEngine" /> - <preference name="ScrollEnabled" value="false" /> - <preference name="BackupWebStorage" value="none" /> - <preference name="SplashMaintainAspectRatio" value="true" /> - <preference name="FadeSplashScreenDuration" value="300" /> - <preference name="SplashShowOnlyFirstTime" value="false" /> - <preference name="SplashScreen" value="screen" /> - <preference name="SplashScreenDelay" value="3000" /> -</widget> diff --git a/ionic/platforms/android/app/src/main/res/xml/network_security_config.xml b/ionic/platforms/android/app/src/main/res/xml/network_security_config.xml deleted file mode 100644 index de61259aac8f4a9c2ddceb7972529ad2490f60f7..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/app/src/main/res/xml/network_security_config.xml +++ /dev/null @@ -1,6 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<network-security-config> - <domain-config cleartextTrafficPermitted="true"> - <domain includeSubdomains="true">localhost</domain> - </domain-config> -</network-security-config> diff --git a/ionic/platforms/android/build.gradle b/ionic/platforms/android/build.gradle deleted file mode 100644 index 089660c280e2a775439592c25cdf46f38ccb1174..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/build.gradle +++ /dev/null @@ -1,52 +0,0 @@ -/* Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*/ - -// Top-level build file where you can add configuration options common to all sub-projects/modules. - -buildscript { - ext.kotlin_version = '1.3.50' - repositories { - google() - jcenter() - } - dependencies { - classpath 'com.android.tools.build:gradle:4.0.0' - classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" - // NOTE: Do not place your application dependencies here; they belong - // in the individual module build.gradle files - } -} - -allprojects { - repositories { - google() - jcenter() - } - - //This replaces project.properties w.r.t. build settings - project.ext { - defaultBuildToolsVersion="29.0.2" //String - defaultMinSdkVersion=22 //Integer - Minimum requirement is Android 5.1 - defaultTargetSdkVersion=29 //Integer - We ALWAYS target the latest by default - defaultCompileSdkVersion=29 //Integer - We ALWAYS compile with the latest by default - } -} - -task clean(type: Delete) { - delete rootProject.buildDir -} diff --git a/ionic/platforms/android/cordova/Api.js b/ionic/platforms/android/cordova/Api.js deleted file mode 100644 index 91690a63e88b86fadae7ad54f1f75b4890feee08..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/Api.js +++ /dev/null @@ -1,384 +0,0 @@ -/** - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*/ - -/** - * @todo update coho to update this line. - * @todo use `package.json` instead but first - * figure out how this fit in with the platform-centered workflow structure. - * This workflow would not have the `package.json` file. - */ -// Coho updates this line -const VERSION = '9.0.0'; - -var path = require('path'); - -var AndroidProject = require('./lib/AndroidProject'); -var PluginManager = require('cordova-common').PluginManager; - -var CordovaLogger = require('cordova-common').CordovaLogger; -var selfEvents = require('cordova-common').events; -var ConfigParser = require('cordova-common').ConfigParser; -const prepare = require('./lib/prepare').prepare; - -var PLATFORM = 'android'; - -function setupEvents (externalEventEmitter) { - if (externalEventEmitter) { - // This will make the platform internal events visible outside - selfEvents.forwardEventsTo(externalEventEmitter); - return externalEventEmitter; - } - - // There is no logger if external emitter is not present, - // so attach a console logger - CordovaLogger.get().subscribe(selfEvents); - return selfEvents; -} - -/** - * Class, that acts as abstraction over particular platform. Encapsulates the - * platform's properties and methods. - * - * Platform that implements own PlatformApi instance _should implement all - * prototype methods_ of this class to be fully compatible with cordova-lib. - * - * The PlatformApi instance also should define the following field: - * - * * platform: String that defines a platform name. - * @class Api - */ -class Api { - constructor (platform, platformRootDir, events) { - this.platform = PLATFORM; - this.root = path.resolve(__dirname, '..'); - - setupEvents(events); - - const appMain = path.join(this.root, 'app', 'src', 'main'); - const appRes = path.join(appMain, 'res'); - - this.locations = { - root: this.root, - www: path.join(appMain, 'assets', 'www'), - res: appRes, - platformWww: path.join(this.root, 'platform_www'), - configXml: path.join(appRes, 'xml', 'config.xml'), - defaultConfigXml: path.join(this.root, 'cordova', 'defaults.xml'), - strings: path.join(appRes, 'values', 'strings.xml'), - manifest: path.join(appMain, 'AndroidManifest.xml'), - build: path.join(this.root, 'build'), - javaSrc: path.join(appMain, 'java') - }; - } - - /** - * Gets a CordovaPlatform object, that represents the platform structure. - * - * @return {CordovaPlatform} A structure that contains the description of - * platform's file structure and other properties of platform. - */ - getPlatformInfo () { - var result = {}; - result.locations = this.locations; - result.root = this.root; - result.name = this.platform; - result.version = Api.version(); - result.projectConfig = this._config; - - return result; - } - - /** - * Updates installed platform with provided www assets and new app - * configuration. This method is required for CLI workflow and will be called - * each time before build, so the changes, made to app configuration and www - * code, will be applied to platform. - * - * @param {CordovaProject} cordovaProject A CordovaProject instance, that defines a - * project structure and configuration, that should be applied to platform - * (contains project's www location and ConfigParser instance for project's - * config). - * - * @return {Promise} Return a promise either fulfilled, or rejected with - * CordovaError instance. - */ - prepare (cordovaProject, prepareOptions) { - cordovaProject.projectConfig = new ConfigParser(cordovaProject.locations.rootConfigXml || cordovaProject.projectConfig.path); - - return prepare.call(this, cordovaProject, prepareOptions); - } - - /** - * Installs a new plugin into platform. This method only copies non-www files - * (sources, libs, etc.) to platform. It also doesn't resolves the - * dependencies of plugin. Both of handling of www files, such as assets and - * js-files and resolving dependencies are the responsibility of caller. - * - * @param {PluginInfo} plugin A PluginInfo instance that represents plugin - * that will be installed. - * @param {Object} installOptions An options object. Possible options below: - * @param {Boolean} installOptions.link: Flag that specifies that plugin - * sources will be symlinked to app's directory instead of copying (if - * possible). - * @param {Object} installOptions.variables An object that represents - * variables that will be used to install plugin. See more details on plugin - * variables in documentation: - * https://cordova.apache.org/docs/en/4.0.0/plugin_ref_spec.md.html - * - * @return {Promise} Return a promise either fulfilled, or rejected with - * CordovaError instance. - */ - addPlugin (plugin, installOptions) { - var project = AndroidProject.getProjectFile(this.root); - var self = this; - - installOptions = installOptions || {}; - installOptions.variables = installOptions.variables || {}; - // Add PACKAGE_NAME variable into vars - if (!installOptions.variables.PACKAGE_NAME) { - installOptions.variables.PACKAGE_NAME = project.getPackageName(); - } - - return Promise.resolve().then(function () { - return PluginManager.get(self.platform, self.locations, project).addPlugin(plugin, installOptions); - }).then(function () { - if (plugin.getFrameworks(this.platform).length === 0) return; - selfEvents.emit('verbose', 'Updating build files since android plugin contained <framework>'); - // This should pick the correct builder, not just get gradle - require('./lib/builders/builders').getBuilder().prepBuildFiles(); - }.bind(this)) - // CB-11022 Return truthy value to prevent running prepare after - .then(() => true); - } - - /** - * Removes an installed plugin from platform. - * - * Since method accepts PluginInfo instance as input parameter instead of plugin - * id, caller shoud take care of managing/storing PluginInfo instances for - * future uninstalls. - * - * @param {PluginInfo} plugin A PluginInfo instance that represents plugin - * that will be installed. - * - * @return {Promise} Return a promise either fulfilled, or rejected with - * CordovaError instance. - */ - removePlugin (plugin, uninstallOptions) { - var project = AndroidProject.getProjectFile(this.root); - - if (uninstallOptions && uninstallOptions.usePlatformWww === true) { - uninstallOptions.usePlatformWww = false; - } - - return PluginManager.get(this.platform, this.locations, project) - .removePlugin(plugin, uninstallOptions) - .then(function () { - if (plugin.getFrameworks(this.platform).length === 0) return; - - selfEvents.emit('verbose', 'Updating build files since android plugin contained <framework>'); - require('./lib/builders/builders').getBuilder().prepBuildFiles(); - }.bind(this)) - // CB-11022 Return truthy value to prevent running prepare after - .then(() => true); - } - - /** - * Builds an application package for current platform. - * - * @param {Object} buildOptions A build options. This object's structure is - * highly depends on platform's specific. The most common options are: - * @param {Boolean} buildOptions.debug Indicates that packages should be - * built with debug configuration. This is set to true by default unless the - * 'release' option is not specified. - * @param {Boolean} buildOptions.release Indicates that packages should be - * built with release configuration. If not set to true, debug configuration - * will be used. - * @param {Boolean} buildOptions.device Specifies that built app is intended - * to run on device - * @param {Boolean} buildOptions.emulator: Specifies that built app is - * intended to run on emulator - * @param {String} buildOptions.target Specifies the device id that will be - * used to run built application. - * @param {Boolean} buildOptions.nobuild Indicates that this should be a - * dry-run call, so no build artifacts will be produced. - * @param {String[]} buildOptions.archs Specifies chip architectures which - * app packages should be built for. List of valid architectures is depends on - * platform. - * @param {String} buildOptions.buildConfig The path to build configuration - * file. The format of this file is depends on platform. - * @param {String[]} buildOptions.argv Raw array of command-line arguments, - * passed to `build` command. The purpose of this property is to pass a - * platform-specific arguments, and eventually let platform define own - * arguments processing logic. - * - * @return {Promise<Object[]>} A promise either fulfilled with an array of build - * artifacts (application packages) if package was built successfully, - * or rejected with CordovaError. The resultant build artifact objects is not - * strictly typed and may conatin arbitrary set of fields as in sample below. - * - * { - * architecture: 'x86', - * buildType: 'debug', - * path: '/path/to/build', - * type: 'app' - * } - * - * The return value in most cases will contain only one item but in some cases - * there could be multiple items in output array, e.g. when multiple - * arhcitectures is specified. - */ - build (buildOptions) { - var self = this; - - return require('./lib/check_reqs').run().then(function () { - return require('./lib/build').run.call(self, buildOptions); - }).then(function (buildResults) { - // Cast build result to array of build artifacts - return buildResults.paths.map(function (apkPath) { - return { - buildType: buildResults.buildType, - buildMethod: buildResults.buildMethod, - path: apkPath, - type: path.extname(apkPath).replace(/\./g, '') - }; - }); - }); - } - - /** - * Builds an application package for current platform and runs it on - * specified/default device. If no 'device'/'emulator'/'target' options are - * specified, then tries to run app on default device if connected, otherwise - * runs the app on emulator. - * - * @param {Object} runOptions An options object. The structure is the same - * as for build options. - * - * @return {Promise} A promise either fulfilled if package was built and ran - * successfully, or rejected with CordovaError. - */ - run (runOptions) { - var self = this; - return require('./lib/check_reqs').run().then(function () { - return require('./lib/run').run.call(self, runOptions); - }); - } - - /** - * Cleans out the build artifacts from platform's directory, and also - * cleans out the platform www directory if called without options specified. - * - * @return {Promise} Return a promise either fulfilled, or rejected with - * CordovaError. - */ - clean (cleanOptions) { - var self = this; - // This will lint, checking for null won't - if (typeof cleanOptions === 'undefined') { - cleanOptions = {}; - } - - return require('./lib/check_reqs').run().then(function () { - return require('./lib/build').runClean.call(self, cleanOptions); - }).then(function () { - return require('./lib/prepare').clean.call(self, cleanOptions); - }); - } - - /** - * Performs a requirements check for current platform. Each platform defines its - * own set of requirements, which should be resolved before platform can be - * built successfully. - * - * @return {Promise<Requirement[]>} Promise, resolved with set of Requirement - * objects for current platform. - */ - requirements () { - return require('./lib/check_reqs').check_all(); - } - - /** - * Installs platform to specified directory and creates a platform project. - * - * @param {String} destination Destination directory, where insatll platform to - * @param {ConfigParser} [config] ConfgiParser instance, used to retrieve - * project creation options, such as package id and project name. - * @param {Object} [options] An options object. The most common options are: - * @param {String} [options.customTemplate] A path to custom template, that - * should override the default one from platform. - * @param {Boolean} [options.link] Flag that indicates that platform's - * sources will be linked to installed platform instead of copying. - * @param {EventEmitter} [events] An EventEmitter instance that will be used for - * logging purposes. If no EventEmitter provided, all events will be logged to - * console - * - * @return {Promise<PlatformApi>} Promise either fulfilled with PlatformApi - * instance or rejected with CordovaError. - */ - static createPlatform (destination, config, options, events) { - events = setupEvents(events); - var result; - try { - result = require('../../lib/create').create(destination, config, options, events).then(function (destination) { - return new Api(PLATFORM, destination, events); - }); - } catch (e) { - events.emit('error', 'createPlatform is not callable from the android project API.'); - throw (e); - } - return result; - } - - /** - * Updates already installed platform. - * - * @param {String} destination Destination directory, where platform installed - * @param {Object} [options] An options object. The most common options are: - * @param {String} [options.customTemplate] A path to custom template, that - * should override the default one from platform. - * @param {Boolean} [options.link] Flag that indicates that platform's - * sources will be linked to installed platform instead of copying. - * @param {EventEmitter} [events] An EventEmitter instance that will be used for - * logging purposes. If no EventEmitter provided, all events will be logged to - * console - * - * @return {Promise<PlatformApi>} Promise either fulfilled with PlatformApi - * instance or rejected with CordovaError. - */ - static updatePlatform (destination, options, events) { - events = setupEvents(events); - var result; - try { - result = require('../../lib/create').update(destination, options, events).then(function (destination) { - return new Api(PLATFORM, destination, events); - }); - } catch (e) { - events.emit('error', 'updatePlatform is not callable from the android project API, you will need to do this manually.'); - throw (e); - } - return result; - } - - static version () { - return VERSION; - } -} - -module.exports = Api; diff --git a/ionic/platforms/android/cordova/android_sdk_version b/ionic/platforms/android/cordova/android_sdk_version deleted file mode 100755 index c4aa8b8653d5766c852c2d7ede54ed99b92f0967..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/android_sdk_version +++ /dev/null @@ -1,27 +0,0 @@ -#!/usr/bin/env node - -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*/ - -var android_sdk = require('./lib/android_sdk'); - -android_sdk.print_newest_available_sdk_target().catch(err => { - console.error(err); - process.exit(2); -}); diff --git a/ionic/platforms/android/cordova/android_sdk_version.bat b/ionic/platforms/android/cordova/android_sdk_version.bat deleted file mode 100644 index 65173a8f8fbc8f39213567ef5f5739e617041be2..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/android_sdk_version.bat +++ /dev/null @@ -1,26 +0,0 @@ -:: Licensed to the Apache Software Foundation (ASF) under one -:: or more contributor license agreements. See the NOTICE file -:: distributed with this work for additional information -:: regarding copyright ownership. The ASF licenses this file -:: to you under the Apache License, Version 2.0 (the -:: "License"); you may not use this file except in compliance -:: with the License. You may obtain a copy of the License at -:: -:: http://www.apache.org/licenses/LICENSE-2.0 -:: -:: Unless required by applicable law or agreed to in writing, -:: software distributed under the License is distributed on an -:: "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -:: KIND, either express or implied. See the License for the -:: specific language governing permissions and limitations -:: under the License. - -@ECHO OFF -SET script_path="%~dp0android_sdk_version" -IF EXIST %script_path% ( - node %script_path% %* -) ELSE ( - ECHO. - ECHO ERROR: Could not find 'android_sdk_version' script in 'bin' folder, aborting...>&2 - EXIT /B 1 -) diff --git a/ionic/platforms/android/cordova/build b/ionic/platforms/android/cordova/build deleted file mode 100755 index b4e160ebe3ab02ecdb847fac630d3ef0b06e8d5c..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/build +++ /dev/null @@ -1,51 +0,0 @@ -#!/usr/bin/env node - -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*/ - -var args = process.argv; -var Api = require('./Api'); -var nopt = require('nopt'); -var path = require('path'); - -// Support basic help commands -if (['--help', '/?', '-h', 'help', '-help', '/help'].indexOf(args[2]) >= 0) { - require('./lib/build').help(); -} - -// Do some basic argument parsing -var buildOpts = nopt({ - verbose: Boolean, - silent: Boolean, - debug: Boolean, - release: Boolean, - nobuild: Boolean, - buildConfig: path -}, { d: '--verbose' }); - -// Make buildOptions compatible with PlatformApi build method spec -buildOpts.argv = buildOpts.argv.original; - -require('./loggingHelper').adjustLoggerLevel(buildOpts); - -new Api().build(buildOpts) - .catch(function (err) { - console.error(err.stack); - process.exit(2); - }); diff --git a/ionic/platforms/android/cordova/build.bat b/ionic/platforms/android/cordova/build.bat deleted file mode 100644 index 46e966afb2049d44193d96364f42b592be702a6e..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/build.bat +++ /dev/null @@ -1,26 +0,0 @@ -:: Licensed to the Apache Software Foundation (ASF) under one -:: or more contributor license agreements. See the NOTICE file -:: distributed with this work for additional information -:: regarding copyright ownership. The ASF licenses this file -:: to you under the Apache License, Version 2.0 (the -:: "License"); you may not use this file except in compliance -:: with the License. You may obtain a copy of the License at -:: -:: http://www.apache.org/licenses/LICENSE-2.0 -:: -:: Unless required by applicable law or agreed to in writing, -:: software distributed under the License is distributed on an -:: "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -:: KIND, either express or implied. See the License for the -:: specific language governing permissions and limitations -:: under the License. - -@ECHO OFF -SET script_path="%~dp0build" -IF EXIST %script_path% ( - node %script_path% %* -) ELSE ( - ECHO. - ECHO ERROR: Could not find 'build' script in 'cordova' folder, aborting...>&2 - EXIT /B 1 -) \ No newline at end of file diff --git a/ionic/platforms/android/cordova/check_reqs b/ionic/platforms/android/cordova/check_reqs deleted file mode 100755 index faed86f10475f9da83269d6e95b3c33dc6e8dcae..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/check_reqs +++ /dev/null @@ -1,32 +0,0 @@ -#!/usr/bin/env node - -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*/ - -var check_reqs = require('./lib/check_reqs'); - -check_reqs.run().then( - function success () { - console.log('Looks like your environment fully supports cordova-android development!'); - }, - function fail (err) { - console.log(err); - process.exit(2); - } -); diff --git a/ionic/platforms/android/cordova/check_reqs.bat b/ionic/platforms/android/cordova/check_reqs.bat deleted file mode 100644 index 84d66ad20d38576758cc2ae5b42e6f752883e140..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/check_reqs.bat +++ /dev/null @@ -1,26 +0,0 @@ -:: Licensed to the Apache Software Foundation (ASF) under one -:: or more contributor license agreements. See the NOTICE file -:: distributed with this work for additional information -:: regarding copyright ownership. The ASF licenses this file -:: to you under the Apache License, Version 2.0 (the -:: "License"); you may not use this file except in compliance -:: with the License. You may obtain a copy of the License at -:: -:: http://www.apache.org/licenses/LICENSE-2.0 -:: -:: Unless required by applicable law or agreed to in writing, -:: software distributed under the License is distributed on an -:: "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -:: KIND, either express or implied. See the License for the -:: specific language governing permissions and limitations -:: under the License. - -@ECHO OFF -SET script_path="%~dp0check_reqs" -IF EXIST %script_path% ( - node %script_path% %* -) ELSE ( - ECHO. - ECHO ERROR: Could not find 'check_reqs' script in 'bin' folder, aborting...>&2 - EXIT /B 1 -) diff --git a/ionic/platforms/android/cordova/clean b/ionic/platforms/android/cordova/clean deleted file mode 100755 index 5173d14b271f9bed55f36f1d4db7b2734779816f..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/clean +++ /dev/null @@ -1,51 +0,0 @@ -#!/usr/bin/env node - -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*/ - -var Api = require('./Api'); -var path = require('path'); -var nopt = require('nopt'); - -// Support basic help commands -if (['--help', '/?', '-h', 'help', '-help', '/help'].indexOf(process.argv[2]) >= 0) { - console.log('Usage: ' + path.relative(process.cwd(), process.argv[1])); - console.log('Cleans the project directory.'); - process.exit(0); -} - -// Do some basic argument parsing -var opts = nopt({ - verbose: Boolean, - silent: Boolean -}, { d: '--verbose' }); - -// Make buildOptions compatible with PlatformApi clean method spec -opts.argv = opts.argv.original; - -// Skip cleaning prepared files when not invoking via cordova CLI. -opts.noPrepare = true; - -require('./loggingHelper').adjustLoggerLevel(opts); - -new Api().clean(opts) - .catch(function (err) { - console.error(err.stack); - process.exit(2); - }); diff --git a/ionic/platforms/android/cordova/clean.bat b/ionic/platforms/android/cordova/clean.bat deleted file mode 100644 index 445ef6e12b0aa47849624cf310a5070daba8cb60..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/clean.bat +++ /dev/null @@ -1,26 +0,0 @@ -:: Licensed to the Apache Software Foundation (ASF) under one -:: or more contributor license agreements. See the NOTICE file -:: distributed with this work for additional information -:: regarding copyright ownership. The ASF licenses this file -:: to you under the Apache License, Version 2.0 (the -:: "License"); you may not use this file except in compliance -:: with the License. You may obtain a copy of the License at -:: -:: http://www.apache.org/licenses/LICENSE-2.0 -:: -:: Unless required by applicable law or agreed to in writing, -:: software distributed under the License is distributed on an -:: "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -:: KIND, either express or implied. See the License for the -:: specific language governing permissions and limitations -:: under the License. - -@ECHO OFF -SET script_path="%~dp0clean" -IF EXIST %script_path% ( - node %script_path% %* -) ELSE ( - ECHO. - ECHO ERROR: Could not find 'clean' script in 'cordova' folder, aborting...>&2 - EXIT /B 1 -) \ No newline at end of file diff --git a/ionic/platforms/android/cordova/defaults.xml b/ionic/platforms/android/cordova/defaults.xml deleted file mode 100644 index 5286ab9c1b7b800bb1dda49bee4de4db0161ce80..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/defaults.xml +++ /dev/null @@ -1,26 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. ---> -<widget xmlns = "http://www.w3.org/ns/widgets" - id = "io.cordova.helloCordova" - version = "2.0.0"> - - <!-- Preferences for Android --> - <preference name="loglevel" value="DEBUG" /> -</widget> diff --git a/ionic/platforms/android/cordova/lib/Adb.js b/ionic/platforms/android/cordova/lib/Adb.js deleted file mode 100644 index 042a0c2a3f406bd82dee3fd0de2f0f43d9c8eb58..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/lib/Adb.js +++ /dev/null @@ -1,99 +0,0 @@ -/** - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*/ - -var os = require('os'); -var execa = require('execa'); -var events = require('cordova-common').events; -var CordovaError = require('cordova-common').CordovaError; - -var Adb = {}; - -function isDevice (line) { - return line.match(/\w+\tdevice/) && !line.match(/emulator/); -} - -function isEmulator (line) { - return line.match(/device/) && line.match(/emulator/); -} - -/** - * Lists available/connected devices and emulators - * - * @param {Object} opts Various options - * @param {Boolean} opts.emulators Specifies whether this method returns - * emulators only - * - * @return {Promise<String[]>} list of available/connected - * devices/emulators - */ -Adb.devices = function (opts) { - return execa('adb', ['devices'], { cwd: os.tmpdir() }).then(({ stdout: output }) => { - return output.split('\n').filter(function (line) { - // Filter out either real devices or emulators, depending on options - return (line && opts && opts.emulators) ? isEmulator(line) : isDevice(line); - }).map(function (line) { - return line.replace(/\tdevice/, '').replace('\r', ''); - }); - }); -}; - -Adb.install = function (target, packagePath, opts) { - events.emit('verbose', 'Installing apk ' + packagePath + ' on target ' + target + '...'); - var args = ['-s', target, 'install']; - if (opts && opts.replace) args.push('-r'); - return execa('adb', args.concat(packagePath), { cwd: os.tmpdir() }).then(({ stdout: output }) => { - // 'adb install' seems to always returns no error, even if installation fails - // so we catching output to detect installation failure - if (output.match(/Failure/)) { - if (output.match(/INSTALL_PARSE_FAILED_NO_CERTIFICATES/)) { - output += '\n\n' + 'Sign the build using \'-- --keystore\' or \'--buildConfig\'' + - ' or sign and deploy the unsigned apk manually using Android tools.'; - } else if (output.match(/INSTALL_FAILED_VERSION_DOWNGRADE/)) { - output += '\n\n' + 'You\'re trying to install apk with a lower versionCode that is already installed.' + - '\nEither uninstall an app or increment the versionCode.'; - } - - return Promise.reject(new CordovaError('Failed to install apk to device: ' + output)); - } - }); -}; - -Adb.uninstall = function (target, packageId) { - events.emit('verbose', 'Uninstalling package ' + packageId + ' from target ' + target + '...'); - return execa('adb', ['-s', target, 'uninstall', packageId], { cwd: os.tmpdir() }).then(({ stdout }) => stdout); -}; - -Adb.shell = function (target, shellCommand) { - events.emit('verbose', 'Running adb shell command "' + shellCommand + '" on target ' + target + '...'); - var args = ['-s', target, 'shell']; - shellCommand = shellCommand.split(/\s+/); - return execa('adb', args.concat(shellCommand), { cwd: os.tmpdir() }) - .then(({ stdout }) => stdout) - .catch(error => Promise.reject(new CordovaError(`Failed to execute shell command "${shellCommand}" on device: ${error}`))); -}; - -Adb.start = function (target, activityName) { - events.emit('verbose', 'Starting application "' + activityName + '" on target ' + target + '...'); - return Adb.shell(target, 'am start -W -a android.intent.action.MAIN -n' + activityName).catch((error) => { - return Promise.reject(new CordovaError('Failed to start application "' + - activityName + '"" on device: ' + error)); - }); -}; - -module.exports = Adb; diff --git a/ionic/platforms/android/cordova/lib/AndroidManifest.js b/ionic/platforms/android/cordova/lib/AndroidManifest.js deleted file mode 100644 index be4fecc08297bd125013d9077c881ec87cd5abe4..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/lib/AndroidManifest.js +++ /dev/null @@ -1,128 +0,0 @@ -/** - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*/ - -var fs = require('fs'); -var xml = require('cordova-common').xmlHelpers; - -var DEFAULT_ORIENTATION = 'default'; - -/** Wraps an AndroidManifest file */ -class AndroidManifest { - constructor (path) { - this.path = path; - this.doc = xml.parseElementtreeSync(path); - if (this.doc.getroot().tag !== 'manifest') { - throw new Error('AndroidManifest at ' + path + ' has incorrect root node name (expected "manifest")'); - } - } - - getVersionName () { - return this.doc.getroot().attrib['android:versionName']; - } - - setVersionName (versionName) { - this.doc.getroot().attrib['android:versionName'] = versionName; - return this; - } - - getVersionCode () { - return this.doc.getroot().attrib['android:versionCode']; - } - - setVersionCode (versionCode) { - this.doc.getroot().attrib['android:versionCode'] = versionCode; - return this; - } - - getPackageId () { - return this.doc.getroot().attrib.package; - } - - setPackageId (pkgId) { - this.doc.getroot().attrib.package = pkgId; - return this; - } - - getActivity () { - var activity = this.doc.getroot().find('./application/activity'); - return { - getName: function () { - return activity.attrib['android:name']; - }, - setName: function (name) { - if (!name) { - delete activity.attrib['android:name']; - } else { - activity.attrib['android:name'] = name; - } - return this; - }, - getOrientation: function () { - return activity.attrib['android:screenOrientation']; - }, - setOrientation: function (orientation) { - if (!orientation || orientation.toLowerCase() === DEFAULT_ORIENTATION) { - delete activity.attrib['android:screenOrientation']; - } else { - activity.attrib['android:screenOrientation'] = orientation; - } - return this; - }, - getLaunchMode: function () { - return activity.attrib['android:launchMode']; - }, - setLaunchMode: function (launchMode) { - if (!launchMode) { - delete activity.attrib['android:launchMode']; - } else { - activity.attrib['android:launchMode'] = launchMode; - } - return this; - } - }; - } - - getDebuggable () { - return this.doc.getroot().find('./application').attrib['android:debuggable'] === 'true'; - } - - setDebuggable (value) { - var application = this.doc.getroot().find('./application'); - if (value) { - application.attrib['android:debuggable'] = 'true'; - } else { - // The default value is "false", so we can remove attribute at all. - delete application.attrib['android:debuggable']; - } - return this; - } - - /** - * Writes manifest to disk syncronously. If filename is specified, then manifest - * will be written to that file - * - * @param {String} [destPath] File to write manifest to. If omitted, - * manifest will be written to file it has been read from. - */ - write (destPath) { - fs.writeFileSync(destPath || this.path, this.doc.write({ indent: 4 }), 'utf-8'); - } -} - -module.exports = AndroidManifest; diff --git a/ionic/platforms/android/cordova/lib/AndroidProject.js b/ionic/platforms/android/cordova/lib/AndroidProject.js deleted file mode 100644 index 5d1c3c32dce4f3ed29c003bbdb3ff4dbf6ee7e19..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/lib/AndroidProject.js +++ /dev/null @@ -1,202 +0,0 @@ -/** - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*/ - -var fs = require('fs'); -var path = require('path'); -var properties_parser = require('properties-parser'); -var AndroidManifest = require('./AndroidManifest'); -var pluginHandlers = require('./pluginHandlers'); - -var projectFileCache = {}; - -function addToPropertyList (projectProperties, key, value) { - var i = 1; - while (projectProperties.get(key + '.' + i)) { i++; } - - projectProperties.set(key + '.' + i, value); - projectProperties.dirty = true; -} - -function removeFromPropertyList (projectProperties, key, value) { - var i = 1; - var currentValue; - while ((currentValue = projectProperties.get(key + '.' + i))) { - if (currentValue === value) { - while ((currentValue = projectProperties.get(key + '.' + (i + 1)))) { - projectProperties.set(key + '.' + i, currentValue); - i++; - } - projectProperties.set(key + '.' + i); - break; - } - i++; - } - projectProperties.dirty = true; -} - -function getRelativeLibraryPath (parentDir, subDir) { - var libraryPath = path.relative(parentDir, subDir); - return (path.sep === '\\') ? libraryPath.replace(/\\/g, '/') : libraryPath; -} - -class AndroidProject { - constructor (projectDir) { - this._propertiesEditors = {}; - this._subProjectDirs = {}; - this._dirty = false; - this.projectDir = projectDir; - this.platformWww = path.join(this.projectDir, 'platform_www'); - this.www = path.join(this.projectDir, 'app/src/main/assets/www'); - } - - /** - * Reads the package name out of the Android Manifest file - * - * @param {String} projectDir The absolute path to the directory containing the project - * @return {String} The name of the package - */ - getPackageName () { - var manifestPath = path.join(this.projectDir, 'app/src/main/AndroidManifest.xml'); - return new AndroidManifest(manifestPath).getPackageId(); - } - - getCustomSubprojectRelativeDir (plugin_id, src) { - // All custom subprojects are prefixed with the last portion of the package id. - // This is to avoid collisions when opening multiple projects in Eclipse that have subprojects with the same name. - var packageName = this.getPackageName(); - var lastDotIndex = packageName.lastIndexOf('.'); - var prefix = packageName.substring(lastDotIndex + 1); - var subRelativeDir = path.join(plugin_id, prefix + '-' + path.basename(src)); - return subRelativeDir; - } - - addSubProject (parentDir, subDir) { - var parentProjectFile = path.resolve(parentDir, 'project.properties'); - var subProjectFile = path.resolve(subDir, 'project.properties'); - var parentProperties = this._getPropertiesFile(parentProjectFile); - // TODO: Setting the target needs to happen only for pre-3.7.0 projects - if (fs.existsSync(subProjectFile)) { - var subProperties = this._getPropertiesFile(subProjectFile); - subProperties.set('target', parentProperties.get('target')); - subProperties.dirty = true; - this._subProjectDirs[subDir] = true; - } - addToPropertyList(parentProperties, 'android.library.reference', getRelativeLibraryPath(parentDir, subDir)); - - this._dirty = true; - } - - removeSubProject (parentDir, subDir) { - var parentProjectFile = path.resolve(parentDir, 'project.properties'); - var parentProperties = this._getPropertiesFile(parentProjectFile); - removeFromPropertyList(parentProperties, 'android.library.reference', getRelativeLibraryPath(parentDir, subDir)); - delete this._subProjectDirs[subDir]; - this._dirty = true; - } - - addGradleReference (parentDir, subDir) { - var parentProjectFile = path.resolve(parentDir, 'project.properties'); - var parentProperties = this._getPropertiesFile(parentProjectFile); - addToPropertyList(parentProperties, 'cordova.gradle.include', getRelativeLibraryPath(parentDir, subDir)); - this._dirty = true; - } - - removeGradleReference (parentDir, subDir) { - var parentProjectFile = path.resolve(parentDir, 'project.properties'); - var parentProperties = this._getPropertiesFile(parentProjectFile); - removeFromPropertyList(parentProperties, 'cordova.gradle.include', getRelativeLibraryPath(parentDir, subDir)); - this._dirty = true; - } - - addSystemLibrary (parentDir, value) { - var parentProjectFile = path.resolve(parentDir, 'project.properties'); - var parentProperties = this._getPropertiesFile(parentProjectFile); - addToPropertyList(parentProperties, 'cordova.system.library', value); - this._dirty = true; - } - - removeSystemLibrary (parentDir, value) { - var parentProjectFile = path.resolve(parentDir, 'project.properties'); - var parentProperties = this._getPropertiesFile(parentProjectFile); - removeFromPropertyList(parentProperties, 'cordova.system.library', value); - this._dirty = true; - } - - write () { - if (!this._dirty) { - return; - } - this._dirty = false; - - for (var filename in this._propertiesEditors) { - var editor = this._propertiesEditors[filename]; - if (editor.dirty) { - fs.writeFileSync(filename, editor.toString()); - editor.dirty = false; - } - } - } - - getInstaller (type) { - return pluginHandlers.getInstaller(type); - } - - getUninstaller (type) { - return pluginHandlers.getUninstaller(type); - } - - /* - * This checks if an Android project is clean or has old build artifacts - */ - isClean () { - var build_path = path.join(this.projectDir, 'build'); - // If the build directory doesn't exist, it's clean - return !(fs.existsSync(build_path)); - } - - _getPropertiesFile (filename) { - if (!this._propertiesEditors[filename]) { - if (fs.existsSync(filename)) { - this._propertiesEditors[filename] = properties_parser.createEditor(filename); - } else { - this._propertiesEditors[filename] = properties_parser.createEditor(); - } - } - - return this._propertiesEditors[filename]; - } - - static getProjectFile (projectDir) { - if (!projectFileCache[projectDir]) { - projectFileCache[projectDir] = new AndroidProject(projectDir); - } - - return projectFileCache[projectDir]; - } - - static purgeCache (projectDir) { - if (projectDir) { - delete projectFileCache[projectDir]; - } else { - projectFileCache = {}; - } - } -} - -module.exports = AndroidProject; diff --git a/ionic/platforms/android/cordova/lib/PackageType.js b/ionic/platforms/android/cordova/lib/PackageType.js deleted file mode 100644 index fd129f134bec0e0e15b6248f1a6781ef8fdb263d..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/lib/PackageType.js +++ /dev/null @@ -1,25 +0,0 @@ -/** - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*/ - -const PackageType = { - APK: 'apk', - BUNDLE: 'bundle' -}; - -module.exports = PackageType; diff --git a/ionic/platforms/android/cordova/lib/android_sdk.js b/ionic/platforms/android/cordova/lib/android_sdk.js deleted file mode 100755 index 963d7f1da7ca8dc561120690500e48bd71f940cf..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/lib/android_sdk.js +++ /dev/null @@ -1,101 +0,0 @@ -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*/ - -const execa = require('execa'); - -var suffix_number_regex = /(\d+)$/; -// Used for sorting Android targets, example strings to sort: -// android-19 -// android-L -// Google Inc.:Google APIs:20 -// Google Inc.:Glass Development Kit Preview:20 -// The idea is to sort based on largest "suffix" number - meaning the bigger -// the number at the end, the more recent the target, the closer to the -// start of the array. -function sort_by_largest_numerical_suffix (a, b) { - let suffix_a = a.match(suffix_number_regex); - let suffix_b = b.match(suffix_number_regex); - // If no number is detected (eg: preview version like android-R), - // designate a suffix of 0 so it gets moved to the end - suffix_a = suffix_a || ['0', '0']; - suffix_b = suffix_b || ['0', '0']; - // Return < zero, or > zero, based on which suffix is larger. - return (parseInt(suffix_a[1]) > parseInt(suffix_b[1]) ? -1 : 1); -} - -module.exports.print_newest_available_sdk_target = function () { - return module.exports.list_targets().then(function (targets) { - targets.sort(sort_by_largest_numerical_suffix); - console.log(targets[0]); - }); -}; - -// Versions should not be represented as float, so we disable quote-props here -/* eslint-disable quote-props */ -module.exports.version_string_to_api_level = { - '4.0': 14, - '4.0.3': 15, - '4.1': 16, - '4.2': 17, - '4.3': 18, - '4.4': 19, - '4.4W': 20, - '5.0': 21, - '5.1': 22, - '6.0': 23, - '7.0': 24, - '7.1.1': 25, - '8.0': 26 -}; -/* eslint-enable quote-props */ - -function parse_targets (output) { - var target_out = output.split('\n'); - var targets = []; - for (var i = target_out.length - 1; i >= 0; i--) { - if (target_out[i].match(/id:/)) { // if "id:" is in the line... - targets.push(target_out[i].match(/"(.+)"/)[1]); // .. match whatever is in quotes. - } - } - return targets; -} - -module.exports.list_targets_with_android = function () { - return execa('android', ['list', 'target']).then(result => parse_targets(result.stdout)); -}; - -module.exports.list_targets_with_avdmanager = function () { - return execa('avdmanager', ['list', 'target']).then(result => parse_targets(result.stdout)); -}; - -module.exports.list_targets = function () { - return module.exports.list_targets_with_avdmanager().catch(function (err) { - // If there's an error, like avdmanager could not be found, we can try - // as a last resort, to run `android`, in case this is a super old - // SDK installation. - if (err && (err.code === 'ENOENT' || (err.stderr && err.stderr.match(/not recognized/)))) { - return module.exports.list_targets_with_android(); - } else throw err; - }).then(function (targets) { - if (targets.length === 0) { - return Promise.reject(new Error('No android targets (SDKs) installed!')); - } - return targets; - }); -}; diff --git a/ionic/platforms/android/cordova/lib/build.js b/ionic/platforms/android/cordova/lib/build.js deleted file mode 100644 index e199239db1e2336cc9b9609b4892d4ec55407599..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/lib/build.js +++ /dev/null @@ -1,306 +0,0 @@ -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*/ - -var path = require('path'); -var fs = require('fs'); -var nopt = require('nopt'); - -var Adb = require('./Adb'); - -var builders = require('./builders/builders'); -var events = require('cordova-common').events; -const execa = require('execa'); -var CordovaError = require('cordova-common').CordovaError; -var PackageType = require('./PackageType'); - -module.exports.parseBuildOptions = parseOpts; -function parseOpts (options, resolvedTarget, projectRoot) { - options = options || {}; - options.argv = nopt({ - prepenv: Boolean, - versionCode: String, - minSdkVersion: String, - maxSdkVersion: String, - targetSdkVersion: String, - gradleArg: [String, Array], - keystore: path, - alias: String, - storePassword: String, - password: String, - keystoreType: String, - packageType: String - }, {}, options.argv, 0); - - // Android Studio Build method is the default - var ret = { - buildType: options.release ? 'release' : 'debug', - prepEnv: options.argv.prepenv, - arch: resolvedTarget && resolvedTarget.arch, - extraArgs: [] - }; - - if (options.argv.versionCode) { ret.extraArgs.push('-PcdvVersionCode=' + options.argv.versionCode); } - if (options.argv.minSdkVersion) { ret.extraArgs.push('-PcdvMinSdkVersion=' + options.argv.minSdkVersion); } - if (options.argv.maxSdkVersion) { ret.extraArgs.push('-PcdvMaxSdkVersion=' + options.argv.maxSdkVersion); } - if (options.argv.targetSdkVersion) { ret.extraArgs.push('-PcdvTargetSdkVersion=' + options.argv.targetSdkVersion); } - if (options.argv.gradleArg) { - ret.extraArgs = ret.extraArgs.concat(options.argv.gradleArg); - } - - var packageArgs = {}; - - if (options.argv.keystore) { packageArgs.keystore = path.relative(projectRoot, path.resolve(options.argv.keystore)); } - - ['alias', 'storePassword', 'password', 'keystoreType', 'packageType'].forEach(function (flagName) { - if (options.argv[flagName]) { packageArgs[flagName] = options.argv[flagName]; } - }); - - var buildConfig = options.buildConfig; - - // If some values are not specified as command line arguments - use build config to supplement them. - // Command line arguments have precedence over build config. - if (buildConfig) { - if (!fs.existsSync(buildConfig)) { - throw new Error('Specified build config file does not exist: ' + buildConfig); - } - events.emit('log', 'Reading build config file: ' + path.resolve(buildConfig)); - var buildjson = fs.readFileSync(buildConfig, 'utf8'); - var config = JSON.parse(buildjson.replace(/^\ufeff/, '')); // Remove BOM - if (config.android && config.android[ret.buildType]) { - var androidInfo = config.android[ret.buildType]; - if (androidInfo.keystore && !packageArgs.keystore) { - if (androidInfo.keystore.substr(0, 1) === '~') { - androidInfo.keystore = process.env.HOME + androidInfo.keystore.substr(1); - } - packageArgs.keystore = path.resolve(path.dirname(buildConfig), androidInfo.keystore); - events.emit('log', 'Reading the keystore from: ' + packageArgs.keystore); - } - - ['alias', 'storePassword', 'password', 'keystoreType', 'packageType'].forEach(function (key) { - packageArgs[key] = packageArgs[key] || androidInfo[key]; - }); - } - } - - if (packageArgs.keystore && packageArgs.alias) { - ret.packageInfo = new PackageInfo(packageArgs.keystore, packageArgs.alias, packageArgs.storePassword, - packageArgs.password, packageArgs.keystoreType); - } - - if (!ret.packageInfo) { - // The following loop is to decide whether to print a warning about generating a signed archive - // We only want to produce a warning if they are using a config property that is related to signing, but - // missing the required properties for signing. We don't want to produce a warning if they are simply - // using a build property that isn't related to signing, such as --packageType - let shouldWarn = false; - const signingKeys = ['keystore', 'alias', 'storePassword', 'password', 'keystoreType']; - - for (const key in packageArgs) { - if (!shouldWarn && signingKeys.indexOf(key) > -1) { - // If we enter this condition, we have a key used for signing a build, - // but we are missing some required signing properties - shouldWarn = true; - } - } - - if (shouldWarn) { - events.emit('warn', '\'keystore\' and \'alias\' need to be specified to generate a signed archive.'); - } - } - - if (packageArgs.packageType) { - const VALID_PACKAGE_TYPES = [PackageType.APK, PackageType.BUNDLE]; - if (VALID_PACKAGE_TYPES.indexOf(packageArgs.packageType) === -1) { - events.emit('warn', '"' + packageArgs.packageType + '" is an invalid packageType. Valid values are: ' + VALID_PACKAGE_TYPES.join(', ') + '\nDefaulting packageType to ' + PackageType.APK); - ret.packageType = PackageType.APK; - } else { - ret.packageType = packageArgs.packageType; - } - } else { - ret.packageType = PackageType.APK; - } - - return ret; -} - -/* - * Builds the project with the specifed options - * Returns a promise. - */ -module.exports.runClean = function (options) { - var opts = parseOpts(options, null, this.root); - var builder = builders.getBuilder(); - - return builder.prepEnv(opts).then(function () { - return builder.clean(opts); - }); -}; - -/** - * Builds the project with the specifed options. - * - * @param {BuildOptions} options A set of options. See PlatformApi.build - * method documentation for reference. - * @param {Object} optResolvedTarget A deployment target. Used to pass - * target architecture from upstream 'run' call. TODO: remove this option in - * favor of setting buildOptions.archs field. - * - * @return {Promise<Object>} Promise, resolved with built packages - * information. - */ -module.exports.run = function (options, optResolvedTarget) { - var opts = parseOpts(options, optResolvedTarget, this.root); - var builder = builders.getBuilder(); - - return builder.prepEnv(opts).then(function () { - if (opts.prepEnv) { - events.emit('verbose', 'Build file successfully prepared.'); - return; - } - return builder.build(opts).then(function () { - var paths; - if (opts.packageType === PackageType.BUNDLE) { - paths = builder.findOutputBundles(opts.buildType); - events.emit('log', 'Built the following bundle(s): \n\t' + paths.join('\n\t')); - } else { - paths = builder.findOutputApks(opts.buildType, opts.arch); - events.emit('log', 'Built the following apk(s): \n\t' + paths.join('\n\t')); - } - - return { - paths: paths, - buildType: opts.buildType - }; - }); - }); -}; - -/* - * Detects the architecture of a device/emulator - * Returns "arm" or "x86". - */ -module.exports.detectArchitecture = function (target) { - function helper () { - return Adb.shell(target, 'cat /proc/cpuinfo').then(function (output) { - return /intel/i.exec(output) ? 'x86' : 'arm'; - }); - } - function timeout (ms, err) { - return new Promise((resolve, reject) => { - setTimeout(() => reject(err), ms); - }); - } - // It sometimes happens (at least on OS X), that this command will hang forever. - // To fix it, either unplug & replug device, or restart adb server. - return Promise.race([ - helper(), - timeout(5000, new CordovaError( - 'Device communication timed out. Try unplugging & replugging the device.' - )) - ]).catch(err => { - if (/timed out/.exec('' + err)) { - // adb kill-server doesn't seem to do the trick. - // Could probably find a x-platform version of killall, but I'm not actually - // sure that this scenario even happens on non-OSX machines. - events.emit('verbose', 'adb timed out while detecting device/emulator architecture. Killing adb and trying again.'); - return execa('killall', ['adb']).then(function () { - return helper().then(null, function () { - // The double kill is sadly often necessary, at least on mac. - events.emit('warn', 'adb timed out a second time while detecting device/emulator architecture. Killing adb and trying again.'); - return execa('killall', ['adb']).then(function () { - return helper().then(null, function () { - return Promise.reject(new CordovaError('adb timed out a third time while detecting device/emulator architecture. Try unplugging & replugging the device.')); - }); - }); - }); - }, function () { - // For non-killall OS's. - return Promise.reject(err); - }); - } - throw err; - }); -}; - -module.exports.findBestApkForArchitecture = function (buildResults, arch) { - var paths = buildResults.apkPaths.filter(function (p) { - var apkName = path.basename(p); - if (buildResults.buildType === 'debug') { - return /-debug/.exec(apkName); - } - return !/-debug/.exec(apkName); - }); - var archPattern = new RegExp('-' + arch); - var hasArchPattern = /-x86|-arm/; - for (var i = 0; i < paths.length; ++i) { - var apkName = path.basename(paths[i]); - if (hasArchPattern.exec(apkName)) { - if (archPattern.exec(apkName)) { - return paths[i]; - } - } else { - return paths[i]; - } - } - throw new Error('Could not find apk architecture: ' + arch + ' build-type: ' + buildResults.buildType); -}; - -function PackageInfo (keystore, alias, storePassword, password, keystoreType) { - const createNameKeyObject = (name, value) => ({ name, value: value.replace(/\\/g, '\\\\') }); - - this.data = [ - createNameKeyObject('key.store', keystore), - createNameKeyObject('key.alias', alias) - ]; - - if (storePassword) this.data.push(createNameKeyObject('key.store.password', storePassword)); - if (password) this.data.push(createNameKeyObject('key.alias.password', password)); - if (keystoreType) this.data.push(createNameKeyObject('key.store.type', keystoreType)); -} - -PackageInfo.prototype = { - appendToProperties: function (propertiesParser) { - for (const { name, value } of this.data) propertiesParser.set(name, value); - - propertiesParser.save(); - } -}; - -module.exports.help = function () { - console.log('Usage: ' + path.relative(process.cwd(), path.join('../build')) + ' [flags] [Signed APK flags]'); - console.log('Flags:'); - console.log(' \'--debug\': will build project in debug mode (default)'); - console.log(' \'--release\': will build project for release'); - console.log(' \'--nobuild\': will skip build process (useful when using run command)'); - console.log(' \'--prepenv\': don\'t build, but copy in build scripts where necessary'); - console.log(' \'--versionCode=#\': Override versionCode for this build. Useful for uploading multiple APKs.'); - console.log(' \'--minSdkVersion=#\': Override minSdkVersion for this build.'); - console.log(' \'--maxSdkVersion=#\': Override maxSdkVersion for this build. (Not Recommended)'); - console.log(' \'--targetSdkVersion=#\': Override targetSdkVersion for this build.'); - console.log(' \'--gradleArg=<gradle command line arg>\': Extra args to pass to the gradle command. Use one flag per arg. Ex. --gradleArg=-PcdvBuildMultipleApks=true'); - console.log(' \'--packageType=<apk|bundle>\': Builds an APK or a bundle'); - console.log(''); - console.log('Signed APK flags (overwrites debug/release-signing.proprties) :'); - console.log(' \'--keystore=<path to keystore>\': Key store used to build a signed archive. (Required)'); - console.log(' \'--alias=\': Alias for the key store. (Required)'); - console.log(' \'--storePassword=\': Password for the key store. (Optional - prompted)'); - console.log(' \'--password=\': Password for the key. (Optional - prompted)'); - console.log(' \'--keystoreType\': Type of the keystore. (Optional)'); - process.exit(0); -}; diff --git a/ionic/platforms/android/cordova/lib/builders/ProjectBuilder.js b/ionic/platforms/android/cordova/lib/builders/ProjectBuilder.js deleted file mode 100644 index fdf35be45756658c1aba34e1bdd8e9f118ea10f1..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/lib/builders/ProjectBuilder.js +++ /dev/null @@ -1,380 +0,0 @@ -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*/ - -var fs = require('fs-extra'); -var path = require('path'); -const execa = require('execa'); -var events = require('cordova-common').events; -var CordovaError = require('cordova-common').CordovaError; -var check_reqs = require('../check_reqs'); -var PackageType = require('../PackageType'); -const { createEditor } = require('properties-parser'); - -const MARKER = 'YOUR CHANGES WILL BE ERASED!'; -const SIGNING_PROPERTIES = '-signing.properties'; -const TEMPLATE = - '# This file is automatically generated.\n' + - '# Do not modify this file -- ' + MARKER + '\n'; - -const archSpecificRegex = /-x86|-arm/; -const unsignedBuildRegex = /-unsigned/; - -const fileSorter = (filePathA, filePathB) => { - const archSpecificA = archSpecificRegex.test(filePathA); - const archSpecificB = archSpecificRegex.test(filePathB); - - // If they are not equal, then sort by specific archs after generic ones - if (archSpecificA !== archSpecificB) { - return archSpecificA < archSpecificB ? -1 : 1; - } - - // Otherwise, move onto the next sort item, which is by sorting unsigned bulds after signed ones - const unsignedA = unsignedBuildRegex.test(filePathA); - const unsignedB = unsignedBuildRegex.test(filePathB); - - if (unsignedA !== unsignedB) { - return unsignedA < unsignedB ? -1 : 1; - } - - // Then, sort by modification time, latest first - const modTimeA = fs.statSync(filePathA).mtime.getTime(); - const modTimeB = fs.statSync(filePathB).mtime.getTime(); - - if (modTimeA !== modTimeB) { - return modTimeA < modTimeB ? 1 : -1; - } - - // Finally, if all above is the same, sort by file name length, ascending - return filePathB.length < filePathA.length ? -1 : 1; -}; - -/** - * If the provided directory does not exist or extension is missing, return an empty array. - * If the director exists, loop the directories and collect list of files matching the extension. - * - * @param {String} dir Directory to scan - * @param {String} extension - */ -function recursivelyFindFiles (dir, extension) { - if (!fs.existsSync(dir) || !extension) return []; - - const files = fs.readdirSync(dir, { withFileTypes: true }) - .map(entry => { - const item = path.resolve(dir, entry.name); - - if (entry.isDirectory()) return recursivelyFindFiles(item, extension); - if (path.extname(entry.name) === `.${extension}`) return item; - return false; - }); - - return Array.prototype.concat(...files) - .filter(file => file !== false); -} - -/** - * @param {String} dir - * @param {String} build_type - * @param {String} arch - * @param {String} extension - */ -function findOutputFilesHelper (dir, build_type, arch, extension) { - let files = recursivelyFindFiles(path.resolve(dir, build_type), extension); - - if (files.length === 0) return files; - - // Assume arch-specific build if newest apk has -x86 or -arm. - const archSpecific = !!/-x86|-arm/.exec(path.basename(files[0])); - - // And show only arch-specific ones (or non-arch-specific) - files = files.filter(p => !!/-x86|-arm/.exec(path.basename(p)) === archSpecific); - - if (archSpecific && files.length > 1 && arch) { - files = files.filter(p => path.basename(p).indexOf('-' + arch) !== -1); - } - - return files; -} - -class ProjectBuilder { - constructor (rootDirectory) { - this.root = rootDirectory || path.resolve(__dirname, '../../..'); - this.apkDir = path.join(this.root, 'app', 'build', 'outputs', 'apk'); - this.aabDir = path.join(this.root, 'app', 'build', 'outputs', 'bundle'); - } - - getArgs (cmd, opts) { - let args; - let buildCmd = cmd; - if (opts.packageType === PackageType.BUNDLE) { - if (cmd === 'release') { - buildCmd = ':app:bundleRelease'; - } else if (cmd === 'debug') { - buildCmd = ':app:bundleDebug'; - } - - args = [buildCmd, '-b', path.join(this.root, 'build.gradle')]; - } else { - if (cmd === 'release') { - buildCmd = 'cdvBuildRelease'; - } else if (cmd === 'debug') { - buildCmd = 'cdvBuildDebug'; - } - - args = [buildCmd, '-b', path.join(this.root, 'build.gradle')]; - - if (opts.arch) { - args.push('-PcdvBuildArch=' + opts.arch); - } - } - - args.push.apply(args, opts.extraArgs); - - return args; - } - - /* - * This returns a promise - */ - runGradleWrapper (gradle_cmd) { - var gradlePath = path.join(this.root, 'gradlew'); - var wrapperGradle = path.join(this.root, 'wrapper.gradle'); - if (fs.existsSync(gradlePath)) { - // Literally do nothing, for some reason this works, while !fs.existsSync didn't on Windows - } else { - return execa(gradle_cmd, ['-p', this.root, 'wrapper', '-b', wrapperGradle], { stdio: 'inherit' }); - } - } - - readProjectProperties () { - function findAllUniq (data, r) { - var s = {}; - var m; - while ((m = r.exec(data))) { - s[m[1]] = 1; - } - return Object.keys(s); - } - - var data = fs.readFileSync(path.join(this.root, 'project.properties'), 'utf8'); - return { - libs: findAllUniq(data, /^\s*android\.library\.reference\.\d+=(.*)(?:\s|$)/mg), - gradleIncludes: findAllUniq(data, /^\s*cordova\.gradle\.include\.\d+=(.*)(?:\s|$)/mg), - systemLibs: findAllUniq(data, /^\s*cordova\.system\.library\.\d+=(.*)(?:\s|$)/mg) - }; - } - - extractRealProjectNameFromManifest () { - var manifestPath = path.join(this.root, 'app', 'src', 'main', 'AndroidManifest.xml'); - var manifestData = fs.readFileSync(manifestPath, 'utf8'); - var m = /<manifest[\s\S]*?package\s*=\s*"(.*?)"/i.exec(manifestData); - if (!m) { - throw new CordovaError('Could not find package name in ' + manifestPath); - } - - var packageName = m[1]; - var lastDotIndex = packageName.lastIndexOf('.'); - return packageName.substring(lastDotIndex + 1); - } - - // Makes the project buildable, minus the gradle wrapper. - prepBuildFiles () { - // Update the version of build.gradle in each dependent library. - var pluginBuildGradle = path.join(this.root, 'cordova', 'lib', 'plugin-build.gradle'); - var propertiesObj = this.readProjectProperties(); - var subProjects = propertiesObj.libs; - - // Check and copy the gradle file into the subproject - // Called by the loop before this function def - - var checkAndCopy = function (subProject, root) { - var subProjectGradle = path.join(root, subProject, 'build.gradle'); - // This is the future-proof way of checking if a file exists - // This must be synchronous to satisfy a Travis test - try { - fs.accessSync(subProjectGradle, fs.F_OK); - } catch (e) { - fs.copySync(pluginBuildGradle, subProjectGradle); - } - }; - - for (var i = 0; i < subProjects.length; ++i) { - if (subProjects[i] !== 'CordovaLib') { - checkAndCopy(subProjects[i], this.root); - } - } - var name = this.extractRealProjectNameFromManifest(); - // Remove the proj.id/name- prefix from projects: https://issues.apache.org/jira/browse/CB-9149 - var settingsGradlePaths = subProjects.map(function (p) { - var realDir = p.replace(/[/\\]/g, ':'); - var libName = realDir.replace(name + '-', ''); - var str = 'include ":' + libName + '"\n'; - if (realDir.indexOf(name + '-') !== -1) { - str += 'project(":' + libName + '").projectDir = new File("' + p + '")\n'; - } - return str; - }); - - fs.writeFileSync(path.join(this.root, 'settings.gradle'), - '// GENERATED FILE - DO NOT EDIT\n' + - 'include ":"\n' + settingsGradlePaths.join('')); - - // Update dependencies within build.gradle. - var buildGradle = fs.readFileSync(path.join(this.root, 'app', 'build.gradle'), 'utf8'); - var depsList = ''; - var root = this.root; - var insertExclude = function (p) { - var gradlePath = path.join(root, p, 'build.gradle'); - var projectGradleFile = fs.readFileSync(gradlePath, 'utf-8'); - if (projectGradleFile.indexOf('CordovaLib') !== -1) { - depsList += '{\n exclude module:("CordovaLib")\n }\n'; - } else { - depsList += '\n'; - } - }; - subProjects.forEach(function (p) { - events.emit('log', 'Subproject Path: ' + p); - var libName = p.replace(/[/\\]/g, ':').replace(name + '-', ''); - if (libName !== 'app') { - depsList += ' implementation(project(path: ":' + libName + '"))'; - insertExclude(p); - } - }); - // For why we do this mapping: https://issues.apache.org/jira/browse/CB-8390 - var SYSTEM_LIBRARY_MAPPINGS = [ - [/^\/?extras\/android\/support\/(.*)$/, 'com.android.support:support-$1:+'], - [/^\/?google\/google_play_services\/libproject\/google-play-services_lib\/?$/, 'com.google.android.gms:play-services:+'] - ]; - - propertiesObj.systemLibs.forEach(function (p) { - var mavenRef; - // It's already in gradle form if it has two ':'s - if (/:.*:/.exec(p)) { - mavenRef = p; - } else { - for (var i = 0; i < SYSTEM_LIBRARY_MAPPINGS.length; ++i) { - var pair = SYSTEM_LIBRARY_MAPPINGS[i]; - if (pair[0].exec(p)) { - mavenRef = p.replace(pair[0], pair[1]); - break; - } - } - if (!mavenRef) { - throw new CordovaError('Unsupported system library (does not work with gradle): ' + p); - } - } - depsList += ' implementation "' + mavenRef + '"\n'; - }); - - buildGradle = buildGradle.replace(/(SUB-PROJECT DEPENDENCIES START)[\s\S]*(\/\/ SUB-PROJECT DEPENDENCIES END)/, '$1\n' + depsList + ' $2'); - var includeList = ''; - - propertiesObj.gradleIncludes.forEach(function (includePath) { - includeList += 'apply from: "../' + includePath + '"\n'; - }); - buildGradle = buildGradle.replace(/(PLUGIN GRADLE EXTENSIONS START)[\s\S]*(\/\/ PLUGIN GRADLE EXTENSIONS END)/, '$1\n' + includeList + '$2'); - // This needs to be stored in the app gradle, not the root grade - fs.writeFileSync(path.join(this.root, 'app', 'build.gradle'), buildGradle); - } - - prepEnv (opts) { - var self = this; - return check_reqs.check_gradle() - .then(function (gradlePath) { - return self.runGradleWrapper(gradlePath); - }).then(function () { - return self.prepBuildFiles(); - }).then(() => { - // update/set the distributionUrl in the gradle-wrapper.properties - const gradleWrapperPropertiesPath = path.join(self.root, 'gradle/wrapper/gradle-wrapper.properties'); - const gradleWrapperProperties = createEditor(gradleWrapperPropertiesPath); - const distributionUrl = process.env.CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL || 'https://services.gradle.org/distributions/gradle-6.5-all.zip'; - gradleWrapperProperties.set('distributionUrl', distributionUrl); - gradleWrapperProperties.save(); - - events.emit('verbose', `Gradle Distribution URL: ${distributionUrl}`); - }) - .then(() => { - const signingPropertiesPath = path.join(self.root, `${opts.buildType}${SIGNING_PROPERTIES}`); - - if (fs.existsSync(signingPropertiesPath)) fs.removeSync(signingPropertiesPath); - if (opts.packageInfo) { - fs.ensureFileSync(signingPropertiesPath); - const signingProperties = createEditor(signingPropertiesPath); - signingProperties.addHeadComment(TEMPLATE); - opts.packageInfo.appendToProperties(signingProperties); - } - }); - } - - /* - * Builds the project with gradle. - * Returns a promise. - */ - build (opts) { - var wrapper = path.join(this.root, 'gradlew'); - var args = this.getArgs(opts.buildType === 'debug' ? 'debug' : 'release', opts); - - return execa(wrapper, args, { stdio: 'inherit' }) - .catch(function (error) { - if (error.toString().indexOf('failed to find target with hash string') >= 0) { - return check_reqs.check_android_target(error).then(function () { - // If due to some odd reason - check_android_target succeeds - // we should still fail here. - throw error; - }); - } - throw error; - }); - } - - clean (opts) { - const wrapper = path.join(this.root, 'gradlew'); - const args = this.getArgs('clean', opts); - return execa(wrapper, args, { stdio: 'inherit' }) - .then(() => { - fs.removeSync(path.join(this.root, 'out')); - - ['debug', 'release'].map(config => path.join(this.root, `${config}${SIGNING_PROPERTIES}`)) - .forEach(file => { - const hasFile = fs.existsSync(file); - const hasMarker = hasFile && fs.readFileSync(file, 'utf8') - .includes(MARKER); - - if (hasFile && hasMarker) fs.removeSync(file); - }); - }); - } - - findOutputApks (build_type, arch) { - return findOutputFilesHelper(this.apkDir, build_type, arch, 'apk').sort(fileSorter); - } - - findOutputBundles (build_type) { - return findOutputFilesHelper(this.aabDir, build_type, false, 'aab').sort(fileSorter); - } - - fetchBuildResults (build_type, arch) { - return { - apkPaths: this.findOutputApks(build_type, arch), - buildType: build_type - }; - } -} - -module.exports = ProjectBuilder; diff --git a/ionic/platforms/android/cordova/lib/builders/builders.js b/ionic/platforms/android/cordova/lib/builders/builders.js deleted file mode 100644 index edc1a525530ea61a7041a573897c95d8807f5033..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/lib/builders/builders.js +++ /dev/null @@ -1,34 +0,0 @@ -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*/ - -const CordovaError = require('cordova-common').CordovaError; - -/** - * Helper method that instantiates and returns a builder for specified build type. - * - * @return {Builder} A builder instance for specified build type. - */ -module.exports.getBuilder = function (projectPath) { - try { - const Builder = require('./ProjectBuilder'); - return new Builder(projectPath); - } catch (err) { - throw new CordovaError('Failed to instantiate ProjectBuilder builder: ' + err); - } -}; diff --git a/ionic/platforms/android/cordova/lib/check_reqs.js b/ionic/platforms/android/cordova/lib/check_reqs.js deleted file mode 100644 index 21d90f769dea8343d3475ba2ef495baaaca9ed61..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/lib/check_reqs.js +++ /dev/null @@ -1,480 +0,0 @@ -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*/ - -const execa = require('execa'); -var path = require('path'); -var fs = require('fs-extra'); -var os = require('os'); -var which = require('which'); -var REPO_ROOT = path.join(__dirname, '..', '..', '..', '..'); -var PROJECT_ROOT = path.join(__dirname, '..', '..'); -const { CordovaError, ConfigParser, events } = require('cordova-common'); -var android_sdk = require('./android_sdk'); -const { createEditor } = require('properties-parser'); - -function forgivingWhichSync (cmd) { - const whichResult = which.sync(cmd, { nothrow: true }); - - // On null, returns empty string to maintain backwards compatibility - // realpathSync follows symlinks - return whichResult === null ? '' : fs.realpathSync(whichResult); -} - -function getJDKDirectory (directory) { - const p = path.resolve(directory, 'java'); - if (fs.existsSync(p)) { - const directories = fs.readdirSync(p); - for (let i = 0; i < directories.length; i++) { - const dir = directories[i]; - if (/^(jdk)+./.test(dir)) { - return path.resolve(directory, 'java', dir); - } - } - } - return null; -} - -module.exports.isWindows = function () { - return (os.platform() === 'win32'); -}; - -module.exports.isDarwin = function () { - return (os.platform() === 'darwin'); -}; - -/** - * @description Get valid target from framework/project.properties if run from this repo - * Otherwise get target from project.properties file within a generated cordova-android project - * @returns {string} The android target in format "android-${target}" - */ -module.exports.get_target = function () { - const projectPropertiesPaths = [ - path.join(REPO_ROOT, 'framework', 'project.properties'), - path.join(PROJECT_ROOT, 'project.properties') - ]; - - // Get the minimum required target API from the framework. - let target = projectPropertiesPaths.filter(filePath => fs.existsSync(filePath)) - .map(filePath => createEditor(filePath).get('target')) - .pop(); - - if (!target) { - throw new Error(`We could not locate the target from the "project.properties" at either "${projectPropertiesPaths.join('", "')}".`); - } - - // If the repo config.xml file exists, find the desired targetSdkVersion. - const configFile = path.join(REPO_ROOT, 'config.xml'); - if (!fs.existsSync(configFile)) return target; - - const configParser = new ConfigParser(configFile); - const desiredAPI = parseInt(configParser.getPreference('android-targetSdkVersion', 'android'), 10); - - if (!isNaN(desiredAPI)) { - const minimumAPI = parseInt(target.split('-').pop(), 10); - - if (desiredAPI >= minimumAPI) { - target = `android-${desiredAPI}`; - } else { - events.emit('warn', `android-targetSdkVersion should be greater than or equal to ${minimumAPI}.`); - } - } - - return target; -}; - -// Returns a promise. Called only by build and clean commands. -module.exports.check_ant = function () { - return execa('ant', ['-version']).then(({ stdout: output }) => { - // Parse Ant version from command output - return /version ((?:\d+\.)+(?:\d+))/i.exec(output)[1]; - }).catch(function (err) { - if (err) { - throw new CordovaError('Failed to run `ant -version`. Make sure you have `ant` on your $PATH.'); - } - }); -}; - -module.exports.get_gradle_wrapper = function () { - var androidStudioPath; - var i = 0; - var foundStudio = false; - var program_dir; - // OK, This hack only works on Windows, not on Mac OS or Linux. We will be deleting this eventually! - if (module.exports.isWindows()) { - var result = execa.sync(path.join(__dirname, 'getASPath.bat')); - // console.log('result.stdout =' + result.stdout.toString()); - // console.log('result.stderr =' + result.stderr.toString()); - - if (result.stderr.toString().length > 0) { - var androidPath = path.join(process.env.ProgramFiles, 'Android') + '/'; - if (fs.existsSync(androidPath)) { - program_dir = fs.readdirSync(androidPath); - while (i < program_dir.length && !foundStudio) { - if (program_dir[i].startsWith('Android Studio')) { - foundStudio = true; - androidStudioPath = path.join(process.env.ProgramFiles, 'Android', program_dir[i], 'gradle'); - } else { ++i; } - } - } - } else { - // console.log('got android studio path from registry'); - // remove the (os independent) new line char at the end of stdout - // add gradle to match the above. - androidStudioPath = path.join(result.stdout.toString().split('\r\n')[0], 'gradle'); - } - } - - if (androidStudioPath !== null && fs.existsSync(androidStudioPath)) { - var dirs = fs.readdirSync(androidStudioPath); - if (dirs[0].split('-')[0] === 'gradle') { - return path.join(androidStudioPath, dirs[0], 'bin', 'gradle'); - } - } else { - // OK, let's try to check for Gradle! - return forgivingWhichSync('gradle'); - } -}; - -// Returns a promise. Called only by build and clean commands. -module.exports.check_gradle = function () { - var sdkDir = process.env.ANDROID_SDK_ROOT || process.env.ANDROID_HOME; - if (!sdkDir) { - return Promise.reject(new CordovaError('Could not find gradle wrapper within Android SDK. Could not find Android SDK directory.\n' + - 'Might need to install Android SDK or set up \'ANDROID_SDK_ROOT\' env variable.')); - } - - var gradlePath = module.exports.get_gradle_wrapper(); - - if (gradlePath.length !== 0) return Promise.resolve(gradlePath); - - return Promise.reject(new CordovaError('Could not find an installed version of Gradle either in Android Studio,\n' + - 'or on your system to install the gradle wrapper. Please include gradle \n' + - 'in your path, or install Android Studio')); -}; - -// Returns a promise. -module.exports.check_java = function () { - var javacPath = forgivingWhichSync('javac'); - var hasJavaHome = !!process.env.JAVA_HOME; - return Promise.resolve().then(function () { - if (hasJavaHome) { - // Windows java installer doesn't add javac to PATH, nor set JAVA_HOME (ugh). - if (!javacPath) { - process.env.PATH += path.delimiter + path.join(process.env.JAVA_HOME, 'bin'); - } - } else { - if (javacPath) { - // OS X has a command for finding JAVA_HOME. - var find_java = '/usr/libexec/java_home'; - var default_java_error_msg = 'Failed to find \'JAVA_HOME\' environment variable. Try setting it manually.'; - if (fs.existsSync(find_java)) { - return execa(find_java).then(({ stdout }) => { - process.env.JAVA_HOME = stdout; - }).catch(function (err) { - if (err) { - throw new CordovaError(default_java_error_msg); - } - }); - } else { - // See if we can derive it from javac's location. - var maybeJavaHome = path.dirname(path.dirname(javacPath)); - if (fs.existsSync(path.join(maybeJavaHome, 'lib', 'tools.jar'))) { - process.env.JAVA_HOME = maybeJavaHome; - } else { - throw new CordovaError(default_java_error_msg); - } - } - } else if (module.exports.isWindows()) { - const programFilesEnv = path.resolve(process.env.ProgramFiles); - const programFiles = 'C:\\Program Files\\'; - const programFilesx86 = 'C:\\Program Files (x86)\\'; - - let firstJdkDir = - getJDKDirectory(programFilesEnv) || - getJDKDirectory(programFiles) || - getJDKDirectory(programFilesx86); - - if (firstJdkDir) { - firstJdkDir = firstJdkDir.replace(/\//g, path.sep); - if (!javacPath) { - process.env.PATH += path.delimiter + path.join(firstJdkDir, 'bin'); - } - process.env.JAVA_HOME = firstJdkDir; - } - } - } - }).then(function () { - return execa('javac', ['-version'], { all: true }) - .then(({ all: output }) => { - // Java <= 8 writes version info to stderr, Java >= 9 to stdout - const match = /javac\s+([\d.]+)/i.exec(output); - return match && match[1]; - }, () => { - var msg = - 'Failed to run "javac -version", make sure that you have a JDK version 8 installed.\n' + - 'You can get it from the following location:\n' + - 'https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html'; - if (process.env.JAVA_HOME) { - msg += '\n\n'; - msg += 'Your JAVA_HOME is invalid: ' + process.env.JAVA_HOME; - } - throw new CordovaError(msg); - }); - }); -}; - -// Returns a promise. -module.exports.check_android = function () { - return Promise.resolve().then(function () { - function maybeSetAndroidHome (value) { - if (!hasAndroidHome && fs.existsSync(value)) { - hasAndroidHome = true; - process.env.ANDROID_SDK_ROOT = value; - } - } - - var androidCmdPath = forgivingWhichSync('android'); - var adbInPath = forgivingWhichSync('adb'); - var avdmanagerInPath = forgivingWhichSync('avdmanager'); - var hasAndroidHome = false; - - if (process.env.ANDROID_SDK_ROOT) { - maybeSetAndroidHome(path.resolve(process.env.ANDROID_SDK_ROOT)); - } - - // First ensure ANDROID_HOME is set - // If we have no hints (nothing in PATH), try a few default locations - if (!hasAndroidHome && !androidCmdPath && !adbInPath && !avdmanagerInPath) { - if (process.env.ANDROID_HOME) { - // Fallback to deprecated `ANDROID_HOME` variable - maybeSetAndroidHome(path.join(process.env.ANDROID_HOME)); - } - if (module.exports.isWindows()) { - // Android Studio 1.0 installer - if (process.env.LOCALAPPDATA) { - maybeSetAndroidHome(path.join(process.env.LOCALAPPDATA, 'Android', 'sdk')); - } - if (process.env.ProgramFiles) { - maybeSetAndroidHome(path.join(process.env.ProgramFiles, 'Android', 'sdk')); - } - - // Android Studio pre-1.0 installer - if (process.env.LOCALAPPDATA) { - maybeSetAndroidHome(path.join(process.env.LOCALAPPDATA, 'Android', 'android-studio', 'sdk')); - } - if (process.env.ProgramFiles) { - maybeSetAndroidHome(path.join(process.env.ProgramFiles, 'Android', 'android-studio', 'sdk')); - } - - // Stand-alone installer - if (process.env.LOCALAPPDATA) { - maybeSetAndroidHome(path.join(process.env.LOCALAPPDATA, 'Android', 'android-sdk')); - } - if (process.env.ProgramFiles) { - maybeSetAndroidHome(path.join(process.env.ProgramFiles, 'Android', 'android-sdk')); - } - } else if (module.exports.isDarwin()) { - // Android Studio 1.0 installer - if (process.env.HOME) { - maybeSetAndroidHome(path.join(process.env.HOME, 'Library', 'Android', 'sdk')); - } - // Android Studio pre-1.0 installer - maybeSetAndroidHome('/Applications/Android Studio.app/sdk'); - // Stand-alone zip file that user might think to put under /Applications - maybeSetAndroidHome('/Applications/android-sdk-macosx'); - maybeSetAndroidHome('/Applications/android-sdk'); - } - if (process.env.HOME) { - // Stand-alone zip file that user might think to put under their home directory - maybeSetAndroidHome(path.join(process.env.HOME, 'android-sdk-macosx')); - maybeSetAndroidHome(path.join(process.env.HOME, 'android-sdk')); - } - } - - if (!hasAndroidHome) { - // If we dont have ANDROID_SDK_ROOT, but we do have some tools on the PATH, try to infer from the tooling PATH. - var parentDir, grandParentDir; - if (androidCmdPath) { - parentDir = path.dirname(androidCmdPath); - grandParentDir = path.dirname(parentDir); - if (path.basename(parentDir) === 'tools' || fs.existsSync(path.join(grandParentDir, 'tools', 'android'))) { - maybeSetAndroidHome(grandParentDir); - } else { - throw new CordovaError('Failed to find \'ANDROID_SDK_ROOT\' environment variable. Try setting it manually.\n' + - 'Detected \'android\' command at ' + parentDir + ' but no \'tools\' directory found near.\n' + - 'Try reinstall Android SDK or update your PATH to include valid path to SDK' + path.sep + 'tools directory.'); - } - } - if (adbInPath) { - parentDir = path.dirname(adbInPath); - grandParentDir = path.dirname(parentDir); - if (path.basename(parentDir) === 'platform-tools') { - maybeSetAndroidHome(grandParentDir); - } else { - throw new CordovaError('Failed to find \'ANDROID_SDK_ROOT\' environment variable. Try setting it manually.\n' + - 'Detected \'adb\' command at ' + parentDir + ' but no \'platform-tools\' directory found near.\n' + - 'Try reinstall Android SDK or update your PATH to include valid path to SDK' + path.sep + 'platform-tools directory.'); - } - } - if (avdmanagerInPath) { - parentDir = path.dirname(avdmanagerInPath); - grandParentDir = path.dirname(parentDir); - if (path.basename(parentDir) === 'bin' && path.basename(grandParentDir) === 'tools') { - maybeSetAndroidHome(path.dirname(grandParentDir)); - } else { - throw new CordovaError('Failed to find \'ANDROID_SDK_ROOT\' environment variable. Try setting it manually.\n' + - 'Detected \'avdmanager\' command at ' + parentDir + ' but no \'tools' + path.sep + 'bin\' directory found near.\n' + - 'Try reinstall Android SDK or update your PATH to include valid path to SDK' + path.sep + 'tools' + path.sep + 'bin directory.'); - } - } - } - if (!process.env.ANDROID_SDK_ROOT) { - throw new CordovaError('Failed to find \'ANDROID_SDK_ROOT\' environment variable. Try setting it manually.\n' + - 'Failed to find \'android\' command in your \'PATH\'. Try update your \'PATH\' to include path to valid SDK directory.'); - } - if (!fs.existsSync(process.env.ANDROID_SDK_ROOT)) { - throw new CordovaError('\'ANDROID_SDK_ROOT\' environment variable is set to non-existent path: ' + process.env.ANDROID_SDK_ROOT + - '\nTry update it manually to point to valid SDK directory.'); - } - // Next let's make sure relevant parts of the SDK tooling is in our PATH - if (hasAndroidHome && !androidCmdPath) { - process.env.PATH += path.delimiter + path.join(process.env.ANDROID_SDK_ROOT, 'tools'); - } - if (hasAndroidHome && !adbInPath) { - process.env.PATH += path.delimiter + path.join(process.env.ANDROID_SDK_ROOT, 'platform-tools'); - } - if (hasAndroidHome && !avdmanagerInPath) { - process.env.PATH += path.delimiter + path.join(process.env.ANDROID_SDK_ROOT, 'tools', 'bin'); - } - return hasAndroidHome; - }); -}; - -// TODO: is this actually needed? -module.exports.getAbsoluteAndroidCmd = function () { - var cmd = forgivingWhichSync('android'); - if (cmd.length === 0) { - cmd = forgivingWhichSync('sdkmanager'); - } - if (module.exports.isWindows()) { - return '"' + cmd + '"'; - } - return cmd.replace(/(\s)/g, '\\$1'); -}; - -module.exports.check_android_target = function (originalError) { - // valid_target can look like: - // android-19 - // android-L - // Google Inc.:Google APIs:20 - // Google Inc.:Glass Development Kit Preview:20 - var desired_api_level = module.exports.get_target(); - return android_sdk.list_targets().then(function (targets) { - if (targets.indexOf(desired_api_level) >= 0) { - return targets; - } - var androidCmd = module.exports.getAbsoluteAndroidCmd(); - var msg = 'Please install Android target / API level: "' + desired_api_level + '".\n\n' + - 'Hint: Open the SDK manager by running: ' + androidCmd + '\n' + - 'You will require:\n' + - '1. "SDK Platform" for API level ' + desired_api_level + '\n' + - '2. "Android SDK Platform-tools (latest)\n' + - '3. "Android SDK Build-tools" (latest)'; - if (originalError) { - msg = originalError + '\n' + msg; - } - throw new CordovaError(msg); - }); -}; - -// Returns a promise. -module.exports.run = function () { - console.log('Checking Java JDK and Android SDK versions'); - console.log('ANDROID_SDK_ROOT=' + process.env.ANDROID_SDK_ROOT + ' (recommended setting)'); - console.log('ANDROID_HOME=' + process.env.ANDROID_HOME + ' (DEPRECATED)'); - - return Promise.all([this.check_java(), this.check_android()]).then(function (values) { - console.log('Using Android SDK: ' + process.env.ANDROID_SDK_ROOT); - - if (!String(values[0]).startsWith('1.8.')) { - throw new CordovaError( - 'Requirements check failed for JDK 8 (\'1.8.*\')! Detected version: ' + values[0] + '\n' + - 'Check your ANDROID_SDK_ROOT / JAVA_HOME / PATH environment variables.' - ); - } - - if (!values[1]) { - throw new CordovaError('Requirements check failed for Android SDK! Android SDK was not detected.'); - } - }); -}; - -/** - * Object thar represents one of requirements for current platform. - * @param {String} id The unique identifier for this requirements. - * @param {String} name The name of requirements. Human-readable field. - * @param {String} version The version of requirement installed. In some cases could be an array of strings - * (for example, check_android_target returns an array of android targets installed) - * @param {Boolean} installed Indicates whether the requirement is installed or not - */ -var Requirement = function (id, name, version, installed) { - this.id = id; - this.name = name; - this.installed = installed || false; - this.metadata = { - version: version - }; -}; - -/** - * Methods that runs all checks one by one and returns a result of checks - * as an array of Requirement objects. This method intended to be used by cordova-lib check_reqs method - * - * @return Promise<Requirement[]> Array of requirements. Due to implementation, promise is always fulfilled. - */ -module.exports.check_all = function () { - var requirements = [ - new Requirement('java', 'Java JDK'), - new Requirement('androidSdk', 'Android SDK'), - new Requirement('androidTarget', 'Android target'), - new Requirement('gradle', 'Gradle') - ]; - - var checkFns = [ - this.check_java, - this.check_android, - this.check_android_target, - this.check_gradle - ]; - - // Then execute requirement checks one-by-one - return checkFns.reduce(function (promise, checkFn, idx) { - // Update each requirement with results - var requirement = requirements[idx]; - return promise.then(checkFn).then(function (version) { - requirement.installed = true; - requirement.metadata.version = version; - }, function (err) { - requirement.metadata.reason = err instanceof Error ? err.message : err; - }); - }, Promise.resolve()).then(function () { - // When chain is completed, return requirements array to upstream API - return requirements; - }); -}; diff --git a/ionic/platforms/android/cordova/lib/config/GradlePropertiesParser.js b/ionic/platforms/android/cordova/lib/config/GradlePropertiesParser.js deleted file mode 100644 index 8955aa946931eafc9aebc01ab72c04717347d68f..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/lib/config/GradlePropertiesParser.js +++ /dev/null @@ -1,150 +0,0 @@ -/** - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*/ - -const fs = require('fs'); -const path = require('path'); -const propertiesParser = require('properties-parser'); -const events = require('cordova-common').events; - -class GradlePropertiesParser { - /** - * Loads and Edits Gradle Properties File. - * - * @param {String} platformDir is the path of the Android platform directory - */ - constructor (platformDir) { - this._defaults = { - // 10 seconds -> 6 seconds - 'org.gradle.daemon': 'true', - - // to allow dex in process - 'org.gradle.jvmargs': '-Xmx2048m', - - // Android X - 'android.useAndroidX': 'false', - 'android.enableJetifier': 'false' - - // Shaves another 100ms, but produces a "try at own risk" warning. Not worth it (yet): - // 'org.gradle.parallel': 'true' - }; - - this.gradleFilePath = path.join(platformDir, 'gradle.properties'); - } - - configure (userConfigs) { - events.emit('verbose', '[Gradle Properties] Preparing Configuration'); - - this._initializeEditor(); - - events.emit('verbose', '[Gradle Properties] Appending default configuration properties'); - this._configureProperties(this._defaults); - - events.emit('verbose', '[Gradle Properties] Appending custom configuration properties'); - this._configureProperties(userConfigs); - - this._save(); - } - - /** - * Initialize the properties editor for parsing, setting, etc. - */ - _initializeEditor () { - // Touch empty gradle.properties file if missing. - if (!fs.existsSync(this.gradleFilePath)) { - events.emit('verbose', '[Gradle Properties] File missing, creating file with Cordova defaults.'); - fs.writeFileSync(this.gradleFilePath, '', 'utf-8'); - } - - // Create an editor for parsing, getting, and setting configurations. - this.gradleFile = propertiesParser.createEditor(this.gradleFilePath); - } - - /** - * Validate that defaults or user configuration properties are set and - * set the missing items. - */ - _configureProperties (properties) { - // Iterate though the properties and set only if missing. - Object.keys(properties).forEach(key => { - const value = this.gradleFile.get(key); - - if (!value) { - // Handles the case of adding missing defaults or new properties that are missing. - events.emit('verbose', `[Gradle Properties] Appending configuration item: ${key}=${properties[key]}`); - this.gradleFile.set(key, properties[key]); - } else if (value !== properties[key]) { - if (this._defaults[key] && this._defaults[key] !== properties[key]) { - let shouldEmit = true; - if (key === 'org.gradle.jvmargs') { - shouldEmit = this._isJVMMemoryLessThanRecommended(properties[key], this._defaults[key]); - } - - if (shouldEmit) { - // Since the value does not match default, we will notify the discrepancy with Cordova's recommended value. - events.emit('info', `[Gradle Properties] Detected Gradle property "${key}" with the value of "${properties[key]}", Cordova's recommended value is "${this._defaults[key]}"`); - } - } else { - // When the current value exists but does not match the new value or does matches the default key value, the new value it set. - events.emit('verbose', `[Gradle Properties] Updating Gradle property "${key}" with the value of "${properties[key]}"`); - } - - // We will set the new value in either case. - this.gradleFile.set(key, properties[key]); - } - }); - } - - _isJVMMemoryLessThanRecommended (memoryValue, recommendedMemoryValue) { - const UNIT = 2; - const SIZE = 1; - const regex = /-Xmx+([0-9]+)+([mMgGkK])/; - - const recommendedCapture = regex.exec(recommendedMemoryValue); - const recommendedBase = this._getBaseJVMSize(recommendedCapture[SIZE], recommendedCapture[UNIT]); - const memoryCapture = regex.exec(memoryValue); - const memoryBase = this._getBaseJVMSize(memoryCapture[SIZE], memoryCapture[UNIT]); - - return memoryBase < recommendedBase; - } - - _getBaseJVMSize (size, unit) { - const KILOBYTE = 1024; - const MEGABYTE = 1048576; - const GIGABYTE = 1073741824; - - switch (unit.toLowerCase()) { - case 'k': return size * KILOBYTE; - case 'm': return size * MEGABYTE; - case 'g': return size * GIGABYTE; - } - - events.emit('warn', `[Gradle Properties] Unknown memory size unit (${unit})`); - return null; - } - - /** - * Saves any changes that has been made to the properties file. - */ - _save () { - events.emit('verbose', '[Gradle Properties] Updating and Saving File'); - this.gradleFile.save(); - } -} - -module.exports = GradlePropertiesParser; diff --git a/ionic/platforms/android/cordova/lib/device.js b/ionic/platforms/android/cordova/lib/device.js deleted file mode 100644 index 3bb95c90a8aef98c602d7322b337e855fb6d0bc5..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/lib/device.js +++ /dev/null @@ -1,109 +0,0 @@ -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*/ - -const execa = require('execa'); -var build = require('./build'); -var path = require('path'); -var Adb = require('./Adb'); -var AndroidManifest = require('./AndroidManifest'); -var CordovaError = require('cordova-common').CordovaError; -var events = require('cordova-common').events; - -/** - * Returns a promise for the list of the device ID's found - * @param lookHarder When true, try restarting adb if no devices are found. - */ -module.exports.list = function (lookHarder) { - return Adb.devices().then(function (list) { - if (list.length === 0 && lookHarder) { - // adb kill-server doesn't seem to do the trick. - // Could probably find a x-platform version of killall, but I'm not actually - // sure that this scenario even happens on non-OSX machines. - return execa('killall', ['adb']).then(function () { - events.emit('verbose', 'Restarting adb to see if more devices are detected.'); - return Adb.devices(); - }, function () { - // For non-killall OS's. - return list; - }); - } - return list; - }); -}; - -module.exports.resolveTarget = function (target) { - return this.list(true).then(function (device_list) { - if (!device_list || !device_list.length) { - return Promise.reject(new CordovaError('Failed to deploy to device, no devices found.')); - } - // default device - target = target || device_list[0]; - - if (device_list.indexOf(target) < 0) { - return Promise.reject(new CordovaError('ERROR: Unable to find target \'' + target + '\'.')); - } - - return build.detectArchitecture(target).then(function (arch) { - return { target: target, arch: arch, isEmulator: false }; - }); - }); -}; - -/* - * Installs a previously built application on the device - * and launches it. - * Returns a promise. - */ -module.exports.install = function (target, buildResults) { - return Promise.resolve().then(function () { - if (target && typeof target === 'object') { - return target; - } - return module.exports.resolveTarget(target); - }).then(function (resolvedTarget) { - var apk_path = build.findBestApkForArchitecture(buildResults, resolvedTarget.arch); - var manifest = new AndroidManifest(path.join(__dirname, '../../app/src/main/AndroidManifest.xml')); - var pkgName = manifest.getPackageId(); - var launchName = pkgName + '/.' + manifest.getActivity().getName(); - events.emit('log', 'Using apk: ' + apk_path); - events.emit('log', 'Package name: ' + pkgName); - - return Adb.install(resolvedTarget.target, apk_path, { replace: true }).catch(function (error) { - // CB-9557 CB-10157 only uninstall and reinstall app if the one that - // is already installed on device was signed w/different certificate - if (!/INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES/.test(error.toString())) { throw error; } - - events.emit('warn', 'Uninstalling app from device and reinstalling it again because the ' + - 'installed app already signed with different key'); - - // This promise is always resolved, even if 'adb uninstall' fails to uninstall app - // or the app doesn't installed at all, so no error catching needed. - return Adb.uninstall(resolvedTarget.target, pkgName).then(function () { - return Adb.install(resolvedTarget.target, apk_path, { replace: true }); - }); - }).then(function () { - // unlock screen - return Adb.shell(resolvedTarget.target, 'input keyevent 82'); - }).then(function () { - return Adb.start(resolvedTarget.target, launchName); - }).then(function () { - events.emit('log', 'LAUNCH SUCCESS'); - }); - }); -}; diff --git a/ionic/platforms/android/cordova/lib/emulator.js b/ionic/platforms/android/cordova/lib/emulator.js deleted file mode 100644 index 928ad44d590e0c8dda03dd72185a5975dc99d8b2..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/lib/emulator.js +++ /dev/null @@ -1,517 +0,0 @@ -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*/ - -const execa = require('execa'); -const fs = require('fs-extra'); -var android_versions = require('android-versions'); -var retry = require('./retry'); -var build = require('./build'); -var path = require('path'); -var Adb = require('./Adb'); -var AndroidManifest = require('./AndroidManifest'); -var events = require('cordova-common').events; -var CordovaError = require('cordova-common').CordovaError; -var android_sdk = require('./android_sdk'); -var check_reqs = require('./check_reqs'); -var which = require('which'); -var os = require('os'); - -// constants -const ONE_SECOND = 1000; // in milliseconds -const ONE_MINUTE = 60 * ONE_SECOND; // in milliseconds -const INSTALL_COMMAND_TIMEOUT = 5 * ONE_MINUTE; // in milliseconds -const NUM_INSTALL_RETRIES = 3; -const CHECK_BOOTED_INTERVAL = 3 * ONE_SECOND; // in milliseconds -const EXEC_KILL_SIGNAL = 'SIGKILL'; - -function forgivingWhichSync (cmd) { - const whichResult = which.sync(cmd, { nothrow: true }); - - // On null, returns empty string to maintain backwards compatibility - // realpathSync follows symlinks - return whichResult === null ? '' : fs.realpathSync(whichResult); -} - -module.exports.list_images_using_avdmanager = function () { - return execa('avdmanager', ['list', 'avd']).then(({ stdout: output }) => { - var response = output.split('\n'); - var emulator_list = []; - for (var i = 1; i < response.length; i++) { - // To return more detailed information use img_obj - var img_obj = {}; - if (response[i].match(/Name:\s/)) { - img_obj.name = response[i].split('Name: ')[1].replace('\r', ''); - if (response[i + 1].match(/Device:\s/)) { - i++; - img_obj.device = response[i].split('Device: ')[1].replace('\r', ''); - } - if (response[i + 1].match(/Path:\s/)) { - i++; - img_obj.path = response[i].split('Path: ')[1].replace('\r', ''); - } - if (response[i + 1].match(/Target:\s/)) { - i++; - if (response[i + 1].match(/ABI:\s/)) { - img_obj.abi = response[i + 1].split('ABI: ')[1].replace('\r', ''); - } - // This next conditional just aims to match the old output of `android list avd` - // We do so so that we don't have to change the logic when parsing for the - // best emulator target to spawn (see below in `best_image`) - // This allows us to transitionally support both `android` and `avdmanager` binaries, - // depending on what SDK version the user has - if (response[i + 1].match(/Based\son:\s/)) { - img_obj.target = response[i + 1].split('Based on:')[1]; - if (img_obj.target.match(/Tag\/ABI:\s/)) { - img_obj.target = img_obj.target.split('Tag/ABI:')[0].replace('\r', '').trim(); - if (img_obj.target.indexOf('(') > -1) { - img_obj.target = img_obj.target.substr(0, img_obj.target.indexOf('(') - 1).trim(); - } - } - var version_string = img_obj.target.replace(/Android\s+/, ''); - - var api_level = android_sdk.version_string_to_api_level[version_string]; - if (api_level) { - img_obj.target += ' (API level ' + api_level + ')'; - } - } - } - if (response[i + 1].match(/Skin:\s/)) { - i++; - img_obj.skin = response[i].split('Skin: ')[1].replace('\r', ''); - } - - emulator_list.push(img_obj); - } - /* To just return a list of names use this - if (response[i].match(/Name:\s/)) { - emulator_list.push(response[i].split('Name: ')[1].replace('\r', ''); - } */ - } - return emulator_list; - }); -}; - -module.exports.list_images_using_android = function () { - return execa('android', ['list', 'avd']).then(({ stdout: output }) => { - var response = output.split('\n'); - var emulator_list = []; - for (var i = 1; i < response.length; i++) { - // To return more detailed information use img_obj - var img_obj = {}; - if (response[i].match(/Name:\s/)) { - img_obj.name = response[i].split('Name: ')[1].replace('\r', ''); - if (response[i + 1].match(/Device:\s/)) { - i++; - img_obj.device = response[i].split('Device: ')[1].replace('\r', ''); - } - if (response[i + 1].match(/Path:\s/)) { - i++; - img_obj.path = response[i].split('Path: ')[1].replace('\r', ''); - } - if (response[i + 1].match(/\(API\slevel\s/) || (response[i + 2] && response[i + 2].match(/\(API\slevel\s/))) { - i++; - var secondLine = response[i + 1].match(/\(API\slevel\s/) ? response[i + 1] : ''; - img_obj.target = (response[i] + secondLine).split('Target: ')[1].replace('\r', ''); - } - if (response[i + 1].match(/ABI:\s/)) { - i++; - img_obj.abi = response[i].split('ABI: ')[1].replace('\r', ''); - } - if (response[i + 1].match(/Skin:\s/)) { - i++; - img_obj.skin = response[i].split('Skin: ')[1].replace('\r', ''); - } - - emulator_list.push(img_obj); - } - /* To just return a list of names use this - if (response[i].match(/Name:\s/)) { - emulator_list.push(response[i].split('Name: ')[1].replace('\r', ''); - } */ - } - return emulator_list; - }); -}; - -/** - * Returns a Promise for a list of emulator images in the form of objects - * { - name : <emulator_name>, - device : <device>, - path : <path_to_emulator_image>, - target : <api_target>, - abi : <cpu>, - skin : <skin> - } - */ -module.exports.list_images = function () { - return Promise.resolve().then(function () { - if (forgivingWhichSync('avdmanager')) { - return module.exports.list_images_using_avdmanager(); - } else if (forgivingWhichSync('android')) { - return module.exports.list_images_using_android(); - } else { - return Promise.reject(new CordovaError('Could not find either `android` or `avdmanager` on your $PATH! Are you sure the Android SDK is installed and available?')); - } - }).then(function (avds) { - // In case we're missing the Android OS version string from the target description, add it. - return avds.map(function (avd) { - if (avd.target && avd.target.indexOf('Android API') > -1 && avd.target.indexOf('API level') < 0) { - var api_level = avd.target.match(/\d+/); - if (api_level) { - var level = android_versions.get(api_level); - if (level) { - avd.target = 'Android ' + level.semver + ' (API level ' + api_level + ')'; - } - } - } - return avd; - }); - }); -}; - -/** - * Will return the closest avd to the projects target - * or undefined if no avds exist. - * Returns a promise. - */ -module.exports.best_image = function () { - return this.list_images().then(function (images) { - // Just return undefined if there is no images - if (images.length === 0) return; - - var closest = 9999; - var best = images[0]; - var project_target = parseInt(check_reqs.get_target().replace('android-', '')); - for (var i in images) { - var target = images[i].target; - if (target && target.indexOf('API level') > -1) { - var num = parseInt(target.split('(API level ')[1].replace(')', '')); - if (num === project_target) { - return images[i]; - } else if (project_target - num < closest && project_target > num) { - closest = project_target - num; - best = images[i]; - } - } - } - return best; - }); -}; - -// Returns a promise. -module.exports.list_started = function () { - return Adb.devices({ emulators: true }); -}; - -// Returns a promise. -// TODO: we should remove this, there's a more robust method under android_sdk.js -module.exports.list_targets = function () { - return execa('android', ['list', 'targets'], { cwd: os.tmpdir() }).then(({ stdout: output }) => { - var target_out = output.split('\n'); - var targets = []; - for (var i = target_out.length; i >= 0; i--) { - if (target_out[i].match(/id:/)) { - targets.push(targets[i].split(' ')[1]); - } - } - return targets; - }); -}; - -/* - * Gets unused port for android emulator, between 5554 and 5584 - * Returns a promise. - */ -module.exports.get_available_port = function () { - var self = this; - - return self.list_started().then(function (emulators) { - for (var p = 5584; p >= 5554; p -= 2) { - if (emulators.indexOf('emulator-' + p) === -1) { - events.emit('verbose', 'Found available port: ' + p); - return p; - } - } - throw new CordovaError('Could not find an available avd port'); - }); -}; - -/* - * Starts an emulator with the given ID, - * and returns the started ID of that emulator. - * If no ID is given it will use the first image available, - * if no image is available it will error out (maybe create one?). - * If no boot timeout is given or the value is negative it will wait forever for - * the emulator to boot - * - * Returns a promise. - */ -module.exports.start = function (emulator_ID, boot_timeout) { - var self = this; - - return Promise.resolve().then(function () { - if (emulator_ID) return Promise.resolve(emulator_ID); - - return self.best_image().then(function (best) { - if (best && best.name) { - events.emit('warn', 'No emulator specified, defaulting to ' + best.name); - return best.name; - } - - var androidCmd = check_reqs.getAbsoluteAndroidCmd(); - return Promise.reject(new CordovaError('No emulator images (avds) found.\n' + - '1. Download desired System Image by running: ' + androidCmd + ' sdk\n' + - '2. Create an AVD by running: ' + androidCmd + ' avd\n' + - 'HINT: For a faster emulator, use an Intel System Image and install the HAXM device driver\n')); - }); - }).then(function (emulatorId) { - return self.get_available_port().then(function (port) { - // Figure out the directory the emulator binary runs in, and set the cwd to that directory. - // Workaround for https://code.google.com/p/android/issues/detail?id=235461 - var emulator_dir = path.dirname(which.sync('emulator')); - var args = ['-avd', emulatorId, '-port', port]; - // Don't wait for it to finish, since the emulator will probably keep running for a long time. - execa('emulator', args, { stdio: 'inherit', detached: true, cwd: emulator_dir }) - .unref(); - - // wait for emulator to start - events.emit('log', 'Waiting for emulator to start...'); - return self.wait_for_emulator(port); - }); - }).then(function (emulatorId) { - if (!emulatorId) { return Promise.reject(new CordovaError('Failed to start emulator')); } - - // wait for emulator to boot up - process.stdout.write('Waiting for emulator to boot (this may take a while)...'); - return self.wait_for_boot(emulatorId, boot_timeout).then(function (success) { - if (success) { - events.emit('log', 'BOOT COMPLETE'); - // unlock screen - return Adb.shell(emulatorId, 'input keyevent 82').then(function () { - // return the new emulator id for the started emulators - return emulatorId; - }); - } else { - // We timed out waiting for the boot to happen - return null; - } - }); - }); -}; - -/* - * Waits for an emulator to boot on a given port. - * Returns this emulator's ID in a promise. - */ -module.exports.wait_for_emulator = function (port) { - var self = this; - return Promise.resolve().then(function () { - var emulator_id = 'emulator-' + port; - return Adb.shell(emulator_id, 'getprop dev.bootcomplete').then(function (output) { - if (output.indexOf('1') >= 0) { - return emulator_id; - } - return self.wait_for_emulator(port); - }, function (error) { - if ((error && error.message && - (error.message.indexOf('not found') > -1)) || - (error.message.indexOf('device offline') > -1) || - (error.message.indexOf('device still connecting') > -1) || - (error.message.indexOf('device still authorizing') > -1)) { - // emulator not yet started, continue waiting - return self.wait_for_emulator(port); - } else { - // something unexpected has happened - throw error; - } - }); - }); -}; - -/* - * Waits for the core android process of the emulator to start. Returns a - * promise that resolves to a boolean indicating success. Not specifying a - * time_remaining or passing a negative value will cause it to wait forever - */ -module.exports.wait_for_boot = function (emulator_id, time_remaining) { - var self = this; - return Adb.shell(emulator_id, 'getprop sys.boot_completed').then(function (output) { - if (output.match(/1/)) { - return true; - } else if (time_remaining === 0) { - return false; - } else { - process.stdout.write('.'); - - return new Promise(resolve => { - const delay = time_remaining < CHECK_BOOTED_INTERVAL ? time_remaining : CHECK_BOOTED_INTERVAL; - - setTimeout(() => { - const updated_time = time_remaining >= 0 ? Math.max(time_remaining - CHECK_BOOTED_INTERVAL, 0) : time_remaining; - resolve(self.wait_for_boot(emulator_id, updated_time)); - }, delay); - }); - } - }); -}; - -/* - * Create avd - * TODO : Enter the stdin input required to complete the creation of an avd. - * Returns a promise. - */ -module.exports.create_image = function (name, target) { - console.log('Creating new avd named ' + name); - if (target) { - return execa('android', ['create', 'avd', '--name', name, '--target', target]).then(null, function (error) { - console.error('ERROR : Failed to create emulator image : '); - console.error(' Do you have the latest android targets including ' + target + '?'); - console.error(error.message); - }); - } else { - console.log('WARNING : Project target not found, creating avd with a different target but the project may fail to install.'); - // TODO: there's a more robust method for finding targets in android_sdk.js - return execa('android', ['create', 'avd', '--name', name, '--target', this.list_targets()[0]]).then(function () { - // TODO: This seems like another error case, even though it always happens. - console.error('ERROR : Unable to create an avd emulator, no targets found.'); - console.error('Ensure you have targets available by running the "android" command'); - return Promise.reject(new CordovaError()); - }, function (error) { - console.error('ERROR : Failed to create emulator image : '); - console.error(error.message); - }); - } -}; - -module.exports.resolveTarget = function (target) { - return this.list_started().then(function (emulator_list) { - if (emulator_list.length < 1) { - return Promise.reject(new CordovaError('No running Android emulators found, please start an emulator before deploying your project.')); - } - - // default emulator - target = target || emulator_list[0]; - if (emulator_list.indexOf(target) < 0) { - return Promise.reject(new CordovaError('Unable to find target \'' + target + '\'. Failed to deploy to emulator.')); - } - - return build.detectArchitecture(target).then(function (arch) { - return { target: target, arch: arch, isEmulator: true }; - }); - }); -}; - -/* - * Installs a previously built application on the emulator and launches it. - * If no target is specified, then it picks one. - * If no started emulators are found, error out. - * Returns a promise. - */ -module.exports.install = function (givenTarget, buildResults) { - var target; - // We need to find the proper path to the Android Manifest - const manifestPath = path.join(__dirname, '..', '..', 'app', 'src', 'main', 'AndroidManifest.xml'); - const manifest = new AndroidManifest(manifestPath); - const pkgName = manifest.getPackageId(); - - // resolve the target emulator - return Promise.resolve().then(function () { - if (givenTarget && typeof givenTarget === 'object') { - return givenTarget; - } else { - return module.exports.resolveTarget(givenTarget); - } - - // set the resolved target - }).then(function (resolvedTarget) { - target = resolvedTarget; - - // install the app - }).then(function () { - // This promise is always resolved, even if 'adb uninstall' fails to uninstall app - // or the app doesn't installed at all, so no error catching needed. - return Promise.resolve().then(function () { - var apk_path = build.findBestApkForArchitecture(buildResults, target.arch); - var execOptions = { - cwd: os.tmpdir(), - timeout: INSTALL_COMMAND_TIMEOUT, // in milliseconds - killSignal: EXEC_KILL_SIGNAL - }; - - events.emit('log', 'Using apk: ' + apk_path); - events.emit('log', 'Package name: ' + pkgName); - events.emit('verbose', 'Installing app on emulator...'); - - // A special function to call adb install in specific environment w/ specific options. - // Introduced as a part of fix for http://issues.apache.org/jira/browse/CB-9119 - // to workaround sporadic emulator hangs - function adbInstallWithOptions (target, apk, opts) { - events.emit('verbose', 'Installing apk ' + apk + ' on ' + target + '...'); - - const args = ['-s', target, 'install', '-r', apk]; - return execa('adb', args, opts).then(({ stdout }) => { - // adb does not return an error code even if installation fails. Instead it puts a specific - // message to stdout, so we have to use RegExp matching to detect installation failure. - if (/Failure/.test(stdout)) { - if (stdout.match(/INSTALL_PARSE_FAILED_NO_CERTIFICATES/)) { - stdout += 'Sign the build using \'-- --keystore\' or \'--buildConfig\'' + - ' or sign and deploy the unsigned apk manually using Android tools.'; - } else if (stdout.match(/INSTALL_FAILED_VERSION_DOWNGRADE/)) { - stdout += 'You\'re trying to install apk with a lower versionCode that is already installed.' + - '\nEither uninstall an app or increment the versionCode.'; - } - - throw new CordovaError('Failed to install apk to emulator: ' + stdout); - } - }); - } - - function installPromise () { - return adbInstallWithOptions(target.target, apk_path, execOptions).catch(function (error) { - // CB-9557 CB-10157 only uninstall and reinstall app if the one that - // is already installed on device was signed w/different certificate - if (!/INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES/.test(error.toString())) { throw error; } - - events.emit('warn', 'Uninstalling app from device and reinstalling it because the ' + - 'currently installed app was signed with different key'); - - // This promise is always resolved, even if 'adb uninstall' fails to uninstall app - // or the app doesn't installed at all, so no error catching needed. - return Adb.uninstall(target.target, pkgName).then(function () { - return adbInstallWithOptions(target.target, apk_path, execOptions); - }); - }); - } - - return retry.retryPromise(NUM_INSTALL_RETRIES, installPromise).then(function (output) { - events.emit('log', 'INSTALL SUCCESS'); - }); - }); - // unlock screen - }).then(function () { - events.emit('verbose', 'Unlocking screen...'); - return Adb.shell(target.target, 'input keyevent 82'); - }).then(function () { - Adb.start(target.target, pkgName + '/.' + manifest.getActivity().getName()); - // report success or failure - }).then(function (output) { - events.emit('log', 'LAUNCH SUCCESS'); - }); -}; diff --git a/ionic/platforms/android/cordova/lib/getASPath.bat b/ionic/platforms/android/cordova/lib/getASPath.bat deleted file mode 100644 index 14dad439449b5397d9650a8c436a8584adfd4037..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/lib/getASPath.bat +++ /dev/null @@ -1,3 +0,0 @@ -@ECHO OFF -for /f "tokens=2*" %%a in ('REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Android Studio" /v Path') do set "ASPath=%%~b" -ECHO %ASPath% \ No newline at end of file diff --git a/ionic/platforms/android/cordova/lib/install-device b/ionic/platforms/android/cordova/lib/install-device deleted file mode 100755 index 03873883ed36197dc4dc3f8129726009f04d6f86..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/lib/install-device +++ /dev/null @@ -1,42 +0,0 @@ -#!/usr/bin/env node - -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*/ - -var device = require('./device'); -var args = process.argv; - -if (args.length > 2) { - var install_target; - if (args[2].substring(0, 9) === '--target=') { - install_target = args[2].substring(9, args[2].length); - device.install(install_target).catch(function (err) { - console.error('ERROR: ' + err); - process.exit(2); - }); - } else { - console.error('ERROR : argument \'' + args[2] + '\' not recognized.'); - process.exit(2); - } -} else { - device.install().catch(function (err) { - console.error('ERROR: ' + err); - process.exit(2); - }); -} diff --git a/ionic/platforms/android/cordova/lib/install-device.bat b/ionic/platforms/android/cordova/lib/install-device.bat deleted file mode 100644 index 0be9ebd030d406234ec3c65243d0760da96652d8..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/lib/install-device.bat +++ /dev/null @@ -1,26 +0,0 @@ -:: Licensed to the Apache Software Foundation (ASF) under one -:: or more contributor license agreements. See the NOTICE file -:: distributed with this work for additional information -:: regarding copyright ownership. The ASF licenses this file -:: to you under the Apache License, Version 2.0 (the -:: "License"); you may not use this file except in compliance -:: with the License. You may obtain a copy of the License at -:: -:: http://www.apache.org/licenses/LICENSE-2.0 -:: -:: Unless required by applicable law or agreed to in writing, -:: software distributed under the License is distributed on an -:: "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -:: KIND, either express or implied. See the License for the -:: specific language governing permissions and limitations -:: under the License. - -@ECHO OFF -SET script_path="%~dp0install-device" -IF EXIST %script_path% ( - node %script_path% %* -) ELSE ( - ECHO. - ECHO ERROR: Could not find 'install-device' script in 'cordova\lib' folder, aborting...>&2 - EXIT /B 1 -) \ No newline at end of file diff --git a/ionic/platforms/android/cordova/lib/install-emulator b/ionic/platforms/android/cordova/lib/install-emulator deleted file mode 100755 index 2d46dbe9368e14196b4df0503ff4f94c2864e678..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/lib/install-emulator +++ /dev/null @@ -1,38 +0,0 @@ -#!/usr/bin/env node - -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*/ - -var emulator = require('./emulator'); -var args = process.argv; - -var install_target; -if (args.length > 2) { - if (args[2].substring(0, 9) === '--target=') { - install_target = args[2].substring(9, args[2].length); - } else { - console.error('ERROR : argument \'' + args[2] + '\' not recognized.'); - process.exit(2); - } -} - -emulator.install(install_target).catch(function (err) { - console.error('ERROR: ' + err); - process.exit(2); -}); diff --git a/ionic/platforms/android/cordova/lib/install-emulator.bat b/ionic/platforms/android/cordova/lib/install-emulator.bat deleted file mode 100644 index 21e88c530d918c6d1a705aea175a27dafac4f3ea..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/lib/install-emulator.bat +++ /dev/null @@ -1,26 +0,0 @@ -:: Licensed to the Apache Software Foundation (ASF) under one -:: or more contributor license agreements. See the NOTICE file -:: distributed with this work for additional information -:: regarding copyright ownership. The ASF licenses this file -:: to you under the Apache License, Version 2.0 (the -:: "License"); you may not use this file except in compliance -:: with the License. You may obtain a copy of the License at -:: -:: http://www.apache.org/licenses/LICENSE-2.0 -:: -:: Unless required by applicable law or agreed to in writing, -:: software distributed under the License is distributed on an -:: "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -:: KIND, either express or implied. See the License for the -:: specific language governing permissions and limitations -:: under the License. - -@ECHO OFF -SET script_path="%~dp0install-emulator" -IF EXIST %script_path% ( - node %script_path% %* -) ELSE ( - ECHO. - ECHO ERROR: Could not find 'install-emulator' script in 'cordova\lib' folder, aborting...>&2 - EXIT /B 1 -) \ No newline at end of file diff --git a/ionic/platforms/android/cordova/lib/list-devices b/ionic/platforms/android/cordova/lib/list-devices deleted file mode 100755 index 339c6658d5e88bb4ff3adb69fe68809a18acc839..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/lib/list-devices +++ /dev/null @@ -1,34 +0,0 @@ -#!/usr/bin/env node - -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*/ - -var devices = require('./device'); - -// Usage support for when args are given -require('./check_reqs').check_android().then(function () { - devices.list().then(function (device_list) { - device_list && device_list.forEach(function (dev) { - console.log(dev); - }); - }, function (err) { - console.error('ERROR: ' + err); - process.exit(2); - }); -}); diff --git a/ionic/platforms/android/cordova/lib/list-devices.bat b/ionic/platforms/android/cordova/lib/list-devices.bat deleted file mode 100644 index 7e04cf9462a5ae9ea990497bc765368a41f81138..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/lib/list-devices.bat +++ /dev/null @@ -1,26 +0,0 @@ -:: Licensed to the Apache Software Foundation (ASF) under one -:: or more contributor license agreements. See the NOTICE file -:: distributed with this work for additional information -:: regarding copyright ownership. The ASF licenses this file -:: to you under the Apache License, Version 2.0 (the -:: "License"); you may not use this file except in compliance -:: with the License. You may obtain a copy of the License at -:: -:: http://www.apache.org/licenses/LICENSE-2.0 -:: -:: Unless required by applicable law or agreed to in writing, -:: software distributed under the License is distributed on an -:: "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -:: KIND, either express or implied. See the License for the -:: specific language governing permissions and limitations -:: under the License. - -@ECHO OFF -SET script_path="%~dp0list-devices" -IF EXIST %script_path% ( - node %script_path% %* -) ELSE ( - ECHO. - ECHO ERROR: Could not find 'list-devices' script in 'cordova\lib' folder, aborting...>&2 - EXIT /B 1 -) \ No newline at end of file diff --git a/ionic/platforms/android/cordova/lib/list-emulator-images b/ionic/platforms/android/cordova/lib/list-emulator-images deleted file mode 100755 index 03cfb190c1c4ffecb18dd60d6ec669610fa032a3..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/lib/list-emulator-images +++ /dev/null @@ -1,34 +0,0 @@ -#!/usr/bin/env node - -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*/ - -var emulators = require('./emulator'); - -// Usage support for when args are given -require('./check_reqs').check_android().then(function () { - emulators.list_images().then(function (emulator_list) { - emulator_list && emulator_list.forEach(function (emu) { - console.log(emu.name); - }); - }, function (err) { - console.error('ERROR: ' + err); - process.exit(2); - }); -}); diff --git a/ionic/platforms/android/cordova/lib/list-emulator-images.bat b/ionic/platforms/android/cordova/lib/list-emulator-images.bat deleted file mode 100644 index 55c399d7adc1dcfc3e999dbd421d59e3ec3adb5f..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/lib/list-emulator-images.bat +++ /dev/null @@ -1,26 +0,0 @@ -:: Licensed to the Apache Software Foundation (ASF) under one -:: or more contributor license agreements. See the NOTICE file -:: distributed with this work for additional information -:: regarding copyright ownership. The ASF licenses this file -:: to you under the Apache License, Version 2.0 (the -:: "License"); you may not use this file except in compliance -:: with the License. You may obtain a copy of the License at -:: -:: http://www.apache.org/licenses/LICENSE-2.0 -:: -:: Unless required by applicable law or agreed to in writing, -:: software distributed under the License is distributed on an -:: "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -:: KIND, either express or implied. See the License for the -:: specific language governing permissions and limitations -:: under the License. - -@ECHO OFF -SET script_path="%~dp0list-emulator-images" -IF EXIST %script_path% ( - node %script_path% %* -) ELSE ( - ECHO. - ECHO ERROR: Could not find 'list-emulator-images' script in 'cordova\lib' folder, aborting...>&2 - EXIT /B 1 -) diff --git a/ionic/platforms/android/cordova/lib/list-started-emulators b/ionic/platforms/android/cordova/lib/list-started-emulators deleted file mode 100755 index 2a83e03a1bdc1c6bf4581c1bd9b8541ca8fadbda..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/lib/list-started-emulators +++ /dev/null @@ -1,34 +0,0 @@ -#!/usr/bin/env node - -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*/ - -var emulators = require('./emulator'); - -// Usage support for when args are given -require('./check_reqs').check_android().then(function () { - emulators.list_started().then(function (emulator_list) { - emulator_list && emulator_list.forEach(function (emu) { - console.log(emu); - }); - }, function (err) { - console.error('ERROR: ' + err); - process.exit(2); - }); -}); diff --git a/ionic/platforms/android/cordova/lib/list-started-emulators.bat b/ionic/platforms/android/cordova/lib/list-started-emulators.bat deleted file mode 100644 index 99547aa4d4978bead8fd4e04ecd78a0d16a3e12a..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/lib/list-started-emulators.bat +++ /dev/null @@ -1,26 +0,0 @@ -:: Licensed to the Apache Software Foundation (ASF) under one -:: or more contributor license agreements. See the NOTICE file -:: distributed with this work for additional information -:: regarding copyright ownership. The ASF licenses this file -:: to you under the Apache License, Version 2.0 (the -:: "License"); you may not use this file except in compliance -:: with the License. You may obtain a copy of the License at -:: -:: http://www.apache.org/licenses/LICENSE-2.0 -:: -:: Unless required by applicable law or agreed to in writing, -:: software distributed under the License is distributed on an -:: "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -:: KIND, either express or implied. See the License for the -:: specific language governing permissions and limitations -:: under the License. - -@ECHO OFF -SET script_path="%~dp0list-started-emulators" -IF EXIST %script_path% ( - node %script_path% %* -) ELSE ( - ECHO. - ECHO ERROR: Could not find 'list-started-emulators' script in 'cordova\lib' folder, aborting...>&2 - EXIT /B 1 -) \ No newline at end of file diff --git a/ionic/platforms/android/cordova/lib/log.js b/ionic/platforms/android/cordova/lib/log.js deleted file mode 100644 index 4e087651b3cf1bc5ad13c694e8a87121e9b093d7..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/lib/log.js +++ /dev/null @@ -1,45 +0,0 @@ -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*/ - -var path = require('path'); -var os = require('os'); -var execa = require('execa'); -var ROOT = path.join(__dirname, '..', '..'); - -/* - * Starts running logcat in the shell. - * Returns a promise. - */ -module.exports.run = function () { - var adb = execa('adb', ['logcat'], { cwd: os.tmpdir(), stderr: 'inherit' }); - - adb.stdout.on('data', function (data) { - var lines = data ? data.toString().split('\n') : []; - var out = lines.filter(function (x) { return x.indexOf('nativeGetEnabledTags') < 0; }); - console.log(out.join('\n')); - }); - - return adb; -}; - -module.exports.help = function () { - console.log('Usage: ' + path.relative(process.cwd(), path.join(ROOT, 'cordova', 'log'))); - console.log('Gives the logcat output on the command line.'); - process.exit(0); -}; diff --git a/ionic/platforms/android/cordova/lib/plugin-build.gradle b/ionic/platforms/android/cordova/lib/plugin-build.gradle deleted file mode 100644 index 032b870e1365c483f10475353e7579c2722241c0..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/lib/plugin-build.gradle +++ /dev/null @@ -1,69 +0,0 @@ -/* Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*/ - -// GENERATED FILE! DO NOT EDIT! - -buildscript { - repositories { - google() - jcenter() - } - - // Switch the Android Gradle plugin version requirement depending on the - // installed version of Gradle. This dependency is documented at - // http://tools.android.com/tech-docs/new-build-system/version-compatibility - // and https://issues.apache.org/jira/browse/CB-8143 - dependencies { - classpath 'com.android.tools.build:gradle:1.0.0+' - } -} - -apply plugin: 'com.android.library' - -dependencies { - implementation fileTree(dir: 'libs', include: '*.jar') - debugCompile project(path: ":CordovaLib", configuration: "debug") - releaseCompile project(path: ":CordovaLib", configuration: "release") -} - -android { - compileSdkVersion cdvCompileSdkVersion - buildToolsVersion cdvBuildToolsVersion - - compileOptions { - sourceCompatibility JavaVersion.VERSION_1_6 - targetCompatibility JavaVersion.VERSION_1_6 - } - - sourceSets { - main { - manifest.srcFile 'AndroidManifest.xml' - java.srcDirs = ['src'] - resources.srcDirs = ['src'] - aidl.srcDirs = ['src'] - renderscript.srcDirs = ['src'] - res.srcDirs = ['res'] - assets.srcDirs = ['assets'] - jniLibs.srcDirs = ['libs'] - } - } -} - -if (file('build-extras.gradle').exists()) { - apply from: 'build-extras.gradle' -} diff --git a/ionic/platforms/android/cordova/lib/pluginHandlers.js b/ionic/platforms/android/cordova/lib/pluginHandlers.js deleted file mode 100644 index 99e4bac72e5d1c9028fee86c79d34cc58dc0c4d5..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/lib/pluginHandlers.js +++ /dev/null @@ -1,323 +0,0 @@ -/* - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - * -*/ - -var fs = require('fs-extra'); -var path = require('path'); -var events = require('cordova-common').events; -var CordovaError = require('cordova-common').CordovaError; - -var handlers = { - 'source-file': { - install: function (obj, plugin, project, options) { - if (!obj.src) throw new CordovaError(generateAttributeError('src', 'source-file', plugin.id)); - if (!obj.targetDir) throw new CordovaError(generateAttributeError('target-dir', 'source-file', plugin.id)); - - var dest = getInstallDestination(obj); - - if (options && options.force) { - copyFile(plugin.dir, obj.src, project.projectDir, dest, !!(options && options.link)); - } else { - copyNewFile(plugin.dir, obj.src, project.projectDir, dest, !!(options && options.link)); - } - }, - uninstall: function (obj, plugin, project, options) { - var dest = getInstallDestination(obj); - - // TODO: Add Koltin extension to uninstall, since they are handled like Java files - if (obj.src.endsWith('java')) { - deleteJava(project.projectDir, dest); - } else { - // Just remove the file, not the whole parent directory - removeFile(path.resolve(project.projectDir, dest)); - } - } - }, - 'lib-file': { - install: function (obj, plugin, project, options) { - var dest = path.join('app/libs', path.basename(obj.src)); - copyFile(plugin.dir, obj.src, project.projectDir, dest, !!(options && options.link)); - }, - uninstall: function (obj, plugin, project, options) { - var dest = path.join('app/libs', path.basename(obj.src)); - removeFile(path.resolve(project.projectDir, dest)); - } - }, - 'resource-file': { - install: function (obj, plugin, project, options) { - var dest = path.join('app', 'src', 'main', obj.target); - copyFile(plugin.dir, obj.src, project.projectDir, dest, !!(options && options.link)); - }, - uninstall: function (obj, plugin, project, options) { - var dest = path.join('app', 'src', 'main', obj.target); - removeFile(path.resolve(project.projectDir, dest)); - } - }, - framework: { - install: function (obj, plugin, project, options) { - var src = obj.src; - if (!src) throw new CordovaError(generateAttributeError('src', 'framework', plugin.id)); - - events.emit('verbose', 'Installing Android library: ' + src); - var parentDir = obj.parent ? path.resolve(project.projectDir, obj.parent) : project.projectDir; - var subDir; - - if (obj.custom) { - var subRelativeDir = project.getCustomSubprojectRelativeDir(plugin.id, src); - copyNewFile(plugin.dir, src, project.projectDir, subRelativeDir, !!(options && options.link)); - subDir = path.resolve(project.projectDir, subRelativeDir); - } else { - obj.type = 'sys'; - subDir = src; - } - - if (obj.type === 'gradleReference') { - project.addGradleReference(parentDir, subDir); - } else if (obj.type === 'sys') { - project.addSystemLibrary(parentDir, subDir); - } else { - project.addSubProject(parentDir, subDir); - } - }, - uninstall: function (obj, plugin, project, options) { - var src = obj.src; - if (!src) throw new CordovaError(generateAttributeError('src', 'framework', plugin.id)); - - events.emit('verbose', 'Uninstalling Android library: ' + src); - var parentDir = obj.parent ? path.resolve(project.projectDir, obj.parent) : project.projectDir; - var subDir; - - if (obj.custom) { - var subRelativeDir = project.getCustomSubprojectRelativeDir(plugin.id, src); - removeFile(path.resolve(project.projectDir, subRelativeDir)); - subDir = path.resolve(project.projectDir, subRelativeDir); - // If it's the last framework in the plugin, remove the parent directory. - var parDir = path.dirname(subDir); - if (fs.existsSync(parDir) && fs.readdirSync(parDir).length === 0) { - fs.rmdirSync(parDir); - } - } else { - obj.type = 'sys'; - subDir = src; - } - - if (obj.type === 'gradleReference') { - project.removeGradleReference(parentDir, subDir); - } else if (obj.type === 'sys') { - project.removeSystemLibrary(parentDir, subDir); - } else { - project.removeSubProject(parentDir, subDir); - } - } - }, - asset: { - install: function (obj, plugin, project, options) { - if (!obj.src) { - throw new CordovaError(generateAttributeError('src', 'asset', plugin.id)); - } - if (!obj.target) { - throw new CordovaError(generateAttributeError('target', 'asset', plugin.id)); - } - - copyFile(plugin.dir, obj.src, project.www, obj.target); - if (options && options.usePlatformWww) { - // CB-11022 copy file to both directories if usePlatformWww is specified - copyFile(plugin.dir, obj.src, project.platformWww, obj.target); - } - }, - uninstall: function (obj, plugin, project, options) { - var target = obj.target || obj.src; - - if (!target) throw new CordovaError(generateAttributeError('target', 'asset', plugin.id)); - - removeFile(path.resolve(project.www, target)); - removeFile(path.resolve(project.www, 'plugins', plugin.id)); - if (options && options.usePlatformWww) { - // CB-11022 remove file from both directories if usePlatformWww is specified - removeFile(path.resolve(project.platformWww, target)); - removeFile(path.resolve(project.platformWww, 'plugins', plugin.id)); - } - } - }, - 'js-module': { - install: function (obj, plugin, project, options) { - // Copy the plugin's files into the www directory. - var moduleSource = path.resolve(plugin.dir, obj.src); - var moduleName = plugin.id + '.' + (obj.name || path.basename(obj.src, path.extname(obj.src))); - - // Read in the file, prepend the cordova.define, and write it back out. - var scriptContent = fs.readFileSync(moduleSource, 'utf-8').replace(/^\ufeff/, ''); // Window BOM - if (moduleSource.match(/.*\.json$/)) { - scriptContent = 'module.exports = ' + scriptContent; - } - scriptContent = 'cordova.define("' + moduleName + '", function(require, exports, module) {\n' + scriptContent + '\n});\n'; - - var wwwDest = path.resolve(project.www, 'plugins', plugin.id, obj.src); - fs.ensureDirSync(path.dirname(wwwDest)); - fs.writeFileSync(wwwDest, scriptContent, 'utf-8'); - - if (options && options.usePlatformWww) { - // CB-11022 copy file to both directories if usePlatformWww is specified - var platformWwwDest = path.resolve(project.platformWww, 'plugins', plugin.id, obj.src); - fs.ensureDirSync(path.dirname(platformWwwDest)); - fs.writeFileSync(platformWwwDest, scriptContent, 'utf-8'); - } - }, - uninstall: function (obj, plugin, project, options) { - var pluginRelativePath = path.join('plugins', plugin.id, obj.src); - removeFileAndParents(project.www, pluginRelativePath); - if (options && options.usePlatformWww) { - // CB-11022 remove file from both directories if usePlatformWww is specified - removeFileAndParents(project.platformWww, pluginRelativePath); - } - } - } -}; - -module.exports.getInstaller = function (type) { - if (handlers[type] && handlers[type].install) { - return handlers[type].install; - } - - events.emit('verbose', '<' + type + '> is not supported for android plugins'); -}; - -module.exports.getUninstaller = function (type) { - if (handlers[type] && handlers[type].uninstall) { - return handlers[type].uninstall; - } - - events.emit('verbose', '<' + type + '> is not supported for android plugins'); -}; - -function copyFile (plugin_dir, src, project_dir, dest, link) { - src = path.resolve(plugin_dir, src); - if (!fs.existsSync(src)) throw new CordovaError('"' + src + '" not found!'); - - // check that src path is inside plugin directory - var real_path = fs.realpathSync(src); - var real_plugin_path = fs.realpathSync(plugin_dir); - if (real_path.indexOf(real_plugin_path) !== 0) { throw new CordovaError('File "' + src + '" is located outside the plugin directory "' + plugin_dir + '"'); } - - dest = path.resolve(project_dir, dest); - - // check that dest path is located in project directory - if (dest.indexOf(project_dir) !== 0) { throw new CordovaError('Destination "' + dest + '" for source file "' + src + '" is located outside the project'); } - - fs.ensureDirSync(path.dirname(dest)); - if (link) { - symlinkFileOrDirTree(src, dest); - } else { - fs.copySync(src, dest); - } -} - -// Same as copy file but throws error if target exists -function copyNewFile (plugin_dir, src, project_dir, dest, link) { - var target_path = path.resolve(project_dir, dest); - if (fs.existsSync(target_path)) { throw new CordovaError('"' + target_path + '" already exists!'); } - - copyFile(plugin_dir, src, project_dir, dest, !!link); -} - -function symlinkFileOrDirTree (src, dest) { - if (fs.existsSync(dest)) { - fs.removeSync(dest); - } - - if (fs.statSync(src).isDirectory()) { - fs.ensureDirSync(path.dirname(dest)); - fs.readdirSync(src).forEach(function (entry) { - symlinkFileOrDirTree(path.join(src, entry), path.join(dest, entry)); - }); - } else { - fs.symlinkSync(path.relative(fs.realpathSync(path.dirname(dest)), src), dest); - } -} - -function removeFile (file) { - fs.removeSync(file); -} - -// Sometimes we want to remove some java, and prune any unnecessary empty directories -function deleteJava (project_dir, destFile) { - removeFileAndParents(project_dir, destFile, 'src'); -} - -function removeFileAndParents (baseDir, destFile, stopper) { - stopper = stopper || '.'; - var file = path.resolve(baseDir, destFile); - if (!fs.existsSync(file)) return; - - removeFile(file); - - // check if directory is empty - var curDir = path.dirname(file); - - while (curDir !== path.resolve(baseDir, stopper)) { - if (fs.existsSync(curDir) && fs.readdirSync(curDir).length === 0) { - fs.rmdirSync(curDir); - curDir = path.resolve(curDir, '..'); - } else { - // directory not empty...do nothing - break; - } - } -} - -function generateAttributeError (attribute, element, id) { - return 'Required attribute "' + attribute + '" not specified in <' + element + '> element from plugin: ' + id; -} - -function getInstallDestination (obj) { - var APP_MAIN_PREFIX = 'app/src/main'; - var PATH_SEPARATOR = '/'; - - var PATH_SEP_MATCH = '\\' + PATH_SEPARATOR; - var PATH_SEP_OR_EOL_MATCH = '(\\' + PATH_SEPARATOR + '|$)'; - - var appReg = new RegExp('^app' + PATH_SEP_OR_EOL_MATCH); - var libsReg = new RegExp('^libs' + PATH_SEP_OR_EOL_MATCH); - var srcReg = new RegExp('^src' + PATH_SEP_OR_EOL_MATCH); - var srcMainReg = new RegExp('^src' + PATH_SEP_MATCH + 'main' + PATH_SEP_OR_EOL_MATCH); - - if (appReg.test(obj.targetDir)) { - // If any source file is using the new app directory structure, - // don't penalize it - return path.join(obj.targetDir, path.basename(obj.src)); - } else { - // Plugin using deprecated target directory structure (GH-580) - if (obj.src.endsWith('.java')) { - return path.join(APP_MAIN_PREFIX, 'java', obj.targetDir.replace(srcReg, ''), - path.basename(obj.src)); - } else if (obj.src.endsWith('.aidl')) { - return path.join(APP_MAIN_PREFIX, 'aidl', obj.targetDir.replace(srcReg, ''), - path.basename(obj.src)); - } else if (libsReg.test(obj.targetDir)) { - if (obj.src.endsWith('.so')) { - return path.join(APP_MAIN_PREFIX, 'jniLibs', obj.targetDir.replace(libsReg, ''), - path.basename(obj.src)); - } else { - return path.join('app', obj.targetDir, path.basename(obj.src)); - } - } else if (srcMainReg.test(obj.targetDir)) { - return path.join('app', obj.targetDir, path.basename(obj.src)); - } - - // For all other source files not using the new app directory structure, - // add 'app/src/main' to the targetDir - return path.join(APP_MAIN_PREFIX, obj.targetDir, path.basename(obj.src)); - } -} diff --git a/ionic/platforms/android/cordova/lib/prepare.js b/ionic/platforms/android/cordova/lib/prepare.js deleted file mode 100644 index 6e8e92fe6e9bbaf290331934800c2efce5d325b2..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/lib/prepare.js +++ /dev/null @@ -1,738 +0,0 @@ -/** - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*/ - -var fs = require('fs-extra'); -var path = require('path'); -const nopt = require('nopt'); -var events = require('cordova-common').events; -var AndroidManifest = require('./AndroidManifest'); -var checkReqs = require('./check_reqs'); -var xmlHelpers = require('cordova-common').xmlHelpers; -var CordovaError = require('cordova-common').CordovaError; -var ConfigParser = require('cordova-common').ConfigParser; -var FileUpdater = require('cordova-common').FileUpdater; -var PlatformJson = require('cordova-common').PlatformJson; -var PlatformMunger = require('cordova-common').ConfigChanges.PlatformMunger; -var PluginInfoProvider = require('cordova-common').PluginInfoProvider; -const utils = require('./utils'); - -const GradlePropertiesParser = require('./config/GradlePropertiesParser'); - -function parseArguments (argv) { - return nopt({ - // `jvmargs` is a valid option however, we don't actually want to parse it because we want the entire string as is. - // jvmargs: String - }, {}, argv || [], 0); -} - -module.exports.prepare = function (cordovaProject, options) { - var self = this; - - let args = {}; - if (options && options.options) { - args = parseArguments(options.options.argv); - } - - var platformJson = PlatformJson.load(this.locations.root, this.platform); - var munger = new PlatformMunger(this.platform, this.locations.root, platformJson, new PluginInfoProvider()); - - this._config = updateConfigFilesFrom(cordovaProject.projectConfig, munger, this.locations); - - // Get the min SDK version from config.xml - const minSdkVersion = this._config.getPreference('android-minSdkVersion', 'android'); - const maxSdkVersion = this._config.getPreference('android-maxSdkVersion', 'android'); - const targetSdkVersion = this._config.getPreference('android-targetSdkVersion', 'android'); - const androidXEnabled = this._config.getPreference('AndroidXEnabled', 'android'); - const isGradlePluginKotlinEnabled = this._config.getPreference('GradlePluginKotlinEnabled', 'android'); - const gradlePluginKotlinCodeStyle = this._config.getPreference('GradlePluginKotlinCodeStyle', 'android'); - - const gradlePropertiesUserConfig = {}; - if (minSdkVersion) gradlePropertiesUserConfig.cdvMinSdkVersion = minSdkVersion; - if (maxSdkVersion) gradlePropertiesUserConfig.cdvMaxSdkVersion = maxSdkVersion; - if (targetSdkVersion) gradlePropertiesUserConfig.cdvTargetSdkVersion = targetSdkVersion; - if (args.jvmargs) gradlePropertiesUserConfig['org.gradle.jvmargs'] = args.jvmargs; - if (isGradlePluginKotlinEnabled) { - gradlePropertiesUserConfig['kotlin.code.style'] = gradlePluginKotlinCodeStyle || 'official'; - } - - // Both 'useAndroidX' and 'enableJetifier' are linked together. - if (androidXEnabled) { - gradlePropertiesUserConfig['android.useAndroidX'] = androidXEnabled; - gradlePropertiesUserConfig['android.enableJetifier'] = androidXEnabled; - } - - const gradlePropertiesParser = new GradlePropertiesParser(this.locations.root); - gradlePropertiesParser.configure(gradlePropertiesUserConfig); - - // Update own www dir with project's www assets and plugins' assets and js-files - return Promise.resolve(updateWww(cordovaProject, this.locations)).then(function () { - // update project according to config.xml changes. - return updateProjectAccordingTo(self._config, self.locations); - }).then(function () { - updateIcons(cordovaProject, path.relative(cordovaProject.root, self.locations.res)); - updateSplashes(cordovaProject, path.relative(cordovaProject.root, self.locations.res)); - updateFileResources(cordovaProject, path.relative(cordovaProject.root, self.locations.root)); - }).then(function () { - events.emit('verbose', 'Prepared android project successfully'); - }); -}; - -module.exports.clean = function (options) { - // A cordovaProject isn't passed into the clean() function, because it might have - // been called from the platform shell script rather than the CLI. Check for the - // noPrepare option passed in by the non-CLI clean script. If that's present, or if - // there's no config.xml found at the project root, then don't clean prepared files. - var projectRoot = path.resolve(this.root, '../..'); - if ((options && options.noPrepare) || !fs.existsSync(this.locations.configXml) || - !fs.existsSync(this.locations.configXml)) { - return Promise.resolve(); - } - - var projectConfig = new ConfigParser(this.locations.configXml); - - var self = this; - return Promise.resolve().then(function () { - cleanWww(projectRoot, self.locations); - cleanIcons(projectRoot, projectConfig, path.relative(projectRoot, self.locations.res)); - cleanSplashes(projectRoot, projectConfig, path.relative(projectRoot, self.locations.res)); - cleanFileResources(projectRoot, projectConfig, path.relative(projectRoot, self.locations.root)); - }); -}; - -/** - * Updates config files in project based on app's config.xml and config munge, - * generated by plugins. - * - * @param {ConfigParser} sourceConfig A project's configuration that will - * be merged into platform's config.xml - * @param {ConfigChanges} configMunger An initialized ConfigChanges instance - * for this platform. - * @param {Object} locations A map of locations for this platform - * - * @return {ConfigParser} An instance of ConfigParser, that - * represents current project's configuration. When returned, the - * configuration is already dumped to appropriate config.xml file. - */ -function updateConfigFilesFrom (sourceConfig, configMunger, locations) { - events.emit('verbose', 'Generating platform-specific config.xml from defaults for android at ' + locations.configXml); - - // First cleanup current config and merge project's one into own - // Overwrite platform config.xml with defaults.xml. - fs.copySync(locations.defaultConfigXml, locations.configXml); - - // Then apply config changes from global munge to all config files - // in project (including project's config) - configMunger.reapply_global_munge().save_all(); - - events.emit('verbose', 'Merging project\'s config.xml into platform-specific android config.xml'); - // Merge changes from app's config.xml into platform's one - var config = new ConfigParser(locations.configXml); - xmlHelpers.mergeXml(sourceConfig.doc.getroot(), - config.doc.getroot(), 'android', /* clobber= */true); - - config.write(); - return config; -} - -/** - * Logs all file operations via the verbose event stream, indented. - */ -function logFileOp (message) { - events.emit('verbose', ' ' + message); -} - -/** - * Updates platform 'www' directory by replacing it with contents of - * 'platform_www' and app www. Also copies project's overrides' folder into - * the platform 'www' folder - * - * @param {Object} cordovaProject An object which describes cordova project. - * @param {Object} destinations An object that contains destination - * paths for www files. - */ -function updateWww (cordovaProject, destinations) { - var sourceDirs = [ - path.relative(cordovaProject.root, cordovaProject.locations.www), - path.relative(cordovaProject.root, destinations.platformWww) - ]; - - // If project contains 'merges' for our platform, use them as another overrides - var merges_path = path.join(cordovaProject.root, 'merges', 'android'); - if (fs.existsSync(merges_path)) { - events.emit('verbose', 'Found "merges/android" folder. Copying its contents into the android project.'); - sourceDirs.push(path.join('merges', 'android')); - } - - var targetDir = path.relative(cordovaProject.root, destinations.www); - events.emit( - 'verbose', 'Merging and updating files from [' + sourceDirs.join(', ') + '] to ' + targetDir); - FileUpdater.mergeAndUpdateDir( - sourceDirs, targetDir, { rootDir: cordovaProject.root }, logFileOp); -} - -/** - * Cleans all files from the platform 'www' directory. - */ -function cleanWww (projectRoot, locations) { - var targetDir = path.relative(projectRoot, locations.www); - events.emit('verbose', 'Cleaning ' + targetDir); - - // No source paths are specified, so mergeAndUpdateDir() will clear the target directory. - FileUpdater.mergeAndUpdateDir( - [], targetDir, { rootDir: projectRoot, all: true }, logFileOp); -} - -/** - * Updates project structure and AndroidManifest according to project's configuration. - * - * @param {ConfigParser} platformConfig A project's configuration that will - * be used to update project - * @param {Object} locations A map of locations for this platform - */ -function updateProjectAccordingTo (platformConfig, locations) { - // Update app name by editing res/values/strings.xml - var strings = xmlHelpers.parseElementtreeSync(locations.strings); - - var name = platformConfig.name(); - strings.find('string[@name="app_name"]').text = name.replace(/'/g, '\\\''); - - var shortName = platformConfig.shortName && platformConfig.shortName(); - if (shortName && shortName !== name) { - strings.find('string[@name="launcher_name"]').text = shortName.replace(/'/g, '\\\''); - } - - fs.writeFileSync(locations.strings, strings.write({ indent: 4 }), 'utf-8'); - events.emit('verbose', 'Wrote out android application name "' + name + '" to ' + locations.strings); - - // Java packages cannot support dashes - var androidPkgName = (platformConfig.android_packageName() || platformConfig.packageName()).replace(/-/g, '_'); - - var manifest = new AndroidManifest(locations.manifest); - var manifestId = manifest.getPackageId(); - - manifest.getActivity() - .setOrientation(platformConfig.getPreference('orientation')) - .setLaunchMode(findAndroidLaunchModePreference(platformConfig)); - - manifest.setVersionName(platformConfig.version()) - .setVersionCode(platformConfig.android_versionCode() || default_versionCode(platformConfig.version())) - .setPackageId(androidPkgName) - .write(); - - // Java file paths shouldn't be hard coded - const javaDirectory = path.join(locations.javaSrc, manifestId.replace(/\./g, '/')); - const javaPattern = /\.java$/; - const java_files = utils.scanDirectory(javaDirectory, javaPattern, true).filter(function (f) { - return utils.grep(f, /extends\s+CordovaActivity/g) !== null; - }); - - if (java_files.length === 0) { - throw new CordovaError('No Java files found that extend CordovaActivity.'); - } else if (java_files.length > 1) { - events.emit('log', 'Multiple candidate Java files that extend CordovaActivity found. Guessing at the first one, ' + java_files[0]); - } - - const destFile = java_files[0]; - - // var destFile = path.join(locations.root, 'app', 'src', 'main', 'java', androidPkgName.replace(/\./g, '/'), path.basename(java_files[0])); - // fs.ensureDirSync(path.dirname(destFile)); - // events.emit('verbose', java_files[0]); - // events.emit('verbose', destFile); - // console.log(locations); - // fs.copySync(java_files[0], destFile); - utils.replaceFileContents(destFile, /package [\w.]*;/, 'package ' + androidPkgName + ';'); - events.emit('verbose', 'Wrote out Android package name "' + androidPkgName + '" to ' + destFile); - - var removeOrigPkg = checkReqs.isWindows() || checkReqs.isDarwin() - ? manifestId.toUpperCase() !== androidPkgName.toUpperCase() - : manifestId !== androidPkgName; - - if (removeOrigPkg) { - // If package was name changed we need to remove old java with main activity - fs.removeSync(java_files[0]); - // remove any empty directories - var currentDir = path.dirname(java_files[0]); - var sourcesRoot = path.resolve(locations.root, 'src'); - while (currentDir !== sourcesRoot) { - if (fs.existsSync(currentDir) && fs.readdirSync(currentDir).length === 0) { - fs.rmdirSync(currentDir); - currentDir = path.resolve(currentDir, '..'); - } else { - break; - } - } - } -} - -// Consturct the default value for versionCode as -// PATCH + MINOR * 100 + MAJOR * 10000 -// see http://developer.android.com/tools/publishing/versioning.html -function default_versionCode (version) { - var nums = version.split('-')[0].split('.'); - var versionCode = 0; - if (+nums[0]) { - versionCode += +nums[0] * 10000; - } - if (+nums[1]) { - versionCode += +nums[1] * 100; - } - if (+nums[2]) { - versionCode += +nums[2]; - } - - events.emit('verbose', 'android-versionCode not found in config.xml. Generating a code based on version in config.xml (' + version + '): ' + versionCode); - return versionCode; -} - -function getImageResourcePath (resourcesDir, type, density, name, sourceName) { - if (/\.9\.png$/.test(sourceName)) { - name = name.replace(/\.png$/, '.9.png'); - } - var resourcePath = path.join(resourcesDir, (density ? type + '-' + density : type), name); - return resourcePath; -} - -function getAdaptiveImageResourcePath (resourcesDir, type, density, name, sourceName) { - if (/\.9\.png$/.test(sourceName)) { - name = name.replace(/\.png$/, '.9.png'); - } - var resourcePath = path.join(resourcesDir, (density ? type + '-' + density + '-v26' : type), name); - return resourcePath; -} - -function updateSplashes (cordovaProject, platformResourcesDir) { - var resources = cordovaProject.projectConfig.getSplashScreens('android'); - - // if there are "splash" elements in config.xml - if (resources.length === 0) { - events.emit('verbose', 'This app does not have splash screens defined'); - return; - } - - var resourceMap = mapImageResources(cordovaProject.root, platformResourcesDir, 'drawable', 'screen.png'); - - var hadMdpi = false; - resources.forEach(function (resource) { - if (!resource.density) { - return; - } - if (resource.density === 'mdpi') { - hadMdpi = true; - } - var targetPath = getImageResourcePath( - platformResourcesDir, 'drawable', resource.density, 'screen.png', path.basename(resource.src)); - resourceMap[targetPath] = resource.src; - }); - - // There's no "default" drawable, so assume default == mdpi. - if (!hadMdpi && resources.defaultResource) { - var targetPath = getImageResourcePath( - platformResourcesDir, 'drawable', 'mdpi', 'screen.png', path.basename(resources.defaultResource.src)); - resourceMap[targetPath] = resources.defaultResource.src; - } - - events.emit('verbose', 'Updating splash screens at ' + platformResourcesDir); - FileUpdater.updatePaths( - resourceMap, { rootDir: cordovaProject.root }, logFileOp); -} - -function cleanSplashes (projectRoot, projectConfig, platformResourcesDir) { - var resources = projectConfig.getSplashScreens('android'); - if (resources.length > 0) { - var resourceMap = mapImageResources(projectRoot, platformResourcesDir, 'drawable', 'screen.png'); - events.emit('verbose', 'Cleaning splash screens at ' + platformResourcesDir); - - // No source paths are specified in the map, so updatePaths() will delete the target files. - FileUpdater.updatePaths( - resourceMap, { rootDir: projectRoot, all: true }, logFileOp); - } -} - -function updateIcons (cordovaProject, platformResourcesDir) { - const icons = cordovaProject.projectConfig.getIcons('android'); - - // Skip if there are no app defined icons in config.xml - if (icons.length === 0) { - events.emit('verbose', 'This app does not have launcher icons defined'); - return; - } - - // 1. loop icons determin if there is an error in the setup. - // 2. during initial loop, also setup for legacy support. - const errorMissingAttributes = []; - const errorLegacyIconNeeded = []; - let hasAdaptive = false; - icons.forEach((icon, key) => { - if ( - (icon.background && !icon.foreground) || - (!icon.background && icon.foreground) || - (!icon.background && !icon.foreground && !icon.src) - ) { - errorMissingAttributes.push(icon.density ? icon.density : 'size=' + (icon.height || icon.width)); - } - - if (icon.foreground) { - hasAdaptive = true; - - if ( - !icon.src && - ( - icon.foreground.startsWith('@color') || - path.extname(path.basename(icon.foreground)) === '.xml' - ) - ) { - errorLegacyIconNeeded.push(icon.density ? icon.density : 'size=' + (icon.height || icon.width)); - } else if (!icon.src) { - icons[key].src = icon.foreground; - } - } - }); - - const errorMessage = []; - if (errorMissingAttributes.length > 0) { - errorMessage.push('One of the following attributes are set but missing the other for the density type: ' + errorMissingAttributes.join(', ') + '. Please ensure that all require attributes are defined.'); - } - - if (errorLegacyIconNeeded.length > 0) { - errorMessage.push('For the following icons with the density of: ' + errorLegacyIconNeeded.join(', ') + ', adaptive foreground with a defined color or vector can not be used as a standard fallback icon for older Android devices. To support older Android environments, please provide a value for the src attribute.'); - } - - if (errorMessage.length > 0) { - throw new CordovaError(errorMessage.join(' ')); - } - - let resourceMap = Object.assign( - {}, - mapImageResources(cordovaProject.root, platformResourcesDir, 'mipmap', 'ic_launcher.png'), - mapImageResources(cordovaProject.root, platformResourcesDir, 'mipmap', 'ic_launcher_foreground.png'), - mapImageResources(cordovaProject.root, platformResourcesDir, 'mipmap', 'ic_launcher_background.png'), - mapImageResources(cordovaProject.root, platformResourcesDir, 'mipmap', 'ic_launcher_foreground.xml'), - mapImageResources(cordovaProject.root, platformResourcesDir, 'mipmap', 'ic_launcher_background.xml'), - mapImageResources(cordovaProject.root, platformResourcesDir, 'mipmap', 'ic_launcher.xml') - ); - - const preparedIcons = prepareIcons(icons); - - if (hasAdaptive) { - resourceMap = updateIconResourceForAdaptive(preparedIcons, resourceMap, platformResourcesDir); - } - - resourceMap = updateIconResourceForLegacy(preparedIcons, resourceMap, platformResourcesDir); - - events.emit('verbose', 'Updating icons at ' + platformResourcesDir); - FileUpdater.updatePaths(resourceMap, { rootDir: cordovaProject.root }, logFileOp); -} - -function updateIconResourceForAdaptive (preparedIcons, resourceMap, platformResourcesDir) { - const android_icons = preparedIcons.android_icons; - const default_icon = preparedIcons.default_icon; - - // The source paths for icons and splashes are relative to - // project's config.xml location, so we use it as base path. - let background; - let foreground; - let targetPathBackground; - let targetPathForeground; - - for (const density in android_icons) { - let backgroundVal = '@mipmap/ic_launcher_background'; - let foregroundVal = '@mipmap/ic_launcher_foreground'; - - background = android_icons[density].background; - foreground = android_icons[density].foreground; - - if (!background || !foreground) { - // This icon isn't an adaptive icon, so skip it - continue; - } - - if (background.startsWith('@color')) { - // Colors Use Case - backgroundVal = background; // Example: @color/background_foobar_1 - } else if (path.extname(path.basename(background)) === '.xml') { - // Vector Use Case - targetPathBackground = getAdaptiveImageResourcePath(platformResourcesDir, 'mipmap', density, 'ic_launcher_background.xml', path.basename(android_icons[density].background)); - resourceMap[targetPathBackground] = android_icons[density].background; - } else if (path.extname(path.basename(background)) === '.png') { - // Images Use Case - targetPathBackground = getAdaptiveImageResourcePath(platformResourcesDir, 'mipmap', density, 'ic_launcher_background.png', path.basename(android_icons[density].background)); - resourceMap[targetPathBackground] = android_icons[density].background; - } - - if (foreground.startsWith('@color')) { - // Colors Use Case - foregroundVal = foreground; - } else if (path.extname(path.basename(foreground)) === '.xml') { - // Vector Use Case - targetPathForeground = getAdaptiveImageResourcePath(platformResourcesDir, 'mipmap', density, 'ic_launcher_foreground.xml', path.basename(android_icons[density].foreground)); - resourceMap[targetPathForeground] = android_icons[density].foreground; - } else if (path.extname(path.basename(foreground)) === '.png') { - // Images Use Case - targetPathForeground = getAdaptiveImageResourcePath(platformResourcesDir, 'mipmap', density, 'ic_launcher_foreground.png', path.basename(android_icons[density].foreground)); - resourceMap[targetPathForeground] = android_icons[density].foreground; - } - - // create an XML for DPI and set color - const icLauncherTemplate = `<?xml version="1.0" encoding="utf-8"?> -<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android"> - <background android:drawable="` + backgroundVal + `" /> - <foreground android:drawable="` + foregroundVal + `" /> -</adaptive-icon>`; - - const launcherXmlPath = path.join(platformResourcesDir, 'mipmap-' + density + '-v26', 'ic_launcher.xml'); - - // Remove the XML from the resourceMap so the file does not get removed. - delete resourceMap[launcherXmlPath]; - - fs.writeFileSync(path.resolve(launcherXmlPath), icLauncherTemplate); - } - - // There's no "default" drawable, so assume default == mdpi. - if (default_icon && !android_icons.mdpi) { - let defaultTargetPathBackground; - let defaultTargetPathForeground; - - if (background.startsWith('@color')) { - // Colors Use Case - targetPathBackground = default_icon.background; - } else if (path.extname(path.basename(background)) === '.xml') { - // Vector Use Case - defaultTargetPathBackground = getAdaptiveImageResourcePath(platformResourcesDir, 'mipmap', 'mdpi', 'ic_launcher_background.xml', path.basename(default_icon.background)); - resourceMap[defaultTargetPathBackground] = default_icon.background; - } else if (path.extname(path.basename(background)) === '.png') { - // Images Use Case - defaultTargetPathBackground = getAdaptiveImageResourcePath(platformResourcesDir, 'mipmap', 'mdpi', 'ic_launcher_background.png', path.basename(default_icon.background)); - resourceMap[defaultTargetPathBackground] = default_icon.background; - } - - if (foreground.startsWith('@color')) { - // Colors Use Case - targetPathForeground = default_icon.foreground; - } else if (path.extname(path.basename(foreground)) === '.xml') { - // Vector Use Case - defaultTargetPathForeground = getAdaptiveImageResourcePath(platformResourcesDir, 'mipmap', 'mdpi', 'ic_launcher_foreground.xml', path.basename(default_icon.foreground)); - resourceMap[defaultTargetPathForeground] = default_icon.foreground; - } else if (path.extname(path.basename(foreground)) === '.png') { - // Images Use Case - defaultTargetPathForeground = getAdaptiveImageResourcePath(platformResourcesDir, 'mipmap', 'mdpi', 'ic_launcher_foreground.png', path.basename(default_icon.foreground)); - resourceMap[defaultTargetPathForeground] = default_icon.foreground; - } - } - - return resourceMap; -} - -function updateIconResourceForLegacy (preparedIcons, resourceMap, platformResourcesDir) { - const android_icons = preparedIcons.android_icons; - const default_icon = preparedIcons.default_icon; - - // The source paths for icons and splashes are relative to - // project's config.xml location, so we use it as base path. - for (var density in android_icons) { - var targetPath = getImageResourcePath(platformResourcesDir, 'mipmap', density, 'ic_launcher.png', path.basename(android_icons[density].src)); - resourceMap[targetPath] = android_icons[density].src; - } - - // There's no "default" drawable, so assume default == mdpi. - if (default_icon && !android_icons.mdpi) { - var defaultTargetPath = getImageResourcePath(platformResourcesDir, 'mipmap', 'mdpi', 'ic_launcher.png', path.basename(default_icon.src)); - resourceMap[defaultTargetPath] = default_icon.src; - } - - return resourceMap; -} - -function prepareIcons (icons) { - // http://developer.android.com/design/style/iconography.html - const SIZE_TO_DENSITY_MAP = { - 36: 'ldpi', - 48: 'mdpi', - 72: 'hdpi', - 96: 'xhdpi', - 144: 'xxhdpi', - 192: 'xxxhdpi' - }; - - const android_icons = {}; - let default_icon; - - // find the best matching icon for a given density or size - // @output android_icons - var parseIcon = function (icon, icon_size) { - // do I have a platform icon for that density already - var density = icon.density || SIZE_TO_DENSITY_MAP[icon_size]; - if (!density) { - // invalid icon defition ( or unsupported size) - return; - } - var previous = android_icons[density]; - if (previous && previous.platform) { - return; - } - android_icons[density] = icon; - }; - - // iterate over all icon elements to find the default icon and call parseIcon - for (var i = 0; i < icons.length; i++) { - var icon = icons[i]; - var size = icon.width; - - if (!size) { - size = icon.height; - } - - if (!size && !icon.density) { - if (default_icon) { - const found = {}; - const favor = {}; - - // populating found icon. - if (icon.background && icon.foreground) { - found.background = icon.background; - found.foreground = icon.foreground; - } - if (icon.src) { - found.src = icon.src; - } - - if (default_icon.background && default_icon.foreground) { - favor.background = default_icon.background; - favor.foreground = default_icon.foreground; - } - if (default_icon.src) { - favor.src = default_icon.src; - } - - events.emit('verbose', 'Found extra default icon: ' + JSON.stringify(found) + ' and ignoring in favor of ' + JSON.stringify(favor) + '.'); - } else { - default_icon = icon; - } - } else { - parseIcon(icon, size); - } - } - - return { - android_icons: android_icons, - default_icon: default_icon - }; -} - -function cleanIcons (projectRoot, projectConfig, platformResourcesDir) { - var icons = projectConfig.getIcons('android'); - - // Skip if there are no app defined icons in config.xml - if (icons.length === 0) { - events.emit('verbose', 'This app does not have launcher icons defined'); - return; - } - - const resourceMap = Object.assign( - {}, - mapImageResources(projectRoot, platformResourcesDir, 'mipmap', 'ic_launcher.png'), - mapImageResources(projectRoot, platformResourcesDir, 'mipmap', 'ic_launcher_foreground.png'), - mapImageResources(projectRoot, platformResourcesDir, 'mipmap', 'ic_launcher_background.png'), - mapImageResources(projectRoot, platformResourcesDir, 'mipmap', 'ic_launcher_foreground.xml'), - mapImageResources(projectRoot, platformResourcesDir, 'mipmap', 'ic_launcher_background.xml'), - mapImageResources(projectRoot, platformResourcesDir, 'mipmap', 'ic_launcher.xml') - ); - - events.emit('verbose', 'Cleaning icons at ' + platformResourcesDir); - - // No source paths are specified in the map, so updatePaths() will delete the target files. - FileUpdater.updatePaths(resourceMap, { rootDir: projectRoot, all: true }, logFileOp); -} - -/** - * Gets a map containing resources of a specified name from all drawable folders in a directory. - */ -function mapImageResources (rootDir, subDir, type, resourceName) { - const pathMap = {}; - const pattern = new RegExp(type + '+-.+'); - utils.scanDirectory(path.join(rootDir, subDir), pattern).forEach(function (drawableFolder) { - const imagePath = path.join(subDir, path.basename(drawableFolder), resourceName); - pathMap[imagePath] = null; - }); - return pathMap; -} - -function updateFileResources (cordovaProject, platformDir) { - var files = cordovaProject.projectConfig.getFileResources('android'); - - // if there are resource-file elements in config.xml - if (files.length === 0) { - events.emit('verbose', 'This app does not have additional resource files defined'); - return; - } - - var resourceMap = {}; - files.forEach(function (res) { - var targetPath = path.join(platformDir, res.target); - resourceMap[targetPath] = res.src; - }); - - events.emit('verbose', 'Updating resource files at ' + platformDir); - FileUpdater.updatePaths( - resourceMap, { rootDir: cordovaProject.root }, logFileOp); -} - -function cleanFileResources (projectRoot, projectConfig, platformDir) { - var files = projectConfig.getFileResources('android', true); - if (files.length > 0) { - events.emit('verbose', 'Cleaning resource files at ' + platformDir); - - var resourceMap = {}; - files.forEach(function (res) { - var filePath = path.join(platformDir, res.target); - resourceMap[filePath] = null; - }); - - FileUpdater.updatePaths( - resourceMap, { rootDir: projectRoot, all: true }, logFileOp); - } -} - -/** - * Gets and validates 'AndroidLaunchMode' prepference from config.xml. Returns - * preference value and warns if it doesn't seems to be valid - * - * @param {ConfigParser} platformConfig A configParser instance for - * platform. - * - * @return {String} Preference's value from config.xml or - * default value, if there is no such preference. The default value is - * 'singleTop' - */ -function findAndroidLaunchModePreference (platformConfig) { - var launchMode = platformConfig.getPreference('AndroidLaunchMode'); - if (!launchMode) { - // Return a default value - return 'singleTop'; - } - - var expectedValues = ['standard', 'singleTop', 'singleTask', 'singleInstance']; - var valid = expectedValues.indexOf(launchMode) >= 0; - if (!valid) { - // Note: warn, but leave the launch mode as developer wanted, in case the list of options changes in the future - events.emit('warn', 'Unrecognized value for AndroidLaunchMode preference: ' + - launchMode + '. Expected values are: ' + expectedValues.join(', ')); - } - - return launchMode; -} diff --git a/ionic/platforms/android/cordova/lib/retry.js b/ionic/platforms/android/cordova/lib/retry.js deleted file mode 100644 index 6ce8e818b85ee1750c53f09333e059dd73957bdf..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/lib/retry.js +++ /dev/null @@ -1,61 +0,0 @@ -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*/ - -'use strict'; - -var events = require('cordova-common').events; - -/* - * Retry a promise-returning function a number of times, propagating its - * results on success or throwing its error on a failed final attempt. - * - * @arg {Number} attemptsLeft - The number of times to retry the passed call. - * @arg {Function} promiseFunction - A function that returns a promise. - * @arg {...} - Arguments to pass to promiseFunction. - * - * @returns {Promise} - */ -module.exports.retryPromise = function (attemptsLeft, promiseFunction) { - // NOTE: - // get all trailing arguments, by skipping the first two (attemptsLeft and - // promiseFunction) because they shouldn't get passed to promiseFunction - var promiseFunctionArguments = Array.prototype.slice.call(arguments, 2); - - return promiseFunction.apply(undefined, promiseFunctionArguments).then( - // on success pass results through - function onFulfilled (value) { - return value; - }, - - // on rejection either retry, or throw the error - function onRejected (error) { - attemptsLeft -= 1; - - if (attemptsLeft < 1) { - throw error; - } - - events.emit('verbose', 'A retried call failed. Retrying ' + attemptsLeft + ' more time(s).'); - - // retry call self again with the same arguments, except attemptsLeft is now lower - var fullArguments = [attemptsLeft, promiseFunction].concat(promiseFunctionArguments); - return module.exports.retryPromise.apply(undefined, fullArguments); - } - ); -}; diff --git a/ionic/platforms/android/cordova/lib/run.js b/ionic/platforms/android/cordova/lib/run.js deleted file mode 100644 index 892e9b0ca30c9af83ab31155540b5ecb2b0876e0..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/lib/run.js +++ /dev/null @@ -1,137 +0,0 @@ -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*/ - -var path = require('path'); -var emulator = require('./emulator'); -var device = require('./device'); -var PackageType = require('./PackageType'); -const { CordovaError, events } = require('cordova-common'); - -function getInstallTarget (runOptions) { - var install_target; - if (runOptions.target) { - install_target = runOptions.target; - } else if (runOptions.device) { - install_target = '--device'; - } else if (runOptions.emulator) { - install_target = '--emulator'; - } - - return install_target; -} - -/** - * Runs the application on a device if available. If no device is found, it will - * use a started emulator. If no started emulators are found it will attempt - * to start an avd. If no avds are found it will error out. - * - * @param {Object} runOptions various run/build options. See Api.js build/run - * methods for reference. - * - * @return {Promise} - */ -module.exports.run = function (runOptions) { - runOptions = runOptions || {}; - - var self = this; - var install_target = getInstallTarget(runOptions); - - return Promise.resolve().then(function () { - if (!install_target) { - // no target given, deploy to device if available, otherwise use the emulator. - return device.list().then(function (device_list) { - if (device_list.length > 0) { - events.emit('warn', 'No target specified, deploying to device \'' + device_list[0] + '\'.'); - install_target = device_list[0]; - } else { - events.emit('warn', 'No target specified and no devices found, deploying to emulator'); - install_target = '--emulator'; - } - }); - } - }).then(function () { - if (install_target === '--device') { - return device.resolveTarget(null); - } else if (install_target === '--emulator') { - // Give preference to any already started emulators. Else, start one. - return emulator.list_started().then(function (started) { - return started && started.length > 0 ? started[0] : emulator.start(); - }).then(function (emulatorId) { - return emulator.resolveTarget(emulatorId); - }); - } - // They specified a specific device/emulator ID. - return device.list().then(function (devices) { - if (devices.indexOf(install_target) > -1) { - return device.resolveTarget(install_target); - } - return emulator.list_started().then(function (started_emulators) { - if (started_emulators.indexOf(install_target) > -1) { - return emulator.resolveTarget(install_target); - } - return emulator.list_images().then(function (avds) { - // if target emulator isn't started, then start it. - for (var avd in avds) { - if (avds[avd].name === install_target) { - return emulator.start(install_target).then(function (emulatorId) { - return emulator.resolveTarget(emulatorId); - }); - } - } - return Promise.reject(new CordovaError(`Target '${install_target}' not found, unable to run project`)); - }); - }); - }); - }).then(function (resolvedTarget) { - return new Promise((resolve) => { - const builder = require('./builders/builders').getBuilder(); - const buildOptions = require('./build').parseBuildOptions(runOptions, null, self.root); - - // Android app bundles cannot be deployed directly to the device - if (buildOptions.packageType === PackageType.BUNDLE) { - const packageTypeErrorMessage = 'Package type "bundle" is not supported during cordova run.'; - events.emit('error', packageTypeErrorMessage); - throw packageTypeErrorMessage; - } - - resolve(builder.fetchBuildResults(buildOptions.buildType, buildOptions.arch)); - }).then(function (buildResults) { - if (resolvedTarget && resolvedTarget.isEmulator) { - return emulator.wait_for_boot(resolvedTarget.target).then(function () { - return emulator.install(resolvedTarget, buildResults); - }); - } - - return device.install(resolvedTarget, buildResults); - }); - }); -}; - -module.exports.help = function () { - console.log('Usage: ' + path.relative(process.cwd(), process.argv[1]) + ' [options]'); - console.log('Build options :'); - console.log(' --debug : Builds project in debug mode'); - console.log(' --release : Builds project in release mode'); - console.log(' --nobuild : Runs the currently built project without recompiling'); - console.log('Deploy options :'); - console.log(' --device : Will deploy the built project to a device'); - console.log(' --emulator : Will deploy the built project to an emulator if one exists'); - console.log(' --target=<target_id> : Installs to the target with the specified id.'); - process.exit(0); -}; diff --git a/ionic/platforms/android/cordova/lib/start-emulator b/ionic/platforms/android/cordova/lib/start-emulator deleted file mode 100755 index 20c92b70b1589f7646999b862bc79df146a2dacb..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/lib/start-emulator +++ /dev/null @@ -1,38 +0,0 @@ -#!/usr/bin/env node - -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*/ - -var emulator = require('./emulator'); -var args = process.argv; - -var install_target; -if (args.length > 2) { - if (args[2].substring(0, 9) === '--target=') { - install_target = args[2].substring(9, args[2].length); - } else { - console.error('ERROR : argument \'' + args[2] + '\' not recognized.'); - process.exit(2); - } -} - -emulator.start(install_target).catch(function (err) { - console.error('ERROR: ' + err); - process.exit(2); -}); diff --git a/ionic/platforms/android/cordova/lib/start-emulator.bat b/ionic/platforms/android/cordova/lib/start-emulator.bat deleted file mode 100644 index 82c6f8908e888cbce90acdf30f6cce3989c7244c..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/lib/start-emulator.bat +++ /dev/null @@ -1,26 +0,0 @@ -:: Licensed to the Apache Software Foundation (ASF) under one -:: or more contributor license agreements. See the NOTICE file -:: distributed with this work for additional information -:: regarding copyright ownership. The ASF licenses this file -:: to you under the Apache License, Version 2.0 (the -:: "License"); you may not use this file except in compliance -:: with the License. You may obtain a copy of the License at -:: -:: http://www.apache.org/licenses/LICENSE-2.0 -:: -:: Unless required by applicable law or agreed to in writing, -:: software distributed under the License is distributed on an -:: "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -:: KIND, either express or implied. See the License for the -:: specific language governing permissions and limitations -:: under the License. - -@ECHO OFF -SET script_path="%~dp0start-emulator" -IF EXIST %script_path% ( - node %script_path% %* -) ELSE ( - ECHO. - ECHO ERROR: Could not find 'start-emulator' script in 'cordova\lib' folder, aborting...>&2 - EXIT /B 1 -) \ No newline at end of file diff --git a/ionic/platforms/android/cordova/lib/utils.js b/ionic/platforms/android/cordova/lib/utils.js deleted file mode 100644 index 760eda604fb6129572bdbb77c9ae29c946a59e6a..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/lib/utils.js +++ /dev/null @@ -1,97 +0,0 @@ -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*/ - -/* - Provides a set of utility methods, which can also be spied on during unit tests. -*/ - -// TODO: Perhaps this should live in cordova-common? - -const fs = require('fs-extra'); -const path = require('path'); - -/** - * Reads, searches, and replaces the found occurences with replacementString and then writes the file back out. - * A backup is not made. - * - * @param {string} file A file path to a readable & writable file - * @param {RegExp} searchRegex The search regex - * @param {string} replacementString The string to replace the found occurences - * @returns void - */ -exports.replaceFileContents = function (file, searchRegex, replacementString) { - let contents = fs.readFileSync(file).toString(); - contents = contents.replace(searchRegex, replacementString); - fs.writeFileSync(file, contents); -}; - -/** - * Reads a file and scans for regex. Returns the line of the first occurence or null if no occurences are found. - * - * @param {string} file A file path - * @param {RegExp} regex A search regex - * @returns string|null - */ -exports.grep = function (file, regex) { - const contents = fs.readFileSync(file).toString().replace(/\\r/g, '').split('\n'); - for (let i = 0; i < contents.length; i++) { - const line = contents[i]; - if (regex.test(line)) { - return line; - } - } - return null; -}; - -/** - * Scans directories and outputs a list of found paths that matches the regex - * - * @param {string} directory The starting directory - * @param {RegExp} regex The search regex - * @param {boolean} recursive Enables recursion - * @returns Array<string> - */ -exports.scanDirectory = function (directory, regex, recursive) { - let output = []; - - if (fs.existsSync(directory)) { - const items = fs.readdirSync(directory); - - for (let i = 0; i < items.length; i++) { - const item = items[i]; - const itemPath = path.join(directory, item); - const stats = fs.statSync(itemPath); - - if (regex.test(itemPath)) { - output.push(itemPath); - } - - if (stats.isDirectory()) { - if (recursive) { - output = output.concat(exports.scanDirectory(itemPath, regex, recursive)); - } else { - // Move onto the next item - continue; - } - } - } - } - - return output; -}; diff --git a/ionic/platforms/android/cordova/log b/ionic/platforms/android/cordova/log deleted file mode 100755 index 216c8d7675d7c19ea9275c53712231ba5f8b2e44..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/log +++ /dev/null @@ -1,36 +0,0 @@ -#!/usr/bin/env node - -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*/ - -var log = require('./lib/log'); -var reqs = require('./lib/check_reqs'); -var args = process.argv; - -// Usage support for when args are given -if (args.length > 2) { - log.help(); -} else { - reqs.run().then(function () { - return log.run(); - }, function (err) { - console.error('ERROR: ' + err); - process.exit(2); - }); -} diff --git a/ionic/platforms/android/cordova/log.bat b/ionic/platforms/android/cordova/log.bat deleted file mode 100644 index 4b2b434e5787725a292d6d11c9e181232dbc1646..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/log.bat +++ /dev/null @@ -1,26 +0,0 @@ -:: Licensed to the Apache Software Foundation (ASF) under one -:: or more contributor license agreements. See the NOTICE file -:: distributed with this work for additional information -:: regarding copyright ownership. The ASF licenses this file -:: to you under the Apache License, Version 2.0 (the -:: "License"); you may not use this file except in compliance -:: with the License. You may obtain a copy of the License at -:: -:: http://www.apache.org/licenses/LICENSE-2.0 -:: -:: Unless required by applicable law or agreed to in writing, -:: software distributed under the License is distributed on an -:: "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -:: KIND, either express or implied. See the License for the -:: specific language governing permissions and limitations -:: under the License. - -@ECHO OFF -SET script_path="%~dp0log" -IF EXIST %script_path% ( - node %script_path% %* -) ELSE ( - ECHO. - ECHO ERROR: Could not find 'log' script in 'cordova' folder, aborting...>&2 - EXIT /B 1 -) \ No newline at end of file diff --git a/ionic/platforms/android/cordova/loggingHelper.js b/ionic/platforms/android/cordova/loggingHelper.js deleted file mode 100644 index 32b2ee0ad13b60a35e824acfbb9588905eb2c7cb..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/loggingHelper.js +++ /dev/null @@ -1,18 +0,0 @@ -var CordovaLogger = require('cordova-common').CordovaLogger; - -module.exports = { - adjustLoggerLevel: function (opts) { - if (opts instanceof Array) { - opts.silent = opts.indexOf('--silent') !== -1; - opts.verbose = opts.indexOf('--verbose') !== -1; - } - - if (opts.silent) { - CordovaLogger.get().setLevel('error'); - } - - if (opts.verbose) { - CordovaLogger.get().setLevel('verbose'); - } - } -}; diff --git a/ionic/platforms/android/cordova/node_modules/.bin/node-which b/ionic/platforms/android/cordova/node_modules/.bin/node-which deleted file mode 120000 index 6f8415ec58dffcb931a5808d19e3c39a0430f581..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/.bin/node-which +++ /dev/null @@ -1 +0,0 @@ -../which/bin/node-which \ No newline at end of file diff --git a/ionic/platforms/android/cordova/node_modules/cross-spawn/CHANGELOG.md b/ionic/platforms/android/cordova/node_modules/cross-spawn/CHANGELOG.md deleted file mode 100644 index d07c9e5c310e6968e983346557288e96c085a082..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/cross-spawn/CHANGELOG.md +++ /dev/null @@ -1,130 +0,0 @@ -# Changelog - -All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. - -### [7.0.3](https://github.com/moxystudio/node-cross-spawn/compare/v7.0.2...v7.0.3) (2020-05-25) - - -### Bug Fixes - -* detect path key based on correct environment ([#133](https://github.com/moxystudio/node-cross-spawn/issues/133)) ([159e7e9](https://github.com/moxystudio/node-cross-spawn/commit/159e7e9785e57451cba034ae51719f97135074ae)) - -### [7.0.2](https://github.com/moxystudio/node-cross-spawn/compare/v7.0.1...v7.0.2) (2020-04-04) - - -### Bug Fixes - -* fix worker threads in Node >=11.10.0 ([#132](https://github.com/moxystudio/node-cross-spawn/issues/132)) ([6c5b4f0](https://github.com/moxystudio/node-cross-spawn/commit/6c5b4f015814a6c4f6b33230dfd1a860aedc0aaf)) - -### [7.0.1](https://github.com/moxystudio/node-cross-spawn/compare/v7.0.0...v7.0.1) (2019-10-07) - - -### Bug Fixes - -* **core:** support worker threads ([#127](https://github.com/moxystudio/node-cross-spawn/issues/127)) ([cfd49c9](https://github.com/moxystudio/node-cross-spawn/commit/cfd49c9)) - -## [7.0.0](https://github.com/moxystudio/node-cross-spawn/compare/v6.0.5...v7.0.0) (2019-09-03) - - -### ⚠ BREAKING CHANGES - -* drop support for Node.js < 8 - -* drop support for versions below Node.js 8 ([#125](https://github.com/moxystudio/node-cross-spawn/issues/125)) ([16feb53](https://github.com/moxystudio/node-cross-spawn/commit/16feb53)) - -<a name="6.0.5"></a> -## [6.0.5](https://github.com/moxystudio/node-cross-spawn/compare/v6.0.4...v6.0.5) (2018-03-02) - - -### Bug Fixes - -* avoid using deprecated Buffer constructor ([#94](https://github.com/moxystudio/node-cross-spawn/issues/94)) ([d5770df](https://github.com/moxystudio/node-cross-spawn/commit/d5770df)), closes [/nodejs.org/api/deprecations.html#deprecations_dep0005](https://github.com//nodejs.org/api/deprecations.html/issues/deprecations_dep0005) - - - -<a name="6.0.4"></a> -## [6.0.4](https://github.com/moxystudio/node-cross-spawn/compare/v6.0.3...v6.0.4) (2018-01-31) - - -### Bug Fixes - -* fix paths being incorrectly normalized on unix ([06ee3c6](https://github.com/moxystudio/node-cross-spawn/commit/06ee3c6)), closes [#90](https://github.com/moxystudio/node-cross-spawn/issues/90) - - - -<a name="6.0.3"></a> -## [6.0.3](https://github.com/moxystudio/node-cross-spawn/compare/v6.0.2...v6.0.3) (2018-01-23) - - - -<a name="6.0.2"></a> -## [6.0.2](https://github.com/moxystudio/node-cross-spawn/compare/v6.0.1...v6.0.2) (2018-01-23) - - - -<a name="6.0.1"></a> -## [6.0.1](https://github.com/moxystudio/node-cross-spawn/compare/v6.0.0...v6.0.1) (2018-01-23) - - - -<a name="6.0.0"></a> -# [6.0.0](https://github.com/moxystudio/node-cross-spawn/compare/5.1.0...6.0.0) (2018-01-23) - - -### Bug Fixes - -* fix certain arguments not being correctly escaped or causing batch syntax error ([900cf10](https://github.com/moxystudio/node-cross-spawn/commit/900cf10)), closes [#82](https://github.com/moxystudio/node-cross-spawn/issues/82) [#51](https://github.com/moxystudio/node-cross-spawn/issues/51) -* fix commands as posix relatixe paths not working correctly, e.g.: `./my-command` ([900cf10](https://github.com/moxystudio/node-cross-spawn/commit/900cf10)) -* fix `options` argument being mutated ([900cf10](https://github.com/moxystudio/node-cross-spawn/commit/900cf10)) -* fix commands resolution when PATH was actually Path ([900cf10](https://github.com/moxystudio/node-cross-spawn/commit/900cf10)) - - -### Features - -* improve compliance with node's ENOENT errors ([900cf10](https://github.com/moxystudio/node-cross-spawn/commit/900cf10)) -* improve detection of node's shell option support ([900cf10](https://github.com/moxystudio/node-cross-spawn/commit/900cf10)) - - -### Chores - -* upgrade tooling -* upgrate project to es6 (node v4) - - -### BREAKING CHANGES - -* remove support for older nodejs versions, only `node >= 4` is supported - - -<a name="5.1.0"></a> -## [5.1.0](https://github.com/moxystudio/node-cross-spawn/compare/5.0.1...5.1.0) (2017-02-26) - - -### Bug Fixes - -* fix `options.shell` support for NodeJS [v4.8](https://github.com/nodejs/node/blob/master/doc/changelogs/CHANGELOG_V4.md#4.8.0) - - -<a name="5.0.1"></a> -## [5.0.1](https://github.com/moxystudio/node-cross-spawn/compare/5.0.0...5.0.1) (2016-11-04) - - -### Bug Fixes - -* fix `options.shell` support for NodeJS v7 - - -<a name="5.0.0"></a> -# [5.0.0](https://github.com/moxystudio/node-cross-spawn/compare/4.0.2...5.0.0) (2016-10-30) - - -## Features - -* add support for `options.shell` -* improve parsing of shebangs by using [`shebang-command`](https://github.com/kevva/shebang-command) module - - -## Chores - -* refactor some code to make it more clear -* update README caveats diff --git a/ionic/platforms/android/cordova/node_modules/cross-spawn/LICENSE b/ionic/platforms/android/cordova/node_modules/cross-spawn/LICENSE deleted file mode 100644 index 8407b9a30f51b0da9eaac366bdde18d900e951ba..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/cross-spawn/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2018 Made With MOXY Lda <hello@moxy.studio> - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/ionic/platforms/android/cordova/node_modules/cross-spawn/README.md b/ionic/platforms/android/cordova/node_modules/cross-spawn/README.md deleted file mode 100644 index c4a4da8447fb5b16972f9462cef037be3aa1d813..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/cross-spawn/README.md +++ /dev/null @@ -1,96 +0,0 @@ -# cross-spawn - -[![NPM version][npm-image]][npm-url] [![Downloads][downloads-image]][npm-url] [![Build Status][travis-image]][travis-url] [![Build status][appveyor-image]][appveyor-url] [![Coverage Status][codecov-image]][codecov-url] [![Dependency status][david-dm-image]][david-dm-url] [![Dev Dependency status][david-dm-dev-image]][david-dm-dev-url] - -[npm-url]:https://npmjs.org/package/cross-spawn -[downloads-image]:https://img.shields.io/npm/dm/cross-spawn.svg -[npm-image]:https://img.shields.io/npm/v/cross-spawn.svg -[travis-url]:https://travis-ci.org/moxystudio/node-cross-spawn -[travis-image]:https://img.shields.io/travis/moxystudio/node-cross-spawn/master.svg -[appveyor-url]:https://ci.appveyor.com/project/satazor/node-cross-spawn -[appveyor-image]:https://img.shields.io/appveyor/ci/satazor/node-cross-spawn/master.svg -[codecov-url]:https://codecov.io/gh/moxystudio/node-cross-spawn -[codecov-image]:https://img.shields.io/codecov/c/github/moxystudio/node-cross-spawn/master.svg -[david-dm-url]:https://david-dm.org/moxystudio/node-cross-spawn -[david-dm-image]:https://img.shields.io/david/moxystudio/node-cross-spawn.svg -[david-dm-dev-url]:https://david-dm.org/moxystudio/node-cross-spawn?type=dev -[david-dm-dev-image]:https://img.shields.io/david/dev/moxystudio/node-cross-spawn.svg - -A cross platform solution to node's spawn and spawnSync. - - -## Installation - -Node.js version 8 and up: -`$ npm install cross-spawn` - -Node.js version 7 and under: -`$ npm install cross-spawn@6` - -## Why - -Node has issues when using spawn on Windows: - -- It ignores [PATHEXT](https://github.com/joyent/node/issues/2318) -- It does not support [shebangs](https://en.wikipedia.org/wiki/Shebang_(Unix)) -- Has problems running commands with [spaces](https://github.com/nodejs/node/issues/7367) -- Has problems running commands with posix relative paths (e.g.: `./my-folder/my-executable`) -- Has an [issue](https://github.com/moxystudio/node-cross-spawn/issues/82) with command shims (files in `node_modules/.bin/`), where arguments with quotes and parenthesis would result in [invalid syntax error](https://github.com/moxystudio/node-cross-spawn/blob/e77b8f22a416db46b6196767bcd35601d7e11d54/test/index.test.js#L149) -- No `options.shell` support on node `<v4.8` - -All these issues are handled correctly by `cross-spawn`. -There are some known modules, such as [win-spawn](https://github.com/ForbesLindesay/win-spawn), that try to solve this but they are either broken or provide faulty escaping of shell arguments. - - -## Usage - -Exactly the same way as node's [`spawn`](https://nodejs.org/api/child_process.html#child_process_child_process_spawn_command_args_options) or [`spawnSync`](https://nodejs.org/api/child_process.html#child_process_child_process_spawnsync_command_args_options), so it's a drop in replacement. - - -```js -const spawn = require('cross-spawn'); - -// Spawn NPM asynchronously -const child = spawn('npm', ['list', '-g', '-depth', '0'], { stdio: 'inherit' }); - -// Spawn NPM synchronously -const result = spawn.sync('npm', ['list', '-g', '-depth', '0'], { stdio: 'inherit' }); -``` - - -## Caveats - -### Using `options.shell` as an alternative to `cross-spawn` - -Starting from node `v4.8`, `spawn` has a `shell` option that allows you run commands from within a shell. This new option solves -the [PATHEXT](https://github.com/joyent/node/issues/2318) issue but: - -- It's not supported in node `<v4.8` -- You must manually escape the command and arguments which is very error prone, specially when passing user input -- There are a lot of other unresolved issues from the [Why](#why) section that you must take into account - -If you are using the `shell` option to spawn a command in a cross platform way, consider using `cross-spawn` instead. You have been warned. - -### `options.shell` support - -While `cross-spawn` adds support for `options.shell` in node `<v4.8`, all of its enhancements are disabled. - -This mimics the Node.js behavior. More specifically, the command and its arguments will not be automatically escaped nor shebang support will be offered. This is by design because if you are using `options.shell` you are probably targeting a specific platform anyway and you don't want things to get into your way. - -### Shebangs support - -While `cross-spawn` handles shebangs on Windows, its support is limited. More specifically, it just supports `#!/usr/bin/env <program>` where `<program>` must not contain any arguments. -If you would like to have the shebang support improved, feel free to contribute via a pull-request. - -Remember to always test your code on Windows! - - -## Tests - -`$ npm test` -`$ npm test -- --watch` during development - - -## License - -Released under the [MIT License](https://www.opensource.org/licenses/mit-license.php). diff --git a/ionic/platforms/android/cordova/node_modules/cross-spawn/index.js b/ionic/platforms/android/cordova/node_modules/cross-spawn/index.js deleted file mode 100644 index 5509742ca9fa8f500a66e6e7195037a7c1d5e49e..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/cross-spawn/index.js +++ /dev/null @@ -1,39 +0,0 @@ -'use strict'; - -const cp = require('child_process'); -const parse = require('./lib/parse'); -const enoent = require('./lib/enoent'); - -function spawn(command, args, options) { - // Parse the arguments - const parsed = parse(command, args, options); - - // Spawn the child process - const spawned = cp.spawn(parsed.command, parsed.args, parsed.options); - - // Hook into child process "exit" event to emit an error if the command - // does not exists, see: https://github.com/IndigoUnited/node-cross-spawn/issues/16 - enoent.hookChildProcess(spawned, parsed); - - return spawned; -} - -function spawnSync(command, args, options) { - // Parse the arguments - const parsed = parse(command, args, options); - - // Spawn the child process - const result = cp.spawnSync(parsed.command, parsed.args, parsed.options); - - // Analyze if the command does not exist, see: https://github.com/IndigoUnited/node-cross-spawn/issues/16 - result.error = result.error || enoent.verifyENOENTSync(result.status, parsed); - - return result; -} - -module.exports = spawn; -module.exports.spawn = spawn; -module.exports.sync = spawnSync; - -module.exports._parse = parse; -module.exports._enoent = enoent; diff --git a/ionic/platforms/android/cordova/node_modules/cross-spawn/lib/enoent.js b/ionic/platforms/android/cordova/node_modules/cross-spawn/lib/enoent.js deleted file mode 100644 index 14df9b623d0a203e124a95dae7c2c53390aa7a2f..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/cross-spawn/lib/enoent.js +++ /dev/null @@ -1,59 +0,0 @@ -'use strict'; - -const isWin = process.platform === 'win32'; - -function notFoundError(original, syscall) { - return Object.assign(new Error(`${syscall} ${original.command} ENOENT`), { - code: 'ENOENT', - errno: 'ENOENT', - syscall: `${syscall} ${original.command}`, - path: original.command, - spawnargs: original.args, - }); -} - -function hookChildProcess(cp, parsed) { - if (!isWin) { - return; - } - - const originalEmit = cp.emit; - - cp.emit = function (name, arg1) { - // If emitting "exit" event and exit code is 1, we need to check if - // the command exists and emit an "error" instead - // See https://github.com/IndigoUnited/node-cross-spawn/issues/16 - if (name === 'exit') { - const err = verifyENOENT(arg1, parsed, 'spawn'); - - if (err) { - return originalEmit.call(cp, 'error', err); - } - } - - return originalEmit.apply(cp, arguments); // eslint-disable-line prefer-rest-params - }; -} - -function verifyENOENT(status, parsed) { - if (isWin && status === 1 && !parsed.file) { - return notFoundError(parsed.original, 'spawn'); - } - - return null; -} - -function verifyENOENTSync(status, parsed) { - if (isWin && status === 1 && !parsed.file) { - return notFoundError(parsed.original, 'spawnSync'); - } - - return null; -} - -module.exports = { - hookChildProcess, - verifyENOENT, - verifyENOENTSync, - notFoundError, -}; diff --git a/ionic/platforms/android/cordova/node_modules/cross-spawn/lib/parse.js b/ionic/platforms/android/cordova/node_modules/cross-spawn/lib/parse.js deleted file mode 100644 index 0129d74774a8a08d8c5e92c2d602114e590d8db8..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/cross-spawn/lib/parse.js +++ /dev/null @@ -1,91 +0,0 @@ -'use strict'; - -const path = require('path'); -const resolveCommand = require('./util/resolveCommand'); -const escape = require('./util/escape'); -const readShebang = require('./util/readShebang'); - -const isWin = process.platform === 'win32'; -const isExecutableRegExp = /\.(?:com|exe)$/i; -const isCmdShimRegExp = /node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i; - -function detectShebang(parsed) { - parsed.file = resolveCommand(parsed); - - const shebang = parsed.file && readShebang(parsed.file); - - if (shebang) { - parsed.args.unshift(parsed.file); - parsed.command = shebang; - - return resolveCommand(parsed); - } - - return parsed.file; -} - -function parseNonShell(parsed) { - if (!isWin) { - return parsed; - } - - // Detect & add support for shebangs - const commandFile = detectShebang(parsed); - - // We don't need a shell if the command filename is an executable - const needsShell = !isExecutableRegExp.test(commandFile); - - // If a shell is required, use cmd.exe and take care of escaping everything correctly - // Note that `forceShell` is an hidden option used only in tests - if (parsed.options.forceShell || needsShell) { - // Need to double escape meta chars if the command is a cmd-shim located in `node_modules/.bin/` - // The cmd-shim simply calls execute the package bin file with NodeJS, proxying any argument - // Because the escape of metachars with ^ gets interpreted when the cmd.exe is first called, - // we need to double escape them - const needsDoubleEscapeMetaChars = isCmdShimRegExp.test(commandFile); - - // Normalize posix paths into OS compatible paths (e.g.: foo/bar -> foo\bar) - // This is necessary otherwise it will always fail with ENOENT in those cases - parsed.command = path.normalize(parsed.command); - - // Escape command & arguments - parsed.command = escape.command(parsed.command); - parsed.args = parsed.args.map((arg) => escape.argument(arg, needsDoubleEscapeMetaChars)); - - const shellCommand = [parsed.command].concat(parsed.args).join(' '); - - parsed.args = ['/d', '/s', '/c', `"${shellCommand}"`]; - parsed.command = process.env.comspec || 'cmd.exe'; - parsed.options.windowsVerbatimArguments = true; // Tell node's spawn that the arguments are already escaped - } - - return parsed; -} - -function parse(command, args, options) { - // Normalize arguments, similar to nodejs - if (args && !Array.isArray(args)) { - options = args; - args = null; - } - - args = args ? args.slice(0) : []; // Clone array to avoid changing the original - options = Object.assign({}, options); // Clone object to avoid changing the original - - // Build our parsed object - const parsed = { - command, - args, - options, - file: undefined, - original: { - command, - args, - }, - }; - - // Delegate further parsing to shell or non-shell - return options.shell ? parsed : parseNonShell(parsed); -} - -module.exports = parse; diff --git a/ionic/platforms/android/cordova/node_modules/cross-spawn/lib/util/escape.js b/ionic/platforms/android/cordova/node_modules/cross-spawn/lib/util/escape.js deleted file mode 100644 index b0bb84c3a14092cfbbd1b860eb8c5f41fcc3c165..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/cross-spawn/lib/util/escape.js +++ /dev/null @@ -1,45 +0,0 @@ -'use strict'; - -// See http://www.robvanderwoude.com/escapechars.php -const metaCharsRegExp = /([()\][%!^"`<>&|;, *?])/g; - -function escapeCommand(arg) { - // Escape meta chars - arg = arg.replace(metaCharsRegExp, '^$1'); - - return arg; -} - -function escapeArgument(arg, doubleEscapeMetaChars) { - // Convert to string - arg = `${arg}`; - - // Algorithm below is based on https://qntm.org/cmd - - // Sequence of backslashes followed by a double quote: - // double up all the backslashes and escape the double quote - arg = arg.replace(/(\\*)"/g, '$1$1\\"'); - - // Sequence of backslashes followed by the end of the string - // (which will become a double quote later): - // double up all the backslashes - arg = arg.replace(/(\\*)$/, '$1$1'); - - // All other backslashes occur literally - - // Quote the whole thing: - arg = `"${arg}"`; - - // Escape meta chars - arg = arg.replace(metaCharsRegExp, '^$1'); - - // Double escape meta chars if necessary - if (doubleEscapeMetaChars) { - arg = arg.replace(metaCharsRegExp, '^$1'); - } - - return arg; -} - -module.exports.command = escapeCommand; -module.exports.argument = escapeArgument; diff --git a/ionic/platforms/android/cordova/node_modules/cross-spawn/lib/util/readShebang.js b/ionic/platforms/android/cordova/node_modules/cross-spawn/lib/util/readShebang.js deleted file mode 100644 index 5e83733fef260f23f865d9cafa42b1192b91c9f8..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/cross-spawn/lib/util/readShebang.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict'; - -const fs = require('fs'); -const shebangCommand = require('shebang-command'); - -function readShebang(command) { - // Read the first 150 bytes from the file - const size = 150; - const buffer = Buffer.alloc(size); - - let fd; - - try { - fd = fs.openSync(command, 'r'); - fs.readSync(fd, buffer, 0, size, 0); - fs.closeSync(fd); - } catch (e) { /* Empty */ } - - // Attempt to extract shebang (null is returned if not a shebang) - return shebangCommand(buffer.toString()); -} - -module.exports = readShebang; diff --git a/ionic/platforms/android/cordova/node_modules/cross-spawn/lib/util/resolveCommand.js b/ionic/platforms/android/cordova/node_modules/cross-spawn/lib/util/resolveCommand.js deleted file mode 100644 index 7972455008e917b651c1ca9a9a232ad61b0dc833..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/cross-spawn/lib/util/resolveCommand.js +++ /dev/null @@ -1,52 +0,0 @@ -'use strict'; - -const path = require('path'); -const which = require('which'); -const getPathKey = require('path-key'); - -function resolveCommandAttempt(parsed, withoutPathExt) { - const env = parsed.options.env || process.env; - const cwd = process.cwd(); - const hasCustomCwd = parsed.options.cwd != null; - // Worker threads do not have process.chdir() - const shouldSwitchCwd = hasCustomCwd && process.chdir !== undefined && !process.chdir.disabled; - - // If a custom `cwd` was specified, we need to change the process cwd - // because `which` will do stat calls but does not support a custom cwd - if (shouldSwitchCwd) { - try { - process.chdir(parsed.options.cwd); - } catch (err) { - /* Empty */ - } - } - - let resolved; - - try { - resolved = which.sync(parsed.command, { - path: env[getPathKey({ env })], - pathExt: withoutPathExt ? path.delimiter : undefined, - }); - } catch (e) { - /* Empty */ - } finally { - if (shouldSwitchCwd) { - process.chdir(cwd); - } - } - - // If we successfully resolved, ensure that an absolute path is returned - // Note that when a custom `cwd` was used, we need to resolve to an absolute path based on it - if (resolved) { - resolved = path.resolve(hasCustomCwd ? parsed.options.cwd : '', resolved); - } - - return resolved; -} - -function resolveCommand(parsed) { - return resolveCommandAttempt(parsed) || resolveCommandAttempt(parsed, true); -} - -module.exports = resolveCommand; diff --git a/ionic/platforms/android/cordova/node_modules/cross-spawn/package.json b/ionic/platforms/android/cordova/node_modules/cross-spawn/package.json deleted file mode 100644 index 7c400f0c8398eab51df15d3dd39ba46f9ce964a5..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/cross-spawn/package.json +++ /dev/null @@ -1,104 +0,0 @@ -{ - "_from": "cross-spawn@^7.0.0", - "_id": "cross-spawn@7.0.3", - "_inBundle": false, - "_integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "_location": "/cordova-android/cross-spawn", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "cross-spawn@^7.0.0", - "name": "cross-spawn", - "escapedName": "cross-spawn", - "rawSpec": "^7.0.0", - "saveSpec": null, - "fetchSpec": "^7.0.0" - }, - "_requiredBy": [ - "/cordova-android/execa" - ], - "_resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "_shasum": "f73a85b9d5d41d045551c177e2882d4ac85728a6", - "_spec": "cross-spawn@^7.0.0", - "_where": "/home/brian/whatsapp/node_modules/cordova-android/node_modules/execa", - "author": { - "name": "André Cruz", - "email": "andre@moxy.studio" - }, - "bugs": { - "url": "https://github.com/moxystudio/node-cross-spawn/issues" - }, - "bundleDependencies": false, - "commitlint": { - "extends": [ - "@commitlint/config-conventional" - ] - }, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "deprecated": false, - "description": "Cross platform child_process#spawn and child_process#spawnSync", - "devDependencies": { - "@commitlint/cli": "^8.1.0", - "@commitlint/config-conventional": "^8.1.0", - "babel-core": "^6.26.3", - "babel-jest": "^24.9.0", - "babel-preset-moxy": "^3.1.0", - "eslint": "^5.16.0", - "eslint-config-moxy": "^7.1.0", - "husky": "^3.0.5", - "jest": "^24.9.0", - "lint-staged": "^9.2.5", - "mkdirp": "^0.5.1", - "rimraf": "^3.0.0", - "standard-version": "^7.0.0" - }, - "engines": { - "node": ">= 8" - }, - "files": [ - "lib" - ], - "homepage": "https://github.com/moxystudio/node-cross-spawn", - "husky": { - "hooks": { - "commit-msg": "commitlint -E HUSKY_GIT_PARAMS", - "pre-commit": "lint-staged" - } - }, - "keywords": [ - "spawn", - "spawnSync", - "windows", - "cross-platform", - "path-ext", - "shebang", - "cmd", - "execute" - ], - "license": "MIT", - "lint-staged": { - "*.js": [ - "eslint --fix", - "git add" - ] - }, - "main": "index.js", - "name": "cross-spawn", - "repository": { - "type": "git", - "url": "git+ssh://git@github.com/moxystudio/node-cross-spawn.git" - }, - "scripts": { - "lint": "eslint .", - "postrelease": "git push --follow-tags origin HEAD && npm publish", - "prerelease": "npm t && npm run lint", - "release": "standard-version", - "test": "jest --env node --coverage" - }, - "version": "7.0.3" -} diff --git a/ionic/platforms/android/cordova/node_modules/execa/index.d.ts b/ionic/platforms/android/cordova/node_modules/execa/index.d.ts deleted file mode 100644 index 8e1050a94a2ec3a4975ba259ec36f2474f2e582a..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/execa/index.d.ts +++ /dev/null @@ -1,549 +0,0 @@ -/// <reference types="node"/> -import {ChildProcess} from 'child_process'; -import {Stream, Readable as ReadableStream} from 'stream'; - -declare namespace execa { - type StdioOption = - | 'pipe' - | 'ipc' - | 'ignore' - | 'inherit' - | Stream - | number - | undefined; - - interface CommonOptions<EncodingType> { - /** - Kill the spawned process when the parent process exits unless either: - - the spawned process is [`detached`](https://nodejs.org/api/child_process.html#child_process_options_detached) - - the parent process is terminated abruptly, for example, with `SIGKILL` as opposed to `SIGTERM` or a normal exit - - @default true - */ - readonly cleanup?: boolean; - - /** - Prefer locally installed binaries when looking for a binary to execute. - - If you `$ npm install foo`, you can then `execa('foo')`. - - @default false - */ - readonly preferLocal?: boolean; - - /** - Preferred path to find locally installed binaries in (use with `preferLocal`). - - @default process.cwd() - */ - readonly localDir?: string; - - /** - Path to the Node.js executable to use in child processes. - - This can be either an absolute path or a path relative to the `cwd` option. - - Requires `preferLocal` to be `true`. - - For example, this can be used together with [`get-node`](https://github.com/ehmicky/get-node) to run a specific Node.js version in a child process. - - @default process.execPath - */ - readonly execPath?: string; - - /** - Buffer the output from the spawned process. When set to `false`, you must read the output of `stdout` and `stderr` (or `all` if the `all` option is `true`). Otherwise the returned promise will not be resolved/rejected. - - If the spawned process fails, `error.stdout`, `error.stderr`, and `error.all` will contain the buffered data. - - @default true - */ - readonly buffer?: boolean; - - /** - Same options as [`stdio`](https://nodejs.org/dist/latest-v6.x/docs/api/child_process.html#child_process_options_stdio). - - @default 'pipe' - */ - readonly stdin?: StdioOption; - - /** - Same options as [`stdio`](https://nodejs.org/dist/latest-v6.x/docs/api/child_process.html#child_process_options_stdio). - - @default 'pipe' - */ - readonly stdout?: StdioOption; - - /** - Same options as [`stdio`](https://nodejs.org/dist/latest-v6.x/docs/api/child_process.html#child_process_options_stdio). - - @default 'pipe' - */ - readonly stderr?: StdioOption; - - /** - Setting this to `false` resolves the promise with the error instead of rejecting it. - - @default true - */ - readonly reject?: boolean; - - /** - Add an `.all` property on the promise and the resolved value. The property contains the output of the process with `stdout` and `stderr` interleaved. - - @default false - */ - readonly all?: boolean; - - /** - Strip the final [newline character](https://en.wikipedia.org/wiki/Newline) from the output. - - @default true - */ - readonly stripFinalNewline?: boolean; - - /** - Set to `false` if you don't want to extend the environment variables when providing the `env` property. - - @default true - */ - readonly extendEnv?: boolean; - - /** - Current working directory of the child process. - - @default process.cwd() - */ - readonly cwd?: string; - - /** - Environment key-value pairs. Extends automatically from `process.env`. Set `extendEnv` to `false` if you don't want this. - - @default process.env - */ - readonly env?: NodeJS.ProcessEnv; - - /** - Explicitly set the value of `argv[0]` sent to the child process. This will be set to `command` or `file` if not specified. - */ - readonly argv0?: string; - - /** - Child's [stdio](https://nodejs.org/api/child_process.html#child_process_options_stdio) configuration. - - @default 'pipe' - */ - readonly stdio?: 'pipe' | 'ignore' | 'inherit' | readonly StdioOption[]; - - /** - Specify the kind of serialization used for sending messages between processes when using the `stdio: 'ipc'` option or `execa.node()`: - - `json`: Uses `JSON.stringify()` and `JSON.parse()`. - - `advanced`: Uses [`v8.serialize()`](https://nodejs.org/api/v8.html#v8_v8_serialize_value) - - Requires Node.js `13.2.0` or later. - - [More info.](https://nodejs.org/api/child_process.html#child_process_advanced_serialization) - - @default 'json' - */ - readonly serialization?: 'json' | 'advanced'; - - /** - Prepare child to run independently of its parent process. Specific behavior [depends on the platform](https://nodejs.org/api/child_process.html#child_process_options_detached). - - @default false - */ - readonly detached?: boolean; - - /** - Sets the user identity of the process. - */ - readonly uid?: number; - - /** - Sets the group identity of the process. - */ - readonly gid?: number; - - /** - If `true`, runs `command` inside of a shell. Uses `/bin/sh` on UNIX and `cmd.exe` on Windows. A different shell can be specified as a string. The shell should understand the `-c` switch on UNIX or `/d /s /c` on Windows. - - We recommend against using this option since it is: - - not cross-platform, encouraging shell-specific syntax. - - slower, because of the additional shell interpretation. - - unsafe, potentially allowing command injection. - - @default false - */ - readonly shell?: boolean | string; - - /** - Specify the character encoding used to decode the `stdout` and `stderr` output. If set to `null`, then `stdout` and `stderr` will be a `Buffer` instead of a string. - - @default 'utf8' - */ - readonly encoding?: EncodingType; - - /** - If `timeout` is greater than `0`, the parent will send the signal identified by the `killSignal` property (the default is `SIGTERM`) if the child runs longer than `timeout` milliseconds. - - @default 0 - */ - readonly timeout?: number; - - /** - Largest amount of data in bytes allowed on `stdout` or `stderr`. Default: 100 MB. - - @default 100_000_000 - */ - readonly maxBuffer?: number; - - /** - Signal value to be used when the spawned process will be killed. - - @default 'SIGTERM' - */ - readonly killSignal?: string | number; - - /** - If `true`, no quoting or escaping of arguments is done on Windows. Ignored on other platforms. This is set to `true` automatically when the `shell` option is `true`. - - @default false - */ - readonly windowsVerbatimArguments?: boolean; - - /** - On Windows, do not create a new console window. Please note this also prevents `CTRL-C` [from working](https://github.com/nodejs/node/issues/29837) on Windows. - - @default true - */ - readonly windowsHide?: boolean; - } - - interface Options<EncodingType = string> extends CommonOptions<EncodingType> { - /** - Write some input to the `stdin` of your binary. - */ - readonly input?: string | Buffer | ReadableStream; - } - - interface SyncOptions<EncodingType = string> extends CommonOptions<EncodingType> { - /** - Write some input to the `stdin` of your binary. - */ - readonly input?: string | Buffer; - } - - interface NodeOptions<EncodingType = string> extends Options<EncodingType> { - /** - The Node.js executable to use. - - @default process.execPath - */ - readonly nodePath?: string; - - /** - List of [CLI options](https://nodejs.org/api/cli.html#cli_options) passed to the Node.js executable. - - @default process.execArgv - */ - readonly nodeOptions?: string[]; - } - - interface ExecaReturnBase<StdoutStderrType> { - /** - The file and arguments that were run. - */ - command: string; - - /** - The numeric exit code of the process that was run. - */ - exitCode: number; - - /** - The output of the process on stdout. - */ - stdout: StdoutStderrType; - - /** - The output of the process on stderr. - */ - stderr: StdoutStderrType; - - /** - Whether the process failed to run. - */ - failed: boolean; - - /** - Whether the process timed out. - */ - timedOut: boolean; - - /** - Whether the process was killed. - */ - killed: boolean; - - /** - The name of the signal that was used to terminate the process. For example, `SIGFPE`. - - If a signal terminated the process, this property is defined and included in the error message. Otherwise it is `undefined`. - */ - signal?: string; - - /** - A human-friendly description of the signal that was used to terminate the process. For example, `Floating point arithmetic error`. - - If a signal terminated the process, this property is defined and included in the error message. Otherwise it is `undefined`. It is also `undefined` when the signal is very uncommon which should seldomly happen. - */ - signalDescription?: string; - } - - interface ExecaSyncReturnValue<StdoutErrorType = string> - extends ExecaReturnBase<StdoutErrorType> { - } - - /** - Result of a child process execution. On success this is a plain object. On failure this is also an `Error` instance. - - The child process fails when: - - its exit code is not `0` - - it was killed with a signal - - timing out - - being canceled - - there's not enough memory or there are already too many child processes - */ - interface ExecaReturnValue<StdoutErrorType = string> - extends ExecaSyncReturnValue<StdoutErrorType> { - /** - The output of the process with `stdout` and `stderr` interleaved. - - This is `undefined` if either: - - the `all` option is `false` (default value) - - `execa.sync()` was used - */ - all?: StdoutErrorType; - - /** - Whether the process was canceled. - */ - isCanceled: boolean; - } - - interface ExecaSyncError<StdoutErrorType = string> - extends Error, - ExecaReturnBase<StdoutErrorType> { - /** - Error message when the child process failed to run. In addition to the underlying error message, it also contains some information related to why the child process errored. - - The child process stderr then stdout are appended to the end, separated with newlines and not interleaved. - */ - message: string; - - /** - This is the same as the `message` property except it does not include the child process stdout/stderr. - */ - shortMessage: string; - - /** - Original error message. This is the same as the `message` property except it includes neither the child process stdout/stderr nor some additional information added by Execa. - - This is `undefined` unless the child process exited due to an `error` event or a timeout. - */ - originalMessage?: string; - } - - interface ExecaError<StdoutErrorType = string> - extends ExecaSyncError<StdoutErrorType> { - /** - The output of the process with `stdout` and `stderr` interleaved. - - This is `undefined` if either: - - the `all` option is `false` (default value) - - `execa.sync()` was used - */ - all?: StdoutErrorType; - - /** - Whether the process was canceled. - */ - isCanceled: boolean; - } - - interface KillOptions { - /** - Milliseconds to wait for the child process to terminate before sending `SIGKILL`. - - Can be disabled with `false`. - - @default 5000 - */ - forceKillAfterTimeout?: number | false; - } - - interface ExecaChildPromise<StdoutErrorType> { - catch<ResultType = never>( - onRejected?: (reason: ExecaError<StdoutErrorType>) => ResultType | PromiseLike<ResultType> - ): Promise<ExecaReturnValue<StdoutErrorType> | ResultType>; - - /** - Same as the original [`child_process#kill()`](https://nodejs.org/api/child_process.html#child_process_subprocess_kill_signal), except if `signal` is `SIGTERM` (the default value) and the child process is not terminated after 5 seconds, force it by sending `SIGKILL`. - */ - kill(signal?: string, options?: execa.KillOptions): void; - - /** - Similar to [`childProcess.kill()`](https://nodejs.org/api/child_process.html#child_process_subprocess_kill_signal). This is preferred when cancelling the child process execution as the error is more descriptive and [`childProcessResult.isCanceled`](#iscanceled) is set to `true`. - */ - cancel(): void; - - /** - Stream combining/interleaving [`stdout`](https://nodejs.org/api/child_process.html#child_process_subprocess_stdout) and [`stderr`](https://nodejs.org/api/child_process.html#child_process_subprocess_stderr). - - This is `undefined` if either: - - the `all` option is `false` (the default value) - - both `stdout` and `stderr` options are set to [`'inherit'`, `'ipc'`, `Stream` or `integer`](https://nodejs.org/dist/latest-v6.x/docs/api/child_process.html#child_process_options_stdio) - */ - all?: ReadableStream; - } - - type ExecaChildProcess<StdoutErrorType = string> = ChildProcess & - ExecaChildPromise<StdoutErrorType> & - Promise<ExecaReturnValue<StdoutErrorType>>; -} - -declare const execa: { - /** - Execute a file. - - Think of this as a mix of `child_process.execFile` and `child_process.spawn`. - - @param file - The program/script to execute. - @param arguments - Arguments to pass to `file` on execution. - @returns A [`child_process` instance](https://nodejs.org/api/child_process.html#child_process_class_childprocess), which is enhanced to also be a `Promise` for a result `Object` with `stdout` and `stderr` properties. - - @example - ``` - import execa = require('execa'); - - (async () => { - const {stdout} = await execa('echo', ['unicorns']); - console.log(stdout); - //=> 'unicorns' - - // Cancelling a spawned process - const subprocess = execa('node'); - setTimeout(() => { spawned.cancel() }, 1000); - try { - await subprocess; - } catch (error) { - console.log(subprocess.killed); // true - console.log(error.isCanceled); // true - } - })(); - - // Pipe the child process stdout to the current stdout - execa('echo', ['unicorns']).stdout.pipe(process.stdout); - ``` - */ - ( - file: string, - arguments?: readonly string[], - options?: execa.Options - ): execa.ExecaChildProcess; - ( - file: string, - arguments?: readonly string[], - options?: execa.Options<null> - ): execa.ExecaChildProcess<Buffer>; - (file: string, options?: execa.Options): execa.ExecaChildProcess; - (file: string, options?: execa.Options<null>): execa.ExecaChildProcess< - Buffer - >; - - /** - Execute a file synchronously. - - This method throws an `Error` if the command fails. - - @param file - The program/script to execute. - @param arguments - Arguments to pass to `file` on execution. - @returns A result `Object` with `stdout` and `stderr` properties. - */ - sync( - file: string, - arguments?: readonly string[], - options?: execa.SyncOptions - ): execa.ExecaSyncReturnValue; - sync( - file: string, - arguments?: readonly string[], - options?: execa.SyncOptions<null> - ): execa.ExecaSyncReturnValue<Buffer>; - sync(file: string, options?: execa.SyncOptions): execa.ExecaSyncReturnValue; - sync( - file: string, - options?: execa.SyncOptions<null> - ): execa.ExecaSyncReturnValue<Buffer>; - - /** - Same as `execa()` except both file and arguments are specified in a single `command` string. For example, `execa('echo', ['unicorns'])` is the same as `execa.command('echo unicorns')`. - - If the file or an argument contains spaces, they must be escaped with backslashes. This matters especially if `command` is not a constant but a variable, for example with `__dirname` or `process.cwd()`. Except for spaces, no escaping/quoting is needed. - - The `shell` option must be used if the `command` uses shell-specific features, as opposed to being a simple `file` followed by its `arguments`. - - @param command - The program/script to execute and its arguments. - @returns A [`child_process` instance](https://nodejs.org/api/child_process.html#child_process_class_childprocess), which is enhanced to also be a `Promise` for a result `Object` with `stdout` and `stderr` properties. - - @example - ``` - import execa = require('execa'); - - (async () => { - const {stdout} = await execa.command('echo unicorns'); - console.log(stdout); - //=> 'unicorns' - })(); - ``` - */ - command(command: string, options?: execa.Options): execa.ExecaChildProcess; - command(command: string, options?: execa.Options<null>): execa.ExecaChildProcess<Buffer>; - - /** - Same as `execa.command()` but synchronous. - - @param command - The program/script to execute and its arguments. - @returns A result `Object` with `stdout` and `stderr` properties. - */ - commandSync(command: string, options?: execa.SyncOptions): execa.ExecaSyncReturnValue; - commandSync(command: string, options?: execa.SyncOptions<null>): execa.ExecaSyncReturnValue<Buffer>; - - /** - Execute a Node.js script as a child process. - - Same as `execa('node', [scriptPath, ...arguments], options)` except (like [`child_process#fork()`](https://nodejs.org/api/child_process.html#child_process_child_process_fork_modulepath_args_options)): - - the current Node version and options are used. This can be overridden using the `nodePath` and `nodeArguments` options. - - the `shell` option cannot be used - - an extra channel [`ipc`](https://nodejs.org/api/child_process.html#child_process_options_stdio) is passed to [`stdio`](#stdio) - - @param scriptPath - Node.js script to execute. - @param arguments - Arguments to pass to `scriptPath` on execution. - @returns A [`child_process` instance](https://nodejs.org/api/child_process.html#child_process_class_childprocess), which is enhanced to also be a `Promise` for a result `Object` with `stdout` and `stderr` properties. - */ - node( - scriptPath: string, - arguments?: readonly string[], - options?: execa.NodeOptions - ): execa.ExecaChildProcess; - node( - scriptPath: string, - arguments?: readonly string[], - options?: execa.Options<null> - ): execa.ExecaChildProcess<Buffer>; - node(scriptPath: string, options?: execa.Options): execa.ExecaChildProcess; - node(scriptPath: string, options?: execa.Options<null>): execa.ExecaChildProcess<Buffer>; -}; - -export = execa; diff --git a/ionic/platforms/android/cordova/node_modules/execa/index.js b/ionic/platforms/android/cordova/node_modules/execa/index.js deleted file mode 100644 index d94125310c696f2f56dd4439d2200f4e29951aea..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/execa/index.js +++ /dev/null @@ -1,260 +0,0 @@ -'use strict'; -const path = require('path'); -const childProcess = require('child_process'); -const crossSpawn = require('cross-spawn'); -const stripFinalNewline = require('strip-final-newline'); -const npmRunPath = require('npm-run-path'); -const onetime = require('onetime'); -const makeError = require('./lib/error'); -const normalizeStdio = require('./lib/stdio'); -const {spawnedKill, spawnedCancel, setupTimeout, setExitHandler} = require('./lib/kill'); -const {handleInput, getSpawnedResult, makeAllStream, validateInputSync} = require('./lib/stream.js'); -const {mergePromise, getSpawnedPromise} = require('./lib/promise.js'); -const {joinCommand, parseCommand} = require('./lib/command.js'); - -const DEFAULT_MAX_BUFFER = 1000 * 1000 * 100; - -const getEnv = ({env: envOption, extendEnv, preferLocal, localDir, execPath}) => { - const env = extendEnv ? {...process.env, ...envOption} : envOption; - - if (preferLocal) { - return npmRunPath.env({env, cwd: localDir, execPath}); - } - - return env; -}; - -const handleArguments = (file, args, options = {}) => { - const parsed = crossSpawn._parse(file, args, options); - file = parsed.command; - args = parsed.args; - options = parsed.options; - - options = { - maxBuffer: DEFAULT_MAX_BUFFER, - buffer: true, - stripFinalNewline: true, - extendEnv: true, - preferLocal: false, - localDir: options.cwd || process.cwd(), - execPath: process.execPath, - encoding: 'utf8', - reject: true, - cleanup: true, - all: false, - windowsHide: true, - ...options - }; - - options.env = getEnv(options); - - options.stdio = normalizeStdio(options); - - if (process.platform === 'win32' && path.basename(file, '.exe') === 'cmd') { - // #116 - args.unshift('/q'); - } - - return {file, args, options, parsed}; -}; - -const handleOutput = (options, value, error) => { - if (typeof value !== 'string' && !Buffer.isBuffer(value)) { - // When `execa.sync()` errors, we normalize it to '' to mimic `execa()` - return error === undefined ? undefined : ''; - } - - if (options.stripFinalNewline) { - return stripFinalNewline(value); - } - - return value; -}; - -const execa = (file, args, options) => { - const parsed = handleArguments(file, args, options); - const command = joinCommand(file, args); - - let spawned; - try { - spawned = childProcess.spawn(parsed.file, parsed.args, parsed.options); - } catch (error) { - // Ensure the returned error is always both a promise and a child process - const dummySpawned = new childProcess.ChildProcess(); - const errorPromise = Promise.reject(makeError({ - error, - stdout: '', - stderr: '', - all: '', - command, - parsed, - timedOut: false, - isCanceled: false, - killed: false - })); - return mergePromise(dummySpawned, errorPromise); - } - - const spawnedPromise = getSpawnedPromise(spawned); - const timedPromise = setupTimeout(spawned, parsed.options, spawnedPromise); - const processDone = setExitHandler(spawned, parsed.options, timedPromise); - - const context = {isCanceled: false}; - - spawned.kill = spawnedKill.bind(null, spawned.kill.bind(spawned)); - spawned.cancel = spawnedCancel.bind(null, spawned, context); - - const handlePromise = async () => { - const [{error, exitCode, signal, timedOut}, stdoutResult, stderrResult, allResult] = await getSpawnedResult(spawned, parsed.options, processDone); - const stdout = handleOutput(parsed.options, stdoutResult); - const stderr = handleOutput(parsed.options, stderrResult); - const all = handleOutput(parsed.options, allResult); - - if (error || exitCode !== 0 || signal !== null) { - const returnedError = makeError({ - error, - exitCode, - signal, - stdout, - stderr, - all, - command, - parsed, - timedOut, - isCanceled: context.isCanceled, - killed: spawned.killed - }); - - if (!parsed.options.reject) { - return returnedError; - } - - throw returnedError; - } - - return { - command, - exitCode: 0, - stdout, - stderr, - all, - failed: false, - timedOut: false, - isCanceled: false, - killed: false - }; - }; - - const handlePromiseOnce = onetime(handlePromise); - - crossSpawn._enoent.hookChildProcess(spawned, parsed.parsed); - - handleInput(spawned, parsed.options.input); - - spawned.all = makeAllStream(spawned, parsed.options); - - return mergePromise(spawned, handlePromiseOnce); -}; - -module.exports = execa; - -module.exports.sync = (file, args, options) => { - const parsed = handleArguments(file, args, options); - const command = joinCommand(file, args); - - validateInputSync(parsed.options); - - let result; - try { - result = childProcess.spawnSync(parsed.file, parsed.args, parsed.options); - } catch (error) { - throw makeError({ - error, - stdout: '', - stderr: '', - all: '', - command, - parsed, - timedOut: false, - isCanceled: false, - killed: false - }); - } - - const stdout = handleOutput(parsed.options, result.stdout, result.error); - const stderr = handleOutput(parsed.options, result.stderr, result.error); - - if (result.error || result.status !== 0 || result.signal !== null) { - const error = makeError({ - stdout, - stderr, - error: result.error, - signal: result.signal, - exitCode: result.status, - command, - parsed, - timedOut: result.error && result.error.code === 'ETIMEDOUT', - isCanceled: false, - killed: result.signal !== null - }); - - if (!parsed.options.reject) { - return error; - } - - throw error; - } - - return { - command, - exitCode: 0, - stdout, - stderr, - failed: false, - timedOut: false, - isCanceled: false, - killed: false - }; -}; - -module.exports.command = (command, options) => { - const [file, ...args] = parseCommand(command); - return execa(file, args, options); -}; - -module.exports.commandSync = (command, options) => { - const [file, ...args] = parseCommand(command); - return execa.sync(file, args, options); -}; - -module.exports.node = (scriptPath, args, options = {}) => { - if (args && !Array.isArray(args) && typeof args === 'object') { - options = args; - args = []; - } - - const stdio = normalizeStdio.node(options); - const defaultExecArgv = process.execArgv.filter(arg => !arg.startsWith('--inspect')); - - const { - nodePath = process.execPath, - nodeOptions = defaultExecArgv - } = options; - - return execa( - nodePath, - [ - ...nodeOptions, - scriptPath, - ...(Array.isArray(args) ? args : []) - ], - { - ...options, - stdin: undefined, - stdout: undefined, - stderr: undefined, - stdio, - shell: false - } - ); -}; diff --git a/ionic/platforms/android/cordova/node_modules/execa/lib/command.js b/ionic/platforms/android/cordova/node_modules/execa/lib/command.js deleted file mode 100644 index 190ce165300ec45cc49497b2f775b0c0361dbab7..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/execa/lib/command.js +++ /dev/null @@ -1,32 +0,0 @@ -'use strict'; -const SPACES_REGEXP = / +/g; - -const joinCommand = (file, args = []) => { - if (!Array.isArray(args)) { - return file; - } - - return [file, ...args].join(' '); -}; - -// Handle `execa.command()` -const parseCommand = command => { - const tokens = []; - for (const token of command.trim().split(SPACES_REGEXP)) { - // Allow spaces to be escaped by a backslash if not meant as a delimiter - const previousToken = tokens[tokens.length - 1]; - if (previousToken && previousToken.endsWith('\\')) { - // Merge previous token with current one - tokens[tokens.length - 1] = `${previousToken.slice(0, -1)} ${token}`; - } else { - tokens.push(token); - } - } - - return tokens; -}; - -module.exports = { - joinCommand, - parseCommand -}; diff --git a/ionic/platforms/android/cordova/node_modules/execa/lib/error.js b/ionic/platforms/android/cordova/node_modules/execa/lib/error.js deleted file mode 100644 index 09cd081d5357809a6a6f14d7daf34a7eac451dc5..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/execa/lib/error.js +++ /dev/null @@ -1,86 +0,0 @@ -'use strict'; -const {signalsByName} = require('human-signals'); - -const getErrorPrefix = ({timedOut, timeout, errorCode, signal, signalDescription, exitCode, isCanceled}) => { - if (timedOut) { - return `timed out after ${timeout} milliseconds`; - } - - if (isCanceled) { - return 'was canceled'; - } - - if (errorCode !== undefined) { - return `failed with ${errorCode}`; - } - - if (signal !== undefined) { - return `was killed with ${signal} (${signalDescription})`; - } - - if (exitCode !== undefined) { - return `failed with exit code ${exitCode}`; - } - - return 'failed'; -}; - -const makeError = ({ - stdout, - stderr, - all, - error, - signal, - exitCode, - command, - timedOut, - isCanceled, - killed, - parsed: {options: {timeout}} -}) => { - // `signal` and `exitCode` emitted on `spawned.on('exit')` event can be `null`. - // We normalize them to `undefined` - exitCode = exitCode === null ? undefined : exitCode; - signal = signal === null ? undefined : signal; - const signalDescription = signal === undefined ? undefined : signalsByName[signal].description; - - const errorCode = error && error.code; - - const prefix = getErrorPrefix({timedOut, timeout, errorCode, signal, signalDescription, exitCode, isCanceled}); - const execaMessage = `Command ${prefix}: ${command}`; - const isError = Object.prototype.toString.call(error) === '[object Error]'; - const shortMessage = isError ? `${execaMessage}\n${error.message}` : execaMessage; - const message = [shortMessage, stderr, stdout].filter(Boolean).join('\n'); - - if (isError) { - error.originalMessage = error.message; - error.message = message; - } else { - error = new Error(message); - } - - error.shortMessage = shortMessage; - error.command = command; - error.exitCode = exitCode; - error.signal = signal; - error.signalDescription = signalDescription; - error.stdout = stdout; - error.stderr = stderr; - - if (all !== undefined) { - error.all = all; - } - - if ('bufferedData' in error) { - delete error.bufferedData; - } - - error.failed = true; - error.timedOut = Boolean(timedOut); - error.isCanceled = isCanceled; - error.killed = killed && !timedOut; - - return error; -}; - -module.exports = makeError; diff --git a/ionic/platforms/android/cordova/node_modules/execa/lib/kill.js b/ionic/platforms/android/cordova/node_modules/execa/lib/kill.js deleted file mode 100644 index 7f6f8dd7f288f9c5a36ba206d6fe9a4fff9e7894..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/execa/lib/kill.js +++ /dev/null @@ -1,112 +0,0 @@ -'use strict'; -const os = require('os'); -const onExit = require('signal-exit'); - -const DEFAULT_FORCE_KILL_TIMEOUT = 1000 * 5; - -// Monkey-patches `childProcess.kill()` to add `forceKillAfterTimeout` behavior -const spawnedKill = (kill, signal = 'SIGTERM', options = {}) => { - const killResult = kill(signal); - setKillTimeout(kill, signal, options, killResult); - return killResult; -}; - -const setKillTimeout = (kill, signal, options, killResult) => { - if (!shouldForceKill(signal, options, killResult)) { - return; - } - - const timeout = getForceKillAfterTimeout(options); - const t = setTimeout(() => { - kill('SIGKILL'); - }, timeout); - - // Guarded because there's no `.unref()` when `execa` is used in the renderer - // process in Electron. This cannot be tested since we don't run tests in - // Electron. - // istanbul ignore else - if (t.unref) { - t.unref(); - } -}; - -const shouldForceKill = (signal, {forceKillAfterTimeout}, killResult) => { - return isSigterm(signal) && forceKillAfterTimeout !== false && killResult; -}; - -const isSigterm = signal => { - return signal === os.constants.signals.SIGTERM || - (typeof signal === 'string' && signal.toUpperCase() === 'SIGTERM'); -}; - -const getForceKillAfterTimeout = ({forceKillAfterTimeout = true}) => { - if (forceKillAfterTimeout === true) { - return DEFAULT_FORCE_KILL_TIMEOUT; - } - - if (!Number.isFinite(forceKillAfterTimeout) || forceKillAfterTimeout < 0) { - throw new TypeError(`Expected the \`forceKillAfterTimeout\` option to be a non-negative integer, got \`${forceKillAfterTimeout}\` (${typeof forceKillAfterTimeout})`); - } - - return forceKillAfterTimeout; -}; - -// `childProcess.cancel()` -const spawnedCancel = (spawned, context) => { - const killResult = spawned.kill(); - - if (killResult) { - context.isCanceled = true; - } -}; - -const timeoutKill = (spawned, signal, reject) => { - spawned.kill(signal); - reject(Object.assign(new Error('Timed out'), {timedOut: true, signal})); -}; - -// `timeout` option handling -const setupTimeout = (spawned, {timeout, killSignal = 'SIGTERM'}, spawnedPromise) => { - if (timeout === 0 || timeout === undefined) { - return spawnedPromise; - } - - if (!Number.isFinite(timeout) || timeout < 0) { - throw new TypeError(`Expected the \`timeout\` option to be a non-negative integer, got \`${timeout}\` (${typeof timeout})`); - } - - let timeoutId; - const timeoutPromise = new Promise((resolve, reject) => { - timeoutId = setTimeout(() => { - timeoutKill(spawned, killSignal, reject); - }, timeout); - }); - - const safeSpawnedPromise = spawnedPromise.finally(() => { - clearTimeout(timeoutId); - }); - - return Promise.race([timeoutPromise, safeSpawnedPromise]); -}; - -// `cleanup` option handling -const setExitHandler = async (spawned, {cleanup, detached}, timedPromise) => { - if (!cleanup || detached) { - return timedPromise; - } - - const removeExitHandler = onExit(() => { - spawned.kill(); - }); - - return timedPromise.finally(() => { - removeExitHandler(); - }); -}; - -module.exports = { - spawnedKill, - spawnedCancel, - setupTimeout, - setExitHandler -}; diff --git a/ionic/platforms/android/cordova/node_modules/execa/lib/promise.js b/ionic/platforms/android/cordova/node_modules/execa/lib/promise.js deleted file mode 100644 index bd9d52333d56a90eb39b2007a6383c95507e0563..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/execa/lib/promise.js +++ /dev/null @@ -1,46 +0,0 @@ -'use strict'; - -const nativePromisePrototype = (async () => {})().constructor.prototype; -const descriptors = ['then', 'catch', 'finally'].map(property => [ - property, - Reflect.getOwnPropertyDescriptor(nativePromisePrototype, property) -]); - -// The return value is a mixin of `childProcess` and `Promise` -const mergePromise = (spawned, promise) => { - for (const [property, descriptor] of descriptors) { - // Starting the main `promise` is deferred to avoid consuming streams - const value = typeof promise === 'function' ? - (...args) => Reflect.apply(descriptor.value, promise(), args) : - descriptor.value.bind(promise); - - Reflect.defineProperty(spawned, property, {...descriptor, value}); - } - - return spawned; -}; - -// Use promises instead of `child_process` events -const getSpawnedPromise = spawned => { - return new Promise((resolve, reject) => { - spawned.on('exit', (exitCode, signal) => { - resolve({exitCode, signal}); - }); - - spawned.on('error', error => { - reject(error); - }); - - if (spawned.stdin) { - spawned.stdin.on('error', error => { - reject(error); - }); - } - }); -}; - -module.exports = { - mergePromise, - getSpawnedPromise -}; - diff --git a/ionic/platforms/android/cordova/node_modules/execa/lib/stdio.js b/ionic/platforms/android/cordova/node_modules/execa/lib/stdio.js deleted file mode 100644 index 6344d24fca231c3c226f9cc43c54562e8e79a607..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/execa/lib/stdio.js +++ /dev/null @@ -1,52 +0,0 @@ -'use strict'; -const aliases = ['stdin', 'stdout', 'stderr']; - -const hasAlias = opts => aliases.some(alias => opts[alias] !== undefined); - -const normalizeStdio = opts => { - if (!opts) { - return; - } - - const {stdio} = opts; - - if (stdio === undefined) { - return aliases.map(alias => opts[alias]); - } - - if (hasAlias(opts)) { - throw new Error(`It's not possible to provide \`stdio\` in combination with one of ${aliases.map(alias => `\`${alias}\``).join(', ')}`); - } - - if (typeof stdio === 'string') { - return stdio; - } - - if (!Array.isArray(stdio)) { - throw new TypeError(`Expected \`stdio\` to be of type \`string\` or \`Array\`, got \`${typeof stdio}\``); - } - - const length = Math.max(stdio.length, aliases.length); - return Array.from({length}, (value, index) => stdio[index]); -}; - -module.exports = normalizeStdio; - -// `ipc` is pushed unless it is already present -module.exports.node = opts => { - const stdio = normalizeStdio(opts); - - if (stdio === 'ipc') { - return 'ipc'; - } - - if (stdio === undefined || typeof stdio === 'string') { - return [stdio, stdio, stdio, 'ipc']; - } - - if (stdio.includes('ipc')) { - return stdio; - } - - return [...stdio, 'ipc']; -}; diff --git a/ionic/platforms/android/cordova/node_modules/execa/lib/stream.js b/ionic/platforms/android/cordova/node_modules/execa/lib/stream.js deleted file mode 100644 index 102004c481af5a9c253ae899691713bbdc7649c8..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/execa/lib/stream.js +++ /dev/null @@ -1,97 +0,0 @@ -'use strict'; -const isStream = require('is-stream'); -const getStream = require('get-stream'); -const mergeStream = require('merge-stream'); - -// `input` option -const handleInput = (spawned, input) => { - // Checking for stdin is workaround for https://github.com/nodejs/node/issues/26852 - // TODO: Remove `|| spawned.stdin === undefined` once we drop support for Node.js <=12.2.0 - if (input === undefined || spawned.stdin === undefined) { - return; - } - - if (isStream(input)) { - input.pipe(spawned.stdin); - } else { - spawned.stdin.end(input); - } -}; - -// `all` interleaves `stdout` and `stderr` -const makeAllStream = (spawned, {all}) => { - if (!all || (!spawned.stdout && !spawned.stderr)) { - return; - } - - const mixed = mergeStream(); - - if (spawned.stdout) { - mixed.add(spawned.stdout); - } - - if (spawned.stderr) { - mixed.add(spawned.stderr); - } - - return mixed; -}; - -// On failure, `result.stdout|stderr|all` should contain the currently buffered stream -const getBufferedData = async (stream, streamPromise) => { - if (!stream) { - return; - } - - stream.destroy(); - - try { - return await streamPromise; - } catch (error) { - return error.bufferedData; - } -}; - -const getStreamPromise = (stream, {encoding, buffer, maxBuffer}) => { - if (!stream || !buffer) { - return; - } - - if (encoding) { - return getStream(stream, {encoding, maxBuffer}); - } - - return getStream.buffer(stream, {maxBuffer}); -}; - -// Retrieve result of child process: exit code, signal, error, streams (stdout/stderr/all) -const getSpawnedResult = async ({stdout, stderr, all}, {encoding, buffer, maxBuffer}, processDone) => { - const stdoutPromise = getStreamPromise(stdout, {encoding, buffer, maxBuffer}); - const stderrPromise = getStreamPromise(stderr, {encoding, buffer, maxBuffer}); - const allPromise = getStreamPromise(all, {encoding, buffer, maxBuffer: maxBuffer * 2}); - - try { - return await Promise.all([processDone, stdoutPromise, stderrPromise, allPromise]); - } catch (error) { - return Promise.all([ - {error, signal: error.signal, timedOut: error.timedOut}, - getBufferedData(stdout, stdoutPromise), - getBufferedData(stderr, stderrPromise), - getBufferedData(all, allPromise) - ]); - } -}; - -const validateInputSync = ({input}) => { - if (isStream(input)) { - throw new TypeError('The `input` option cannot be a stream in sync mode'); - } -}; - -module.exports = { - handleInput, - makeAllStream, - getSpawnedResult, - validateInputSync -}; - diff --git a/ionic/platforms/android/cordova/node_modules/execa/license b/ionic/platforms/android/cordova/node_modules/execa/license deleted file mode 100644 index fa7ceba3eb4a9657a9db7f3ffca4e4e97a9019de..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/execa/license +++ /dev/null @@ -1,9 +0,0 @@ -MIT License - -Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (https://sindresorhus.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/ionic/platforms/android/cordova/node_modules/execa/package.json b/ionic/platforms/android/cordova/node_modules/execa/package.json deleted file mode 100644 index 85951d8c600c8cde327025e166441b843f03cca1..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/execa/package.json +++ /dev/null @@ -1,103 +0,0 @@ -{ - "_from": "execa@^4.0.2", - "_id": "execa@4.1.0", - "_inBundle": false, - "_integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", - "_location": "/cordova-android/execa", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "execa@^4.0.2", - "name": "execa", - "escapedName": "execa", - "rawSpec": "^4.0.2", - "saveSpec": null, - "fetchSpec": "^4.0.2" - }, - "_requiredBy": [ - "/cordova-android" - ], - "_resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", - "_shasum": "4e5491ad1572f2f17a77d388c6c857135b22847a", - "_spec": "execa@^4.0.2", - "_where": "/home/brian/whatsapp/node_modules/cordova-android", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "https://sindresorhus.com" - }, - "bugs": { - "url": "https://github.com/sindresorhus/execa/issues" - }, - "bundleDependencies": false, - "dependencies": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "human-signals": "^1.1.1", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.0", - "onetime": "^5.1.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" - }, - "deprecated": false, - "description": "Process execution for humans", - "devDependencies": { - "@types/node": "^12.12.18", - "ava": "^2.1.0", - "coveralls": "^3.0.9", - "get-node": "^6.6.0", - "is-running": "^2.1.0", - "nyc": "^14.1.1", - "p-event": "^4.1.0", - "tempfile": "^3.0.0", - "tsd": "^0.11.0", - "xo": "^0.25.3" - }, - "engines": { - "node": ">=10" - }, - "files": [ - "index.js", - "index.d.ts", - "lib" - ], - "funding": "https://github.com/sindresorhus/execa?sponsor=1", - "homepage": "https://github.com/sindresorhus/execa#readme", - "keywords": [ - "exec", - "child", - "process", - "execute", - "fork", - "execfile", - "spawn", - "file", - "shell", - "bin", - "binary", - "binaries", - "npm", - "path", - "local" - ], - "license": "MIT", - "name": "execa", - "nyc": { - "exclude": [ - "**/fixtures/**", - "**/test.js", - "**/test/**" - ] - }, - "repository": { - "type": "git", - "url": "git+https://github.com/sindresorhus/execa.git" - }, - "scripts": { - "test": "xo && nyc ava && tsd" - }, - "version": "4.1.0" -} diff --git a/ionic/platforms/android/cordova/node_modules/execa/readme.md b/ionic/platforms/android/cordova/node_modules/execa/readme.md deleted file mode 100644 index 5e3606ddd7ac28c0a8e3c863decfdbe5e48af83b..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/execa/readme.md +++ /dev/null @@ -1,656 +0,0 @@ -<img src="media/logo.svg" width="400"> -<br> - -[](https://travis-ci.com/github/sindresorhus/execa) [](https://coveralls.io/github/sindresorhus/execa?branch=master) - -> Process execution for humans - ---- - -Netlify is looking for a senior/expert Node.js backend engineer to join a fully remote, international, diverse (44% women and non-binary) and friendly team. This is for the team where one of the co-maintainers [@ehmicky](https://github.com/ehmicky) is working. The job description is [here](https://boards.greenhouse.io/netlify/jobs/4832483002). - ---- - -## Why - -This package improves [`child_process`](https://nodejs.org/api/child_process.html) methods with: - -- Promise interface. -- [Strips the final newline](#stripfinalnewline) from the output so you don't have to do `stdout.trim()`. -- Supports [shebang](https://en.wikipedia.org/wiki/Shebang_(Unix)) binaries cross-platform. -- [Improved Windows support.](https://github.com/IndigoUnited/node-cross-spawn#why) -- Higher max buffer. 100 MB instead of 200 KB. -- [Executes locally installed binaries by name.](#preferlocal) -- [Cleans up spawned processes when the parent process dies.](#cleanup) -- [Get interleaved output](#all) from `stdout` and `stderr` similar to what is printed on the terminal. [*(Async only)*](#execasyncfile-arguments-options) -- [Can specify file and arguments as a single string without a shell](#execacommandcommand-options) -- More descriptive errors. - -## Install - -``` -$ npm install execa -``` - -## Usage - -```js -const execa = require('execa'); - -(async () => { - const {stdout} = await execa('echo', ['unicorns']); - console.log(stdout); - //=> 'unicorns' -})(); -``` - -### Pipe the child process stdout to the parent - -```js -const execa = require('execa'); - -execa('echo', ['unicorns']).stdout.pipe(process.stdout); -``` - -### Handling Errors - -```js -const execa = require('execa'); - -(async () => { - // Catching an error - try { - await execa('unknown', ['command']); - } catch (error) { - console.log(error); - /* - { - message: 'Command failed with ENOENT: unknown command spawn unknown ENOENT', - errno: -2, - code: 'ENOENT', - syscall: 'spawn unknown', - path: 'unknown', - spawnargs: ['command'], - originalMessage: 'spawn unknown ENOENT', - shortMessage: 'Command failed with ENOENT: unknown command spawn unknown ENOENT', - command: 'unknown command', - stdout: '', - stderr: '', - all: '', - failed: true, - timedOut: false, - isCanceled: false, - killed: false - } - */ - } - -})(); -``` - -### Cancelling a spawned process - -```js -const execa = require('execa'); - -(async () => { - const subprocess = execa('node'); - - setTimeout(() => { - subprocess.cancel(); - }, 1000); - - try { - await subprocess; - } catch (error) { - console.log(subprocess.killed); // true - console.log(error.isCanceled); // true - } -})() -``` - -### Catching an error with the sync method - -```js -try { - execa.sync('unknown', ['command']); -} catch (error) { - console.log(error); - /* - { - message: 'Command failed with ENOENT: unknown command spawnSync unknown ENOENT', - errno: -2, - code: 'ENOENT', - syscall: 'spawnSync unknown', - path: 'unknown', - spawnargs: ['command'], - originalMessage: 'spawnSync unknown ENOENT', - shortMessage: 'Command failed with ENOENT: unknown command spawnSync unknown ENOENT', - command: 'unknown command', - stdout: '', - stderr: '', - all: '', - failed: true, - timedOut: false, - isCanceled: false, - killed: false - } - */ -} -``` - -### Kill a process - -Using SIGTERM, and after 2 seconds, kill it with SIGKILL. - -```js -const subprocess = execa('node'); - -setTimeout(() => { - subprocess.kill('SIGTERM', { - forceKillAfterTimeout: 2000 - }); -}, 1000); -``` - -## API - -### execa(file, arguments, options?) - -Execute a file. Think of this as a mix of [`child_process.execFile()`](https://nodejs.org/api/child_process.html#child_process_child_process_execfile_file_args_options_callback) and [`child_process.spawn()`](https://nodejs.org/api/child_process.html#child_process_child_process_spawn_command_args_options). - -No escaping/quoting is needed. - -Unless the [`shell`](#shell) option is used, no shell interpreter (Bash, `cmd.exe`, etc.) is used, so shell features such as variables substitution (`echo $PATH`) are not allowed. - -Returns a [`child_process` instance](https://nodejs.org/api/child_process.html#child_process_class_childprocess) which: - - is also a `Promise` resolving or rejecting with a [`childProcessResult`](#childProcessResult). - - exposes the following additional methods and properties. - -#### kill(signal?, options?) - -Same as the original [`child_process#kill()`](https://nodejs.org/api/child_process.html#child_process_subprocess_kill_signal) except: if `signal` is `SIGTERM` (the default value) and the child process is not terminated after 5 seconds, force it by sending `SIGKILL`. - -##### options.forceKillAfterTimeout - -Type: `number | false`\ -Default: `5000` - -Milliseconds to wait for the child process to terminate before sending `SIGKILL`. - -Can be disabled with `false`. - -#### cancel() - -Similar to [`childProcess.kill()`](https://nodejs.org/api/child_process.html#child_process_subprocess_kill_signal). This is preferred when cancelling the child process execution as the error is more descriptive and [`childProcessResult.isCanceled`](#iscanceled) is set to `true`. - -#### all - -Type: `ReadableStream | undefined` - -Stream combining/interleaving [`stdout`](https://nodejs.org/api/child_process.html#child_process_subprocess_stdout) and [`stderr`](https://nodejs.org/api/child_process.html#child_process_subprocess_stderr). - -This is `undefined` if either: - - the [`all` option](#all-2) is `false` (the default value) - - both [`stdout`](#stdout-1) and [`stderr`](#stderr-1) options are set to [`'inherit'`, `'ipc'`, `Stream` or `integer`](https://nodejs.org/dist/latest-v6.x/docs/api/child_process.html#child_process_options_stdio) - -### execa.sync(file, arguments?, options?) - -Execute a file synchronously. - -Returns or throws a [`childProcessResult`](#childProcessResult). - -### execa.command(command, options?) - -Same as [`execa()`](#execafile-arguments-options) except both file and arguments are specified in a single `command` string. For example, `execa('echo', ['unicorns'])` is the same as `execa.command('echo unicorns')`. - -If the file or an argument contains spaces, they must be escaped with backslashes. This matters especially if `command` is not a constant but a variable, for example with `__dirname` or `process.cwd()`. Except for spaces, no escaping/quoting is needed. - -The [`shell` option](#shell) must be used if the `command` uses shell-specific features, as opposed to being a simple `file` followed by its `arguments`. - -### execa.commandSync(command, options?) - -Same as [`execa.command()`](#execacommand-command-options) but synchronous. - -Returns or throws a [`childProcessResult`](#childProcessResult). - -### execa.node(scriptPath, arguments?, options?) - -Execute a Node.js script as a child process. - -Same as `execa('node', [scriptPath, ...arguments], options)` except (like [`child_process#fork()`](https://nodejs.org/api/child_process.html#child_process_child_process_fork_modulepath_args_options)): - - the current Node version and options are used. This can be overridden using the [`nodePath`](#nodepath-for-node-only) and [`nodeOptions`](#nodeoptions-for-node-only) options. - - the [`shell`](#shell) option cannot be used - - an extra channel [`ipc`](https://nodejs.org/api/child_process.html#child_process_options_stdio) is passed to [`stdio`](#stdio) - -### childProcessResult - -Type: `object` - -Result of a child process execution. On success this is a plain object. On failure this is also an `Error` instance. - -The child process [fails](#failed) when: -- its [exit code](#exitcode) is not `0` -- it was [killed](#killed) with a [signal](#signal) -- [timing out](#timedout) -- [being canceled](#iscanceled) -- there's not enough memory or there are already too many child processes - -#### command - -Type: `string` - -The file and arguments that were run. - -#### exitCode - -Type: `number` - -The numeric exit code of the process that was run. - -#### stdout - -Type: `string | Buffer` - -The output of the process on stdout. - -#### stderr - -Type: `string | Buffer` - -The output of the process on stderr. - -#### all - -Type: `string | Buffer | undefined` - -The output of the process with `stdout` and `stderr` interleaved. - -This is `undefined` if either: - - the [`all` option](#all-2) is `false` (the default value) - - `execa.sync()` was used - -#### failed - -Type: `boolean` - -Whether the process failed to run. - -#### timedOut - -Type: `boolean` - -Whether the process timed out. - -#### isCanceled - -Type: `boolean` - -Whether the process was canceled. - -#### killed - -Type: `boolean` - -Whether the process was killed. - -#### signal - -Type: `string | undefined` - -The name of the signal that was used to terminate the process. For example, `SIGFPE`. - -If a signal terminated the process, this property is defined and included in the error message. Otherwise it is `undefined`. - -#### signalDescription - -Type: `string | undefined` - -A human-friendly description of the signal that was used to terminate the process. For example, `Floating point arithmetic error`. - -If a signal terminated the process, this property is defined and included in the error message. Otherwise it is `undefined`. It is also `undefined` when the signal is very uncommon which should seldomly happen. - -#### message - -Type: `string` - -Error message when the child process failed to run. In addition to the [underlying error message](#originalMessage), it also contains some information related to why the child process errored. - -The child process [stderr](#stderr) then [stdout](#stdout) are appended to the end, separated with newlines and not interleaved. - -#### shortMessage - -Type: `string` - -This is the same as the [`message` property](#message) except it does not include the child process stdout/stderr. - -#### originalMessage - -Type: `string | undefined` - -Original error message. This is the same as the `message` property except it includes neither the child process stdout/stderr nor some additional information added by Execa. - -This is `undefined` unless the child process exited due to an `error` event or a timeout. - -### options - -Type: `object` - -#### cleanup - -Type: `boolean`\ -Default: `true` - -Kill the spawned process when the parent process exits unless either: - - the spawned process is [`detached`](https://nodejs.org/api/child_process.html#child_process_options_detached) - - the parent process is terminated abruptly, for example, with `SIGKILL` as opposed to `SIGTERM` or a normal exit - -#### preferLocal - -Type: `boolean`\ -Default: `false` - -Prefer locally installed binaries when looking for a binary to execute.\ -If you `$ npm install foo`, you can then `execa('foo')`. - -#### localDir - -Type: `string`\ -Default: `process.cwd()` - -Preferred path to find locally installed binaries in (use with `preferLocal`). - -#### execPath - -Type: `string`\ -Default: `process.execPath` (Current Node.js executable) - -Path to the Node.js executable to use in child processes. - -This can be either an absolute path or a path relative to the [`cwd` option](#cwd). - -Requires [`preferLocal`](#preferlocal) to be `true`. - -For example, this can be used together with [`get-node`](https://github.com/ehmicky/get-node) to run a specific Node.js version in a child process. - -#### buffer - -Type: `boolean`\ -Default: `true` - -Buffer the output from the spawned process. When set to `false`, you must read the output of [`stdout`](#stdout-1) and [`stderr`](#stderr-1) (or [`all`](#all) if the [`all`](#all-2) option is `true`). Otherwise the returned promise will not be resolved/rejected. - -If the spawned process fails, [`error.stdout`](#stdout), [`error.stderr`](#stderr), and [`error.all`](#all) will contain the buffered data. - -#### input - -Type: `string | Buffer | stream.Readable` - -Write some input to the `stdin` of your binary.\ -Streams are not allowed when using the synchronous methods. - -#### stdin - -Type: `string | number | Stream | undefined`\ -Default: `pipe` - -Same options as [`stdio`](https://nodejs.org/dist/latest-v6.x/docs/api/child_process.html#child_process_options_stdio). - -#### stdout - -Type: `string | number | Stream | undefined`\ -Default: `pipe` - -Same options as [`stdio`](https://nodejs.org/dist/latest-v6.x/docs/api/child_process.html#child_process_options_stdio). - -#### stderr - -Type: `string | number | Stream | undefined`\ -Default: `pipe` - -Same options as [`stdio`](https://nodejs.org/dist/latest-v6.x/docs/api/child_process.html#child_process_options_stdio). - -#### all - -Type: `boolean`\ -Default: `false` - -Add an `.all` property on the [promise](#all) and the [resolved value](#all-1). The property contains the output of the process with `stdout` and `stderr` interleaved. - -#### reject - -Type: `boolean`\ -Default: `true` - -Setting this to `false` resolves the promise with the error instead of rejecting it. - -#### stripFinalNewline - -Type: `boolean`\ -Default: `true` - -Strip the final [newline character](https://en.wikipedia.org/wiki/Newline) from the output. - -#### extendEnv - -Type: `boolean`\ -Default: `true` - -Set to `false` if you don't want to extend the environment variables when providing the `env` property. - ---- - -Execa also accepts the below options which are the same as the options for [`child_process#spawn()`](https://nodejs.org/api/child_process.html#child_process_child_process_spawn_command_args_options)/[`child_process#exec()`](https://nodejs.org/api/child_process.html#child_process_child_process_exec_command_options_callback) - -#### cwd - -Type: `string`\ -Default: `process.cwd()` - -Current working directory of the child process. - -#### env - -Type: `object`\ -Default: `process.env` - -Environment key-value pairs. Extends automatically from `process.env`. Set [`extendEnv`](#extendenv) to `false` if you don't want this. - -#### argv0 - -Type: `string` - -Explicitly set the value of `argv[0]` sent to the child process. This will be set to `file` if not specified. - -#### stdio - -Type: `string | string[]`\ -Default: `pipe` - -Child's [stdio](https://nodejs.org/api/child_process.html#child_process_options_stdio) configuration. - -#### serialization - -Type: `string`\ -Default: `'json'` - -Specify the kind of serialization used for sending messages between processes when using the [`stdio: 'ipc'`](#stdio) option or [`execa.node()`](#execanodescriptpath-arguments-options): - - `json`: Uses `JSON.stringify()` and `JSON.parse()`. - - `advanced`: Uses [`v8.serialize()`](https://nodejs.org/api/v8.html#v8_v8_serialize_value) - -Requires Node.js `13.2.0` or later. - -[More info.](https://nodejs.org/api/child_process.html#child_process_advanced_serialization) - -#### detached - -Type: `boolean` - -Prepare child to run independently of its parent process. Specific behavior [depends on the platform](https://nodejs.org/api/child_process.html#child_process_options_detached). - -#### uid - -Type: `number` - -Sets the user identity of the process. - -#### gid - -Type: `number` - -Sets the group identity of the process. - -#### shell - -Type: `boolean | string`\ -Default: `false` - -If `true`, runs `file` inside of a shell. Uses `/bin/sh` on UNIX and `cmd.exe` on Windows. A different shell can be specified as a string. The shell should understand the `-c` switch on UNIX or `/d /s /c` on Windows. - -We recommend against using this option since it is: -- not cross-platform, encouraging shell-specific syntax. -- slower, because of the additional shell interpretation. -- unsafe, potentially allowing command injection. - -#### encoding - -Type: `string | null`\ -Default: `utf8` - -Specify the character encoding used to decode the `stdout` and `stderr` output. If set to `null`, then `stdout` and `stderr` will be a `Buffer` instead of a string. - -#### timeout - -Type: `number`\ -Default: `0` - -If timeout is greater than `0`, the parent will send the signal identified by the `killSignal` property (the default is `SIGTERM`) if the child runs longer than timeout milliseconds. - -#### maxBuffer - -Type: `number`\ -Default: `100_000_000` (100 MB) - -Largest amount of data in bytes allowed on `stdout` or `stderr`. - -#### killSignal - -Type: `string | number`\ -Default: `SIGTERM` - -Signal value to be used when the spawned process will be killed. - -#### windowsVerbatimArguments - -Type: `boolean`\ -Default: `false` - -If `true`, no quoting or escaping of arguments is done on Windows. Ignored on other platforms. This is set to `true` automatically when the `shell` option is `true`. - -#### windowsHide - -Type: `boolean`\ -Default: `true` - -On Windows, do not create a new console window. Please note this also prevents `CTRL-C` [from working](https://github.com/nodejs/node/issues/29837) on Windows. - -#### nodePath *(For `.node()` only)* - -Type: `string`\ -Default: [`process.execPath`](https://nodejs.org/api/process.html#process_process_execpath) - -Node.js executable used to create the child process. - -#### nodeOptions *(For `.node()` only)* - -Type: `string[]`\ -Default: [`process.execArgv`](https://nodejs.org/api/process.html#process_process_execargv) - -List of [CLI options](https://nodejs.org/api/cli.html#cli_options) passed to the Node.js executable. - -## Tips - -### Retry on error - -Gracefully handle failures by using automatic retries and exponential backoff with the [`p-retry`](https://github.com/sindresorhus/p-retry) package: - -```js -const pRetry = require('p-retry'); - -const run = async () => { - const results = await execa('curl', ['-sSL', 'https://sindresorhus.com/unicorn']); - return results; -}; - -(async () => { - console.log(await pRetry(run, {retries: 5})); -})(); -``` - -### Save and pipe output from a child process - -Let's say you want to show the output of a child process in real-time while also saving it to a variable. - -```js -const execa = require('execa'); - -const subprocess = execa('echo', ['foo']); -subprocess.stdout.pipe(process.stdout); - -(async () => { - const {stdout} = await subprocess; - console.log('child output:', stdout); -})(); -``` - -### Redirect output to a file - -```js -const execa = require('execa'); - -const subprocess = execa('echo', ['foo']) -subprocess.stdout.pipe(fs.createWriteStream('stdout.txt')) -``` - -### Redirect input from a file - -```js -const execa = require('execa'); - -const subprocess = execa('cat') -fs.createReadStream('stdin.txt').pipe(subprocess.stdin) -``` - -### Execute the current package's binary - -```js -const {getBinPathSync} = require('get-bin-path'); - -const binPath = getBinPathSync(); -const subprocess = execa(binPath); -``` - -`execa` can be combined with [`get-bin-path`](https://github.com/ehmicky/get-bin-path) to test the current package's binary. As opposed to hard-coding the path to the binary, this validates that the `package.json` `bin` field is correctly set up. - -## Related - -- [gulp-execa](https://github.com/ehmicky/gulp-execa) - Gulp plugin for `execa` -- [nvexeca](https://github.com/ehmicky/nvexeca) - Run `execa` using any Node.js version -- [sudo-prompt](https://github.com/jorangreef/sudo-prompt) - Run commands with elevated privileges. - -## Maintainers - -- [Sindre Sorhus](https://github.com/sindresorhus) -- [@ehmicky](https://github.com/ehmicky) - ---- - -<div align="center"> - <b> - <a href="https://tidelift.com/subscription/pkg/npm-execa?utm_source=npm-execa&utm_medium=referral&utm_campaign=readme">Get professional support for this package with a Tidelift subscription</a> - </b> - <br> - <sub> - Tidelift helps make open source sustainable for maintainers while giving companies<br>assurances about security, maintenance, and licensing for their dependencies. - </sub> -</div> diff --git a/ionic/platforms/android/cordova/node_modules/fs-extra/CHANGELOG.md b/ionic/platforms/android/cordova/node_modules/fs-extra/CHANGELOG.md deleted file mode 100644 index 668efb265584eacf04b21001dfd719007abdbb54..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/fs-extra/CHANGELOG.md +++ /dev/null @@ -1,896 +0,0 @@ -9.0.1 / 2020-06-03 ------------------- - -- Fix issue with `ensureFile()` when used with Jest on Windows ([#804](https://github.com/jprichardson/node-fs-extra/issues/804), [#805](https://github.com/jprichardson/node-fs-extra/pull/805)) -- Remove unneeded `process.umask()` call ([#791](https://github.com/jprichardson/node-fs-extra/pull/791)) -- Docs improvements ([#753](https://github.com/jprichardson/node-fs-extra/pull/753), [#795](https://github.com/jprichardson/node-fs-extra/pull/795), [#797](https://github.com/jprichardson/node-fs-extra/pull/797)) - -9.0.0 / 2020-03-19 ------------------- - -### Breaking changes - -- Requires Node.js version 10 or greater ([#725](https://github.com/jprichardson/node-fs-extra/issues/725), [#751](https://github.com/jprichardson/node-fs-extra/pull/751)) -- Switched `ensureDir*` to use a fork of https://github.com/sindresorhus/make-dir to make use of native recursive `fs.mkdir` where possible ([#619](https://github.com/jprichardson/node-fs-extra/issues/619), [#756](https://github.com/jprichardson/node-fs-extra/pull/756)) -- Properly preserve `atime` for `copy*` with `preserveTimestamps` option ([#633](https://github.com/jprichardson/node-fs-extra/pull/633)) - -**The following changes, allthough technically breaking, will not affect the vast majority of users:** - -- `outputJson` now outputs objects as they were when the function was called, even if they are mutated later ([#702](https://github.com/jprichardson/node-fs-extra/issues/702), [#768](https://github.com/jprichardson/node-fs-extra/pull/768)) -- Cannot pass `null` as an options parameter to `*Json*` methods ([#745](https://github.com/jprichardson/node-fs-extra/issues/745), [#768](https://github.com/jprichardson/node-fs-extra/pull/768)) - -### Improvements - -- Add promise shims for `fs.writev` & `fs.opendir` ([#747](https://github.com/jprichardson/node-fs-extra/pull/747)) -- Better errors for `ensureFile` ([#696](https://github.com/jprichardson/node-fs-extra/issues/696), [#744](https://github.com/jprichardson/node-fs-extra/pull/744)) -- Better file comparison for older Node versions ([#694](https://github.com/jprichardson/node-fs-extra/pull/694)) - -### Miscellaneous changes -- Peformance optimizations ([#762](https://github.com/jprichardson/node-fs-extra/issues/762), [#764](https://github.com/jprichardson/node-fs-extra/pull/764)) -- Add missing documentation for aliases ([#758](https://github.com/jprichardson/node-fs-extra/issues/758), [#766](https://github.com/jprichardson/node-fs-extra/pull/766)) -- Update `universalify` dependency ([#767](https://github.com/jprichardson/node-fs-extra/pull/767)) - -8.1.0 / 2019-06-28 ------------------- - -- Add support for promisified `fs.realpath.native` in Node v9.2+ ([#650](https://github.com/jprichardson/node-fs-extra/issues/650), [#682](https://github.com/jprichardson/node-fs-extra/pull/682)) -- Update `graceful-fs` dependency ([#700](https://github.com/jprichardson/node-fs-extra/pull/700)) -- Use `graceful-fs` everywhere ([#700](https://github.com/jprichardson/node-fs-extra/pull/700)) - -8.0.1 / 2019-05-13 ------------------- - -- Fix bug `Maximum call stack size exceeded` error in `util/stat` ([#679](https://github.com/jprichardson/node-fs-extra/pull/679)) - -8.0.0 / 2019-05-11 ------------------- - -**NOTE:** Node.js v6 support is deprecated, and will be dropped in the next major release. - -- Use `renameSync()` under the hood in `moveSync()` -- Fix bug with bind-mounted directories in `copy*()` ([#613](https://github.com/jprichardson/node-fs-extra/issues/613), [#618](https://github.com/jprichardson/node-fs-extra/pull/618)) -- Fix bug in `move()` with case-insensitive file systems -- Use `fs.stat()`'s `bigint` option in `copy*()` & `move*()` where possible ([#657](https://github.com/jprichardson/node-fs-extra/issues/657)) - -7.0.1 / 2018-11-07 ------------------- - -- Fix `removeSync()` on Windows, in some cases, it would error out with `ENOTEMPTY` ([#646](https://github.com/jprichardson/node-fs-extra/pull/646)) -- Document `mode` option for `ensureDir*()` ([#587](https://github.com/jprichardson/node-fs-extra/pull/587)) -- Don't include documentation files in npm package tarball ([#642](https://github.com/jprichardson/node-fs-extra/issues/642), [#643](https://github.com/jprichardson/node-fs-extra/pull/643)) - -7.0.0 / 2018-07-16 ------------------- - -- **BREAKING:** Refine `copy*()` handling of symlinks to properly detect symlinks that point to the same file. ([#582](https://github.com/jprichardson/node-fs-extra/pull/582)) -- Fix bug with copying write-protected directories ([#600](https://github.com/jprichardson/node-fs-extra/pull/600)) -- Universalify `fs.lchmod()` ([#596](https://github.com/jprichardson/node-fs-extra/pull/596)) -- Add `engines` field to `package.json` ([#580](https://github.com/jprichardson/node-fs-extra/pull/580)) - -6.0.1 / 2018-05-09 ------------------- - -- Fix `fs.promises` `ExperimentalWarning` on Node v10.1.0 ([#578](https://github.com/jprichardson/node-fs-extra/pull/578)) - -6.0.0 / 2018-05-01 ------------------- - -- Drop support for Node.js versions 4, 5, & 7 ([#564](https://github.com/jprichardson/node-fs-extra/pull/564)) -- Rewrite `move` to use `fs.rename` where possible ([#549](https://github.com/jprichardson/node-fs-extra/pull/549)) -- Don't convert relative paths to absolute paths for `filter` ([#554](https://github.com/jprichardson/node-fs-extra/pull/554)) -- `copy*`'s behavior when `preserveTimestamps` is `false` has been OS-dependent since 5.0.0, but that's now explicitly noted in the docs ([#563](https://github.com/jprichardson/node-fs-extra/pull/563)) -- Fix subdirectory detection for `copy*` & `move*` ([#541](https://github.com/jprichardson/node-fs-extra/pull/541)) -- Handle case-insensitive paths correctly in `copy*` ([#568](https://github.com/jprichardson/node-fs-extra/pull/568)) - -5.0.0 / 2017-12-11 ------------------- - -Significant refactor of `copy()` & `copySync()`, including breaking changes. No changes to other functions in this release. - -Huge thanks to **[@manidlou](https://github.com/manidlou)** for doing most of the work on this release. - -- The `filter` option can no longer be a RegExp (must be a function). This was deprecated since fs-extra v1.0.0. [#512](https://github.com/jprichardson/node-fs-extra/pull/512) -- `copy()`'s `filter` option can now be a function that returns a Promise. [#518](https://github.com/jprichardson/node-fs-extra/pull/518) -- `copy()` & `copySync()` now use `fs.copyFile()`/`fs.copyFileSync()` in environments that support it (currently Node 8.5.0+). Older Node versions still get the old implementation. [#505](https://github.com/jprichardson/node-fs-extra/pull/505) -- Don't allow copying a directory into itself. [#83](https://github.com/jprichardson/node-fs-extra/issues/83) -- Handle copying between identical files. [#198](https://github.com/jprichardson/node-fs-extra/issues/198) -- Error out when copying an empty folder to a path that already exists. [#464](https://github.com/jprichardson/node-fs-extra/issues/464) -- Don't create `dest`'s parent if the `filter` function aborts the `copy()` operation. [#517](https://github.com/jprichardson/node-fs-extra/pull/517) -- Fix `writeStream` not being closed if there was an error in `copy()`. [#516](https://github.com/jprichardson/node-fs-extra/pull/516) - -4.0.3 / 2017-12-05 ------------------- - -- Fix wrong `chmod` values in `fs.remove()` [#501](https://github.com/jprichardson/node-fs-extra/pull/501) -- Fix `TypeError` on systems that don't have some `fs` operations like `lchown` [#520](https://github.com/jprichardson/node-fs-extra/pull/520) - -4.0.2 / 2017-09-12 ------------------- - -- Added `EOL` option to `writeJson*` & `outputJson*` (via upgrade to jsonfile v4) -- Added promise support to [`fs.copyFile()`](https://nodejs.org/api/fs.html#fs_fs_copyfile_src_dest_flags_callback) in Node 8.5+ -- Added `.js` extension to `main` field in `package.json` for better tooling compatibility. [#485](https://github.com/jprichardson/node-fs-extra/pull/485) - -4.0.1 / 2017-07-31 ------------------- - -### Fixed - -- Previously, `ensureFile()` & `ensureFileSync()` would do nothing if the path was a directory. Now, they error out for consistency with `ensureDir()`. [#465](https://github.com/jprichardson/node-fs-extra/issues/465), [#466](https://github.com/jprichardson/node-fs-extra/pull/466), [#470](https://github.com/jprichardson/node-fs-extra/issues/470) - -4.0.0 / 2017-07-14 ------------------- - -### Changed - -- **BREAKING:** The promisified versions of `fs.read()` & `fs.write()` now return objects. See [the docs](docs/fs-read-write.md) for details. [#436](https://github.com/jprichardson/node-fs-extra/issues/436), [#449](https://github.com/jprichardson/node-fs-extra/pull/449) -- `fs.move()` now errors out when destination is a subdirectory of source. [#458](https://github.com/jprichardson/node-fs-extra/pull/458) -- Applied upstream fixes from `rimraf` to `fs.remove()` & `fs.removeSync()`. [#459](https://github.com/jprichardson/node-fs-extra/pull/459) - -### Fixed - -- Got `fs.outputJSONSync()` working again; it was broken due to refactoring. [#428](https://github.com/jprichardson/node-fs-extra/pull/428) - -Also clarified the docs in a few places. - -3.0.1 / 2017-05-04 ------------------- - -- Fix bug in `move()` & `moveSync()` when source and destination are the same, and source does not exist. [#415](https://github.com/jprichardson/node-fs-extra/pull/415) - -3.0.0 / 2017-04-27 ------------------- - -### Added - -- **BREAKING:** Added Promise support. All asynchronous native fs methods and fs-extra methods now return a promise if the callback is not passed. [#403](https://github.com/jprichardson/node-fs-extra/pull/403) -- `pathExists()`, a replacement for the deprecated `fs.exists`. `pathExists` has a normal error-first callback signature. Also added `pathExistsSync`, an alias to `fs.existsSync`, for completeness. [#406](https://github.com/jprichardson/node-fs-extra/pull/406) - -### Removed - -- **BREAKING:** Removed support for setting the default spaces for `writeJson()`, `writeJsonSync()`, `outputJson()`, & `outputJsonSync()`. This was undocumented. [#402](https://github.com/jprichardson/node-fs-extra/pull/402) - -### Changed - -- Upgraded jsonfile dependency to v3.0.0: - - **BREAKING:** Changed behavior of `throws` option for `readJsonSync()`; now does not throw filesystem errors when `throws` is `false`. -- **BREAKING:** `writeJson()`, `writeJsonSync()`, `outputJson()`, & `outputJsonSync()` now output minified JSON by default for consistency with `JSON.stringify()`; set the `spaces` option to `2` to override this new behavior. [#402](https://github.com/jprichardson/node-fs-extra/pull/402) -- Use `Buffer.allocUnsafe()` instead of `new Buffer()` in environments that support it. [#394](https://github.com/jprichardson/node-fs-extra/pull/394) - -### Fixed - -- `removeSync()` silently failed on Windows in some cases. Now throws an `EBUSY` error. [#408](https://github.com/jprichardson/node-fs-extra/pull/408) - -2.1.2 / 2017-03-16 ------------------- - -### Fixed - -- Weird windows bug that resulted in `ensureDir()`'s callback being called twice in some cases. This bug may have also affected `remove()`. See [#392](https://github.com/jprichardson/node-fs-extra/issues/392), [#393](https://github.com/jprichardson/node-fs-extra/pull/393) - -2.1.1 / 2017-03-15 ------------------- - -### Fixed - -- Reverted [`5597bd`](https://github.com/jprichardson/node-fs-extra/commit/5597bd5b67f7d060f5f5bf26e9635be48330f5d7), this broke compatibility with Node.js versions v4+ but less than `v4.5.0`. -- Remove `Buffer.alloc()` usage in `moveSync()`. - -2.1.0 / 2017-03-15 ------------------- - -Thanks to [Mani Maghsoudlou (@manidlou)](https://github.com/manidlou) & [Jan Peer Stöcklmair (@JPeer264)](https://github.com/JPeer264) for their extraordinary help with this release! - -### Added -- `moveSync()` See [#309], [#381](https://github.com/jprichardson/node-fs-extra/pull/381). ([@manidlou](https://github.com/manidlou)) -- `copy()` and `copySync()`'s `filter` option now gets the destination path passed as the second parameter. [#366](https://github.com/jprichardson/node-fs-extra/pull/366) ([@manidlou](https://github.com/manidlou)) - -### Changed -- Use `Buffer.alloc()` instead of deprecated `new Buffer()` in `copySync()`. [#380](https://github.com/jprichardson/node-fs-extra/pull/380) ([@manidlou](https://github.com/manidlou)) -- Refactored entire codebase to use ES6 features supported by Node.js v4+ [#355](https://github.com/jprichardson/node-fs-extra/issues/355). [(@JPeer264)](https://github.com/JPeer264) -- Refactored docs. ([@manidlou](https://github.com/manidlou)) - -### Fixed - -- `move()` shouldn't error out when source and dest are the same. [#377](https://github.com/jprichardson/node-fs-extra/issues/377), [#378](https://github.com/jprichardson/node-fs-extra/pull/378) ([@jdalton](https://github.com/jdalton)) - -2.0.0 / 2017-01-16 ------------------- - -### Removed -- **BREAKING:** Removed support for Node `v0.12`. The Node foundation stopped officially supporting it -on Jan 1st, 2017. -- **BREAKING:** Remove `walk()` and `walkSync()`. `walkSync()` was only part of `fs-extra` for a little -over two months. Use [klaw](https://github.com/jprichardson/node-klaw) instead of `walk()`, in fact, `walk()` was just -an alias to klaw. For `walkSync()` use [klaw-sync](https://github.com/mawni/node-klaw-sync). See: [#338], [#339] - -### Changed -- **BREAKING:** Renamed `clobber` to `overwrite`. This affects `copy()`, `copySync()`, and `move()`. [#330], [#333] -- Moved docs, to `docs/`. [#340] - -### Fixed -- Apply filters to directories in `copySync()` like in `copy()`. [#324] -- A specific condition when disk is under heavy use, `copy()` can fail. [#326] - - -1.0.0 / 2016-11-01 ------------------- - -After five years of development, we finally have reach the 1.0.0 milestone! Big thanks goes -to [Ryan Zim](https://github.com/RyanZim) for leading the charge on this release! - -### Added -- `walkSync()` - -### Changed -- **BREAKING**: dropped Node v0.10 support. -- disabled `rimaf` globbing, wasn't used. [#280] -- deprecate `copy()/copySync()` option `filter` if it's a `RegExp`. `filter` should now be a function. -- inline `rimraf`. This is temporary and was done because `rimraf` depended upon the beefy `glob` which `fs-extra` does not use. [#300] - -### Fixed -- bug fix proper closing of file handle on `utimesMillis()` [#271] -- proper escaping of files with dollar signs [#291] -- `copySync()` failed if user didn't own file. [#199], [#301] - - -0.30.0 / 2016-04-28 -------------------- -- Brought back Node v0.10 support. I didn't realize there was still demand. Official support will end **2016-10-01**. - -0.29.0 / 2016-04-27 -------------------- -- **BREAKING**: removed support for Node v0.10. If you still want to use Node v0.10, everything should work except for `ensureLink()/ensureSymlink()`. Node v0.12 is still supported but will be dropped in the near future as well. - -0.28.0 / 2016-04-17 -------------------- -- **BREAKING**: removed `createOutputStream()`. Use https://www.npmjs.com/package/create-output-stream. See: [#192][#192] -- `mkdirs()/mkdirsSync()` check for invalid win32 path chars. See: [#209][#209], [#237][#237] -- `mkdirs()/mkdirsSync()` if drive not mounted, error. See: [#93][#93] - -0.27.0 / 2016-04-15 -------------------- -- add `dereference` option to `copySync()`. [#235][#235] - -0.26.7 / 2016-03-16 -------------------- -- fixed `copy()` if source and dest are the same. [#230][#230] - -0.26.6 / 2016-03-15 -------------------- -- fixed if `emptyDir()` does not have a callback: [#229][#229] - -0.26.5 / 2016-01-27 -------------------- -- `copy()` with two arguments (w/o callback) was broken. See: [#215][#215] - -0.26.4 / 2016-01-05 -------------------- -- `copySync()` made `preserveTimestamps` default consistent with `copy()` which is `false`. See: [#208][#208] - -0.26.3 / 2015-12-17 -------------------- -- fixed `copy()` hangup in copying blockDevice / characterDevice / `/dev/null`. See: [#193][#193] - -0.26.2 / 2015-11-02 -------------------- -- fixed `outputJson{Sync}()` spacing adherence to `fs.spaces` - -0.26.1 / 2015-11-02 -------------------- -- fixed `copySync()` when `clogger=true` and the destination is read only. See: [#190][#190] - -0.26.0 / 2015-10-25 -------------------- -- extracted the `walk()` function into its own module [`klaw`](https://github.com/jprichardson/node-klaw). - -0.25.0 / 2015-10-24 -------------------- -- now has a file walker `walk()` - -0.24.0 / 2015-08-28 -------------------- -- removed alias `delete()` and `deleteSync()`. See: [#171][#171] - -0.23.1 / 2015-08-07 -------------------- -- Better handling of errors for `move()` when moving across devices. [#170][#170] -- `ensureSymlink()` and `ensureLink()` should not throw errors if link exists. [#169][#169] - -0.23.0 / 2015-08-06 -------------------- -- added `ensureLink{Sync}()` and `ensureSymlink{Sync}()`. See: [#165][#165] - -0.22.1 / 2015-07-09 -------------------- -- Prevent calling `hasMillisResSync()` on module load. See: [#149][#149]. -Fixes regression that was introduced in `0.21.0`. - -0.22.0 / 2015-07-09 -------------------- -- preserve permissions / ownership in `copy()`. See: [#54][#54] - -0.21.0 / 2015-07-04 -------------------- -- add option to preserve timestamps in `copy()` and `copySync()`. See: [#141][#141] -- updated `graceful-fs@3.x` to `4.x`. This brings in features from `amazing-graceful-fs` (much cleaner code / less hacks) - -0.20.1 / 2015-06-23 -------------------- -- fixed regression caused by latest jsonfile update: See: https://github.com/jprichardson/node-jsonfile/issues/26 - -0.20.0 / 2015-06-19 -------------------- -- removed `jsonfile` aliases with `File` in the name, they weren't documented and probably weren't in use e.g. -this package had both `fs.readJsonFile` and `fs.readJson` that were aliases to each other, now use `fs.readJson`. -- preliminary walker created. Intentionally not documented. If you use it, it will almost certainly change and break your code. -- started moving tests inline -- upgraded to `jsonfile@2.1.0`, can now pass JSON revivers/replacers to `readJson()`, `writeJson()`, `outputJson()` - -0.19.0 / 2015-06-08 -------------------- -- `fs.copy()` had support for Node v0.8, dropped support - -0.18.4 / 2015-05-22 -------------------- -- fixed license field according to this: [#136][#136] and https://github.com/npm/npm/releases/tag/v2.10.0 - -0.18.3 / 2015-05-08 -------------------- -- bugfix: handle `EEXIST` when clobbering on some Linux systems. [#134][#134] - -0.18.2 / 2015-04-17 -------------------- -- bugfix: allow `F_OK` ([#120][#120]) - -0.18.1 / 2015-04-15 -------------------- -- improved windows support for `move()` a bit. https://github.com/jprichardson/node-fs-extra/commit/92838980f25dc2ee4ec46b43ee14d3c4a1d30c1b -- fixed a lot of tests for Windows (appveyor) - -0.18.0 / 2015-03-31 -------------------- -- added `emptyDir()` and `emptyDirSync()` - -0.17.0 / 2015-03-28 -------------------- -- `copySync` added `clobber` option (before always would clobber, now if `clobber` is `false` it throws an error if the destination exists). -**Only works with files at the moment.** -- `createOutputStream()` added. See: [#118][#118] - -0.16.5 / 2015-03-08 -------------------- -- fixed `fs.move` when `clobber` is `true` and destination is a directory, it should clobber. [#114][#114] - -0.16.4 / 2015-03-01 -------------------- -- `fs.mkdirs` fix infinite loop on Windows. See: See https://github.com/substack/node-mkdirp/pull/74 and https://github.com/substack/node-mkdirp/issues/66 - -0.16.3 / 2015-01-28 -------------------- -- reverted https://github.com/jprichardson/node-fs-extra/commit/1ee77c8a805eba5b99382a2591ff99667847c9c9 - - -0.16.2 / 2015-01-28 -------------------- -- fixed `fs.copy` for Node v0.8 (support is temporary and will be removed in the near future) - -0.16.1 / 2015-01-28 -------------------- -- if `setImmediate` is not available, fall back to `process.nextTick` - -0.16.0 / 2015-01-28 -------------------- -- bugfix `fs.move()` into itself. Closes [#104] -- bugfix `fs.move()` moving directory across device. Closes [#108] -- added coveralls support -- bugfix: nasty multiple callback `fs.copy()` bug. Closes [#98] -- misc fs.copy code cleanups - -0.15.0 / 2015-01-21 -------------------- -- dropped `ncp`, imported code in -- because of previous, now supports `io.js` -- `graceful-fs` is now a dependency - -0.14.0 / 2015-01-05 -------------------- -- changed `copy`/`copySync` from `fs.copy(src, dest, [filters], callback)` to `fs.copy(src, dest, [options], callback)` [#100][#100] -- removed mockfs tests for mkdirp (this may be temporary, but was getting in the way of other tests) - -0.13.0 / 2014-12-10 -------------------- -- removed `touch` and `touchSync` methods (they didn't handle permissions like UNIX touch) -- updated `"ncp": "^0.6.0"` to `"ncp": "^1.0.1"` -- imported `mkdirp` => `minimist` and `mkdirp` are no longer dependences, should now appease people who wanted `mkdirp` to be `--use_strict` safe. See [#59]([#59][#59]) - -0.12.0 / 2014-09-22 -------------------- -- copy symlinks in `copySync()` [#85][#85] - -0.11.1 / 2014-09-02 -------------------- -- bugfix `copySync()` preserve file permissions [#80][#80] - -0.11.0 / 2014-08-11 -------------------- -- upgraded `"ncp": "^0.5.1"` to `"ncp": "^0.6.0"` -- upgrade `jsonfile": "^1.2.0"` to `jsonfile": "^2.0.0"` => on write, json files now have `\n` at end. Also adds `options.throws` to `readJsonSync()` -see https://github.com/jprichardson/node-jsonfile#readfilesyncfilename-options for more details. - -0.10.0 / 2014-06-29 ------------------- -* bugfix: upgaded `"jsonfile": "~1.1.0"` to `"jsonfile": "^1.2.0"`, bumped minor because of `jsonfile` dep change -from `~` to `^`. [#67] - -0.9.1 / 2014-05-22 ------------------- -* removed Node.js `0.8.x` support, `0.9.0` was published moments ago and should have been done there - -0.9.0 / 2014-05-22 ------------------- -* upgraded `ncp` from `~0.4.2` to `^0.5.1`, [#58] -* upgraded `rimraf` from `~2.2.6` to `^2.2.8` -* upgraded `mkdirp` from `0.3.x` to `^0.5.0` -* added methods `ensureFile()`, `ensureFileSync()` -* added methods `ensureDir()`, `ensureDirSync()` [#31] -* added `move()` method. From: https://github.com/andrewrk/node-mv - - -0.8.1 / 2013-10-24 ------------------- -* copy failed to return an error to the callback if a file doesn't exist (ulikoehler [#38], [#39]) - -0.8.0 / 2013-10-14 ------------------- -* `filter` implemented on `copy()` and `copySync()`. (Srirangan / [#36]) - -0.7.1 / 2013-10-12 ------------------- -* `copySync()` implemented (Srirangan / [#33]) -* updated to the latest `jsonfile` version `1.1.0` which gives `options` params for the JSON methods. Closes [#32] - -0.7.0 / 2013-10-07 ------------------- -* update readme conventions -* `copy()` now works if destination directory does not exist. Closes [#29] - -0.6.4 / 2013-09-05 ------------------- -* changed `homepage` field in package.json to remove NPM warning - -0.6.3 / 2013-06-28 ------------------- -* changed JSON spacing default from `4` to `2` to follow Node conventions -* updated `jsonfile` dep -* updated `rimraf` dep - -0.6.2 / 2013-06-28 ------------------- -* added .npmignore, [#25] - -0.6.1 / 2013-05-14 ------------------- -* modified for `strict` mode, closes [#24] -* added `outputJson()/outputJsonSync()`, closes [#23] - -0.6.0 / 2013-03-18 ------------------- -* removed node 0.6 support -* added node 0.10 support -* upgraded to latest `ncp` and `rimraf`. -* optional `graceful-fs` support. Closes [#17] - - -0.5.0 / 2013-02-03 ------------------- -* Removed `readTextFile`. -* Renamed `readJSONFile` to `readJSON` and `readJson`, same with write. -* Restructured documentation a bit. Added roadmap. - -0.4.0 / 2013-01-28 ------------------- -* Set default spaces in `jsonfile` from 4 to 2. -* Updated `testutil` deps for tests. -* Renamed `touch()` to `createFile()` -* Added `outputFile()` and `outputFileSync()` -* Changed creation of testing diretories so the /tmp dir is not littered. -* Added `readTextFile()` and `readTextFileSync()`. - -0.3.2 / 2012-11-01 ------------------- -* Added `touch()` and `touchSync()` methods. - -0.3.1 / 2012-10-11 ------------------- -* Fixed some stray globals. - -0.3.0 / 2012-10-09 ------------------- -* Removed all CoffeeScript from tests. -* Renamed `mkdir` to `mkdirs`/`mkdirp`. - -0.2.1 / 2012-09-11 ------------------- -* Updated `rimraf` dep. - -0.2.0 / 2012-09-10 ------------------- -* Rewrote module into JavaScript. (Must still rewrite tests into JavaScript) -* Added all methods of [jsonfile](https://github.com/jprichardson/node-jsonfile) -* Added Travis-CI. - -0.1.3 / 2012-08-13 ------------------- -* Added method `readJSONFile`. - -0.1.2 / 2012-06-15 ------------------- -* Bug fix: `deleteSync()` didn't exist. -* Verified Node v0.8 compatibility. - -0.1.1 / 2012-06-15 ------------------- -* Fixed bug in `remove()`/`delete()` that wouldn't execute the function if a callback wasn't passed. - -0.1.0 / 2012-05-31 ------------------- -* Renamed `copyFile()` to `copy()`. `copy()` can now copy directories (recursively) too. -* Renamed `rmrf()` to `remove()`. -* `remove()` aliased with `delete()`. -* Added `mkdirp` capabilities. Named: `mkdir()`. Hides Node.js native `mkdir()`. -* Instead of exporting the native `fs` module with new functions, I now copy over the native methods to a new object and export that instead. - -0.0.4 / 2012-03-14 ------------------- -* Removed CoffeeScript dependency - -0.0.3 / 2012-01-11 ------------------- -* Added methods rmrf and rmrfSync -* Moved tests from Jasmine to Mocha - - -[#344]: https://github.com/jprichardson/node-fs-extra/issues/344 "Licence Year" -[#343]: https://github.com/jprichardson/node-fs-extra/pull/343 "Add klaw-sync link to readme" -[#342]: https://github.com/jprichardson/node-fs-extra/pull/342 "allow preserveTimestamps when use move" -[#341]: https://github.com/jprichardson/node-fs-extra/issues/341 "mkdirp(path.dirname(dest) in move() logic needs cleaning up [question]" -[#340]: https://github.com/jprichardson/node-fs-extra/pull/340 "Move docs to seperate docs folder [documentation]" -[#339]: https://github.com/jprichardson/node-fs-extra/pull/339 "Remove walk() & walkSync() [feature-walk]" -[#338]: https://github.com/jprichardson/node-fs-extra/issues/338 "Remove walk() and walkSync() [feature-walk]" -[#337]: https://github.com/jprichardson/node-fs-extra/issues/337 "copy doesn't return a yieldable value" -[#336]: https://github.com/jprichardson/node-fs-extra/pull/336 "Docs enhanced walk sync [documentation, feature-walk]" -[#335]: https://github.com/jprichardson/node-fs-extra/pull/335 "Refactor move() tests [feature-move]" -[#334]: https://github.com/jprichardson/node-fs-extra/pull/334 "Cleanup lib/move/index.js [feature-move]" -[#333]: https://github.com/jprichardson/node-fs-extra/pull/333 "Rename clobber to overwrite [feature-copy, feature-move]" -[#332]: https://github.com/jprichardson/node-fs-extra/pull/332 "BREAKING: Drop Node v0.12 & io.js support" -[#331]: https://github.com/jprichardson/node-fs-extra/issues/331 "Add support for chmodr [enhancement, future]" -[#330]: https://github.com/jprichardson/node-fs-extra/pull/330 "BREAKING: Do not error when copy destination exists & clobber: false [feature-copy]" -[#329]: https://github.com/jprichardson/node-fs-extra/issues/329 "Does .walk() scale to large directories? [question]" -[#328]: https://github.com/jprichardson/node-fs-extra/issues/328 "Copying files corrupts [feature-copy, needs-confirmed]" -[#327]: https://github.com/jprichardson/node-fs-extra/pull/327 "Use writeStream 'finish' event instead of 'close' [bug, feature-copy]" -[#326]: https://github.com/jprichardson/node-fs-extra/issues/326 "fs.copy fails with chmod error when disk under heavy use [bug, feature-copy]" -[#325]: https://github.com/jprichardson/node-fs-extra/issues/325 "ensureDir is difficult to promisify [enhancement]" -[#324]: https://github.com/jprichardson/node-fs-extra/pull/324 "copySync() should apply filter to directories like copy() [bug, feature-copy]" -[#323]: https://github.com/jprichardson/node-fs-extra/issues/323 "Support for `dest` being a directory when using `copy*()`?" -[#322]: https://github.com/jprichardson/node-fs-extra/pull/322 "Add fs-promise as fs-extra-promise alternative" -[#321]: https://github.com/jprichardson/node-fs-extra/issues/321 "fs.copy() with clobber set to false return EEXIST error [feature-copy]" -[#320]: https://github.com/jprichardson/node-fs-extra/issues/320 "fs.copySync: Error: EPERM: operation not permitted, unlink " -[#319]: https://github.com/jprichardson/node-fs-extra/issues/319 "Create directory if not exists" -[#318]: https://github.com/jprichardson/node-fs-extra/issues/318 "Support glob patterns [enhancement, future]" -[#317]: https://github.com/jprichardson/node-fs-extra/pull/317 "Adding copy sync test for src file without write perms" -[#316]: https://github.com/jprichardson/node-fs-extra/pull/316 "Remove move()'s broken limit option [feature-move]" -[#315]: https://github.com/jprichardson/node-fs-extra/pull/315 "Fix move clobber tests to work around graceful-fs bug." -[#314]: https://github.com/jprichardson/node-fs-extra/issues/314 "move() limit option [documentation, enhancement, feature-move]" -[#313]: https://github.com/jprichardson/node-fs-extra/pull/313 "Test that remove() ignores glob characters." -[#312]: https://github.com/jprichardson/node-fs-extra/pull/312 "Enhance walkSync() to return items with path and stats [feature-walk]" -[#311]: https://github.com/jprichardson/node-fs-extra/issues/311 "move() not work when dest name not provided [feature-move]" -[#310]: https://github.com/jprichardson/node-fs-extra/issues/310 "Edit walkSync to return items like what walk emits [documentation, enhancement, feature-walk]" -[#309]: https://github.com/jprichardson/node-fs-extra/issues/309 "moveSync support [enhancement, feature-move]" -[#308]: https://github.com/jprichardson/node-fs-extra/pull/308 "Fix incorrect anchor link" -[#307]: https://github.com/jprichardson/node-fs-extra/pull/307 "Fix coverage" -[#306]: https://github.com/jprichardson/node-fs-extra/pull/306 "Update devDeps, fix lint error" -[#305]: https://github.com/jprichardson/node-fs-extra/pull/305 "Re-add Coveralls" -[#304]: https://github.com/jprichardson/node-fs-extra/pull/304 "Remove path-is-absolute [enhancement]" -[#303]: https://github.com/jprichardson/node-fs-extra/pull/303 "Document copySync filter inconsistency [documentation, feature-copy]" -[#302]: https://github.com/jprichardson/node-fs-extra/pull/302 "fix(console): depreciated -> deprecated" -[#301]: https://github.com/jprichardson/node-fs-extra/pull/301 "Remove chmod call from copySync [feature-copy]" -[#300]: https://github.com/jprichardson/node-fs-extra/pull/300 "Inline Rimraf [enhancement, feature-move, feature-remove]" -[#299]: https://github.com/jprichardson/node-fs-extra/pull/299 "Warn when filter is a RegExp [feature-copy]" -[#298]: https://github.com/jprichardson/node-fs-extra/issues/298 "API Docs [documentation]" -[#297]: https://github.com/jprichardson/node-fs-extra/pull/297 "Warn about using preserveTimestamps on 32-bit node" -[#296]: https://github.com/jprichardson/node-fs-extra/pull/296 "Improve EEXIST error message for copySync [enhancement]" -[#295]: https://github.com/jprichardson/node-fs-extra/pull/295 "Depreciate using regular expressions for copy's filter option [documentation]" -[#294]: https://github.com/jprichardson/node-fs-extra/pull/294 "BREAKING: Refactor lib/copy/ncp.js [feature-copy]" -[#293]: https://github.com/jprichardson/node-fs-extra/pull/293 "Update CI configs" -[#292]: https://github.com/jprichardson/node-fs-extra/issues/292 "Rewrite lib/copy/ncp.js [enhancement, feature-copy]" -[#291]: https://github.com/jprichardson/node-fs-extra/pull/291 "Escape '$' in replacement string for async file copying" -[#290]: https://github.com/jprichardson/node-fs-extra/issues/290 "Exclude files pattern while copying using copy.config.js [question]" -[#289]: https://github.com/jprichardson/node-fs-extra/pull/289 "(Closes #271) lib/util/utimes: properly close file descriptors in the event of an error" -[#288]: https://github.com/jprichardson/node-fs-extra/pull/288 "(Closes #271) lib/util/utimes: properly close file descriptors in the event of an error" -[#287]: https://github.com/jprichardson/node-fs-extra/issues/287 "emptyDir() callback arguments are inconsistent [enhancement, feature-remove]" -[#286]: https://github.com/jprichardson/node-fs-extra/pull/286 "Added walkSync function" -[#285]: https://github.com/jprichardson/node-fs-extra/issues/285 "CITGM test failing on s390" -[#284]: https://github.com/jprichardson/node-fs-extra/issues/284 "outputFile method is missing a check to determine if existing item is a folder or not" -[#283]: https://github.com/jprichardson/node-fs-extra/pull/283 "Apply filter also on directories and symlinks for copySync()" -[#282]: https://github.com/jprichardson/node-fs-extra/pull/282 "Apply filter also on directories and symlinks for copySync()" -[#281]: https://github.com/jprichardson/node-fs-extra/issues/281 "remove function executes 'successfully' but doesn't do anything?" -[#280]: https://github.com/jprichardson/node-fs-extra/pull/280 "Disable rimraf globbing" -[#279]: https://github.com/jprichardson/node-fs-extra/issues/279 "Some code is vendored instead of included [awaiting-reply]" -[#278]: https://github.com/jprichardson/node-fs-extra/issues/278 "copy() does not preserve file/directory ownership" -[#277]: https://github.com/jprichardson/node-fs-extra/pull/277 "Mention defaults for clobber and dereference options" -[#276]: https://github.com/jprichardson/node-fs-extra/issues/276 "Cannot connect to Shared Folder [awaiting-reply]" -[#275]: https://github.com/jprichardson/node-fs-extra/issues/275 "EMFILE, too many open files on Mac OS with JSON API" -[#274]: https://github.com/jprichardson/node-fs-extra/issues/274 "Use with memory-fs? [enhancement, future]" -[#273]: https://github.com/jprichardson/node-fs-extra/pull/273 "tests: rename `remote.test.js` to `remove.test.js`" -[#272]: https://github.com/jprichardson/node-fs-extra/issues/272 "Copy clobber flag never err even when true [bug, feature-copy]" -[#271]: https://github.com/jprichardson/node-fs-extra/issues/271 "Unclosed file handle on futimes error" -[#270]: https://github.com/jprichardson/node-fs-extra/issues/270 "copy not working as desired on Windows [feature-copy, platform-windows]" -[#269]: https://github.com/jprichardson/node-fs-extra/issues/269 "Copying with preserveTimeStamps: true is inaccurate using 32bit node [feature-copy]" -[#268]: https://github.com/jprichardson/node-fs-extra/pull/268 "port fix for mkdirp issue #111" -[#267]: https://github.com/jprichardson/node-fs-extra/issues/267 "WARN deprecated wrench@1.5.9: wrench.js is deprecated!" -[#266]: https://github.com/jprichardson/node-fs-extra/issues/266 "fs-extra" -[#265]: https://github.com/jprichardson/node-fs-extra/issues/265 "Link the `fs.stat fs.exists` etc. methods for replace the `fs` module forever?" -[#264]: https://github.com/jprichardson/node-fs-extra/issues/264 "Renaming a file using move fails when a file inside is open (at least on windows) [wont-fix]" -[#263]: https://github.com/jprichardson/node-fs-extra/issues/263 "ENOSYS: function not implemented, link [needs-confirmed]" -[#262]: https://github.com/jprichardson/node-fs-extra/issues/262 "Add .exists() and .existsSync()" -[#261]: https://github.com/jprichardson/node-fs-extra/issues/261 "Cannot read property 'prototype' of undefined" -[#260]: https://github.com/jprichardson/node-fs-extra/pull/260 "use more specific path for method require" -[#259]: https://github.com/jprichardson/node-fs-extra/issues/259 "Feature Request: isEmpty" -[#258]: https://github.com/jprichardson/node-fs-extra/issues/258 "copy files does not preserve file timestamp" -[#257]: https://github.com/jprichardson/node-fs-extra/issues/257 "Copying a file on windows fails" -[#256]: https://github.com/jprichardson/node-fs-extra/pull/256 "Updated Readme " -[#255]: https://github.com/jprichardson/node-fs-extra/issues/255 "Update rimraf required version" -[#254]: https://github.com/jprichardson/node-fs-extra/issues/254 "request for readTree, readTreeSync, walkSync method" -[#253]: https://github.com/jprichardson/node-fs-extra/issues/253 "outputFile does not touch mtime when file exists" -[#252]: https://github.com/jprichardson/node-fs-extra/pull/252 "Fixing problem when copying file with no write permission" -[#251]: https://github.com/jprichardson/node-fs-extra/issues/251 "Just wanted to say thank you" -[#250]: https://github.com/jprichardson/node-fs-extra/issues/250 "`fs.remove()` not removing files (works with `rm -rf`)" -[#249]: https://github.com/jprichardson/node-fs-extra/issues/249 "Just a Question ... Remove Servers" -[#248]: https://github.com/jprichardson/node-fs-extra/issues/248 "Allow option to not preserve permissions for copy" -[#247]: https://github.com/jprichardson/node-fs-extra/issues/247 "Add TypeScript typing directly in the fs-extra package" -[#246]: https://github.com/jprichardson/node-fs-extra/issues/246 "fse.remove() && fse.removeSync() don't throw error on ENOENT file" -[#245]: https://github.com/jprichardson/node-fs-extra/issues/245 "filter for empty dir [enhancement]" -[#244]: https://github.com/jprichardson/node-fs-extra/issues/244 "copySync doesn't apply the filter to directories" -[#243]: https://github.com/jprichardson/node-fs-extra/issues/243 "Can I request fs.walk() to be synchronous?" -[#242]: https://github.com/jprichardson/node-fs-extra/issues/242 "Accidentally truncates file names ending with $$ [bug, feature-copy]" -[#241]: https://github.com/jprichardson/node-fs-extra/pull/241 "Remove link to createOutputStream" -[#240]: https://github.com/jprichardson/node-fs-extra/issues/240 "walkSync request" -[#239]: https://github.com/jprichardson/node-fs-extra/issues/239 "Depreciate regular expressions for copy's filter [documentation, feature-copy]" -[#238]: https://github.com/jprichardson/node-fs-extra/issues/238 "Can't write to files while in a worker thread." -[#237]: https://github.com/jprichardson/node-fs-extra/issues/237 ".ensureDir(..) fails silently when passed an invalid path..." -[#236]: https://github.com/jprichardson/node-fs-extra/issues/236 "[Removed] Filed under wrong repo" -[#235]: https://github.com/jprichardson/node-fs-extra/pull/235 "Adds symlink dereference option to `fse.copySync` (#191)" -[#234]: https://github.com/jprichardson/node-fs-extra/issues/234 "ensureDirSync fails silent when EACCES: permission denied on travis-ci" -[#233]: https://github.com/jprichardson/node-fs-extra/issues/233 "please make sure the first argument in callback is error object [feature-copy]" -[#232]: https://github.com/jprichardson/node-fs-extra/issues/232 "Copy a folder content to its child folder. " -[#231]: https://github.com/jprichardson/node-fs-extra/issues/231 "Adding read/write/output functions for YAML" -[#230]: https://github.com/jprichardson/node-fs-extra/pull/230 "throw error if src and dest are the same to avoid zeroing out + test" -[#229]: https://github.com/jprichardson/node-fs-extra/pull/229 "fix 'TypeError: callback is not a function' in emptyDir" -[#228]: https://github.com/jprichardson/node-fs-extra/pull/228 "Throw error when target is empty so file is not accidentally zeroed out" -[#227]: https://github.com/jprichardson/node-fs-extra/issues/227 "Uncatchable errors when there are invalid arguments [feature-move]" -[#226]: https://github.com/jprichardson/node-fs-extra/issues/226 "Moving to the current directory" -[#225]: https://github.com/jprichardson/node-fs-extra/issues/225 "EBUSY: resource busy or locked, unlink" -[#224]: https://github.com/jprichardson/node-fs-extra/issues/224 "fse.copy ENOENT error" -[#223]: https://github.com/jprichardson/node-fs-extra/issues/223 "Suspicious behavior of fs.existsSync" -[#222]: https://github.com/jprichardson/node-fs-extra/pull/222 "A clearer description of emtpyDir function" -[#221]: https://github.com/jprichardson/node-fs-extra/pull/221 "Update README.md" -[#220]: https://github.com/jprichardson/node-fs-extra/pull/220 "Non-breaking feature: add option 'passStats' to copy methods." -[#219]: https://github.com/jprichardson/node-fs-extra/pull/219 "Add closing parenthesis in copySync example" -[#218]: https://github.com/jprichardson/node-fs-extra/pull/218 "fix #187 #70 options.filter bug" -[#217]: https://github.com/jprichardson/node-fs-extra/pull/217 "fix #187 #70 options.filter bug" -[#216]: https://github.com/jprichardson/node-fs-extra/pull/216 "fix #187 #70 options.filter bug" -[#215]: https://github.com/jprichardson/node-fs-extra/pull/215 "fse.copy throws error when only src and dest provided [bug, documentation, feature-copy]" -[#214]: https://github.com/jprichardson/node-fs-extra/pull/214 "Fixing copySync anchor tag" -[#213]: https://github.com/jprichardson/node-fs-extra/issues/213 "Merge extfs with this repo" -[#212]: https://github.com/jprichardson/node-fs-extra/pull/212 "Update year to 2016 in README.md and LICENSE" -[#211]: https://github.com/jprichardson/node-fs-extra/issues/211 "Not copying all files" -[#210]: https://github.com/jprichardson/node-fs-extra/issues/210 "copy/copySync behave differently when copying a symbolic file [bug, documentation, feature-copy]" -[#209]: https://github.com/jprichardson/node-fs-extra/issues/209 "In Windows invalid directory name causes infinite loop in ensureDir(). [bug]" -[#208]: https://github.com/jprichardson/node-fs-extra/pull/208 "fix options.preserveTimestamps to false in copy-sync by default [feature-copy]" -[#207]: https://github.com/jprichardson/node-fs-extra/issues/207 "Add `compare` suite of functions" -[#206]: https://github.com/jprichardson/node-fs-extra/issues/206 "outputFileSync" -[#205]: https://github.com/jprichardson/node-fs-extra/issues/205 "fix documents about copy/copySync [documentation, feature-copy]" -[#204]: https://github.com/jprichardson/node-fs-extra/pull/204 "allow copy of block and character device files" -[#203]: https://github.com/jprichardson/node-fs-extra/issues/203 "copy method's argument options couldn't be undefined [bug, feature-copy]" -[#202]: https://github.com/jprichardson/node-fs-extra/issues/202 "why there is not a walkSync method?" -[#201]: https://github.com/jprichardson/node-fs-extra/issues/201 "clobber for directories [feature-copy, future]" -[#200]: https://github.com/jprichardson/node-fs-extra/issues/200 "'copySync' doesn't work in sync" -[#199]: https://github.com/jprichardson/node-fs-extra/issues/199 "fs.copySync fails if user does not own file [bug, feature-copy]" -[#198]: https://github.com/jprichardson/node-fs-extra/issues/198 "handle copying between identical files [feature-copy]" -[#197]: https://github.com/jprichardson/node-fs-extra/issues/197 "Missing documentation for `outputFile` `options` 3rd parameter [documentation]" -[#196]: https://github.com/jprichardson/node-fs-extra/issues/196 "copy filter: async function and/or function called with `fs.stat` result [future]" -[#195]: https://github.com/jprichardson/node-fs-extra/issues/195 "How to override with outputFile?" -[#194]: https://github.com/jprichardson/node-fs-extra/pull/194 "allow ensureFile(Sync) to provide data to be written to created file" -[#193]: https://github.com/jprichardson/node-fs-extra/issues/193 "`fs.copy` fails silently if source file is /dev/null [bug, feature-copy]" -[#192]: https://github.com/jprichardson/node-fs-extra/issues/192 "Remove fs.createOutputStream()" -[#191]: https://github.com/jprichardson/node-fs-extra/issues/191 "How to copy symlinks to target as normal folders [feature-copy]" -[#190]: https://github.com/jprichardson/node-fs-extra/pull/190 "copySync to overwrite destination file if readonly and clobber true" -[#189]: https://github.com/jprichardson/node-fs-extra/pull/189 "move.test fix to support CRLF on Windows" -[#188]: https://github.com/jprichardson/node-fs-extra/issues/188 "move.test failing on windows platform" -[#187]: https://github.com/jprichardson/node-fs-extra/issues/187 "Not filter each file, stops on first false [feature-copy]" -[#186]: https://github.com/jprichardson/node-fs-extra/issues/186 "Do you need a .size() function in this module? [future]" -[#185]: https://github.com/jprichardson/node-fs-extra/issues/185 "Doesn't work on NodeJS v4.x" -[#184]: https://github.com/jprichardson/node-fs-extra/issues/184 "CLI equivalent for fs-extra" -[#183]: https://github.com/jprichardson/node-fs-extra/issues/183 "with clobber true, copy and copySync behave differently if destination file is read only [bug, feature-copy]" -[#182]: https://github.com/jprichardson/node-fs-extra/issues/182 "ensureDir(dir, callback) second callback parameter not specified" -[#181]: https://github.com/jprichardson/node-fs-extra/issues/181 "Add ability to remove file securely [enhancement, wont-fix]" -[#180]: https://github.com/jprichardson/node-fs-extra/issues/180 "Filter option doesn't work the same way in copy and copySync [bug, feature-copy]" -[#179]: https://github.com/jprichardson/node-fs-extra/issues/179 "Include opendir" -[#178]: https://github.com/jprichardson/node-fs-extra/issues/178 "ENOTEMPTY is thrown on removeSync " -[#177]: https://github.com/jprichardson/node-fs-extra/issues/177 "fix `remove()` wildcards (introduced by rimraf) [feature-remove]" -[#176]: https://github.com/jprichardson/node-fs-extra/issues/176 "createOutputStream doesn't emit 'end' event" -[#175]: https://github.com/jprichardson/node-fs-extra/issues/175 "[Feature Request].moveSync support [feature-move, future]" -[#174]: https://github.com/jprichardson/node-fs-extra/pull/174 "Fix copy formatting and document options.filter" -[#173]: https://github.com/jprichardson/node-fs-extra/issues/173 "Feature Request: writeJson should mkdirs" -[#172]: https://github.com/jprichardson/node-fs-extra/issues/172 "rename `clobber` flags to `overwrite`" -[#171]: https://github.com/jprichardson/node-fs-extra/issues/171 "remove unnecessary aliases" -[#170]: https://github.com/jprichardson/node-fs-extra/pull/170 "More robust handling of errors moving across virtual drives" -[#169]: https://github.com/jprichardson/node-fs-extra/pull/169 "suppress ensureLink & ensureSymlink dest exists error" -[#168]: https://github.com/jprichardson/node-fs-extra/pull/168 "suppress ensurelink dest exists error" -[#167]: https://github.com/jprichardson/node-fs-extra/pull/167 "Adds basic (string, buffer) support for ensureFile content [future]" -[#166]: https://github.com/jprichardson/node-fs-extra/pull/166 "Adds basic (string, buffer) support for ensureFile content" -[#165]: https://github.com/jprichardson/node-fs-extra/pull/165 "ensure for link & symlink" -[#164]: https://github.com/jprichardson/node-fs-extra/issues/164 "Feature Request: ensureFile to take optional argument for file content" -[#163]: https://github.com/jprichardson/node-fs-extra/issues/163 "ouputJson not formatted out of the box [bug]" -[#162]: https://github.com/jprichardson/node-fs-extra/pull/162 "ensure symlink & link" -[#161]: https://github.com/jprichardson/node-fs-extra/pull/161 "ensure symlink & link" -[#160]: https://github.com/jprichardson/node-fs-extra/pull/160 "ensure symlink & link" -[#159]: https://github.com/jprichardson/node-fs-extra/pull/159 "ensure symlink & link" -[#158]: https://github.com/jprichardson/node-fs-extra/issues/158 "Feature Request: ensureLink and ensureSymlink methods" -[#157]: https://github.com/jprichardson/node-fs-extra/issues/157 "writeJson isn't formatted" -[#156]: https://github.com/jprichardson/node-fs-extra/issues/156 "Promise.promisifyAll doesn't work for some methods" -[#155]: https://github.com/jprichardson/node-fs-extra/issues/155 "Readme" -[#154]: https://github.com/jprichardson/node-fs-extra/issues/154 "/tmp/millis-test-sync" -[#153]: https://github.com/jprichardson/node-fs-extra/pull/153 "Make preserveTimes also work on read-only files. Closes #152" -[#152]: https://github.com/jprichardson/node-fs-extra/issues/152 "fs.copy fails for read-only files with preserveTimestamp=true [feature-copy]" -[#151]: https://github.com/jprichardson/node-fs-extra/issues/151 "TOC does not work correctly on npm [documentation]" -[#150]: https://github.com/jprichardson/node-fs-extra/issues/150 "Remove test file fixtures, create with code." -[#149]: https://github.com/jprichardson/node-fs-extra/issues/149 "/tmp/millis-test-sync" -[#148]: https://github.com/jprichardson/node-fs-extra/issues/148 "split out `Sync` methods in documentation" -[#147]: https://github.com/jprichardson/node-fs-extra/issues/147 "Adding rmdirIfEmpty" -[#146]: https://github.com/jprichardson/node-fs-extra/pull/146 "ensure test.js works" -[#145]: https://github.com/jprichardson/node-fs-extra/issues/145 "Add `fs.exists` and `fs.existsSync` if it doesn't exist." -[#144]: https://github.com/jprichardson/node-fs-extra/issues/144 "tests failing" -[#143]: https://github.com/jprichardson/node-fs-extra/issues/143 "update graceful-fs" -[#142]: https://github.com/jprichardson/node-fs-extra/issues/142 "PrependFile Feature" -[#141]: https://github.com/jprichardson/node-fs-extra/pull/141 "Add option to preserve timestamps" -[#140]: https://github.com/jprichardson/node-fs-extra/issues/140 "Json file reading fails with 'utf8'" -[#139]: https://github.com/jprichardson/node-fs-extra/pull/139 "Preserve file timestamp on copy. Closes #138" -[#138]: https://github.com/jprichardson/node-fs-extra/issues/138 "Preserve timestamps on copying files" -[#137]: https://github.com/jprichardson/node-fs-extra/issues/137 "outputFile/outputJson: Unexpected end of input" -[#136]: https://github.com/jprichardson/node-fs-extra/pull/136 "Update license attribute" -[#135]: https://github.com/jprichardson/node-fs-extra/issues/135 "emptyDir throws Error if no callback is provided" -[#134]: https://github.com/jprichardson/node-fs-extra/pull/134 "Handle EEXIST error when clobbering dir" -[#133]: https://github.com/jprichardson/node-fs-extra/pull/133 "Travis runs with `sudo: false`" -[#132]: https://github.com/jprichardson/node-fs-extra/pull/132 "isDirectory method" -[#131]: https://github.com/jprichardson/node-fs-extra/issues/131 "copySync is not working iojs 1.8.4 on linux [feature-copy]" -[#130]: https://github.com/jprichardson/node-fs-extra/pull/130 "Please review additional features." -[#129]: https://github.com/jprichardson/node-fs-extra/pull/129 "can you review this feature?" -[#128]: https://github.com/jprichardson/node-fs-extra/issues/128 "fsExtra.move(filepath, newPath) broken;" -[#127]: https://github.com/jprichardson/node-fs-extra/issues/127 "consider using fs.access to remove deprecated warnings for fs.exists" -[#126]: https://github.com/jprichardson/node-fs-extra/issues/126 " TypeError: Object #<Object> has no method 'access'" -[#125]: https://github.com/jprichardson/node-fs-extra/issues/125 "Question: What do the *Sync function do different from non-sync" -[#124]: https://github.com/jprichardson/node-fs-extra/issues/124 "move with clobber option 'ENOTEMPTY'" -[#123]: https://github.com/jprichardson/node-fs-extra/issues/123 "Only copy the content of a directory" -[#122]: https://github.com/jprichardson/node-fs-extra/pull/122 "Update section links in README to match current section ids." -[#121]: https://github.com/jprichardson/node-fs-extra/issues/121 "emptyDir is undefined" -[#120]: https://github.com/jprichardson/node-fs-extra/issues/120 "usage bug caused by shallow cloning methods of 'graceful-fs'" -[#119]: https://github.com/jprichardson/node-fs-extra/issues/119 "mkdirs and ensureDir never invoke callback and consume CPU indefinitely if provided a path with invalid characters on Windows" -[#118]: https://github.com/jprichardson/node-fs-extra/pull/118 "createOutputStream" -[#117]: https://github.com/jprichardson/node-fs-extra/pull/117 "Fixed issue with slash separated paths on windows" -[#116]: https://github.com/jprichardson/node-fs-extra/issues/116 "copySync can only copy directories not files [documentation, feature-copy]" -[#115]: https://github.com/jprichardson/node-fs-extra/issues/115 ".Copy & .CopySync [feature-copy]" -[#114]: https://github.com/jprichardson/node-fs-extra/issues/114 "Fails to move (rename) directory to non-empty directory even with clobber: true" -[#113]: https://github.com/jprichardson/node-fs-extra/issues/113 "fs.copy seems to callback early if the destination file already exists" -[#112]: https://github.com/jprichardson/node-fs-extra/pull/112 "Copying a file into an existing directory" -[#111]: https://github.com/jprichardson/node-fs-extra/pull/111 "Moving a file into an existing directory " -[#110]: https://github.com/jprichardson/node-fs-extra/pull/110 "Moving a file into an existing directory" -[#109]: https://github.com/jprichardson/node-fs-extra/issues/109 "fs.move across windows drives fails" -[#108]: https://github.com/jprichardson/node-fs-extra/issues/108 "fse.move directories across multiple devices doesn't work" -[#107]: https://github.com/jprichardson/node-fs-extra/pull/107 "Check if dest path is an existing dir and copy or move source in it" -[#106]: https://github.com/jprichardson/node-fs-extra/issues/106 "fse.copySync crashes while copying across devices D: [feature-copy]" -[#105]: https://github.com/jprichardson/node-fs-extra/issues/105 "fs.copy hangs on iojs" -[#104]: https://github.com/jprichardson/node-fs-extra/issues/104 "fse.move deletes folders [bug]" -[#103]: https://github.com/jprichardson/node-fs-extra/issues/103 "Error: EMFILE with copy" -[#102]: https://github.com/jprichardson/node-fs-extra/issues/102 "touch / touchSync was removed ?" -[#101]: https://github.com/jprichardson/node-fs-extra/issues/101 "fs-extra promisified" -[#100]: https://github.com/jprichardson/node-fs-extra/pull/100 "copy: options object or filter to pass to ncp" -[#99]: https://github.com/jprichardson/node-fs-extra/issues/99 "ensureDir() modes [future]" -[#98]: https://github.com/jprichardson/node-fs-extra/issues/98 "fs.copy() incorrect async behavior [bug]" -[#97]: https://github.com/jprichardson/node-fs-extra/pull/97 "use path.join; fix copySync bug" -[#96]: https://github.com/jprichardson/node-fs-extra/issues/96 "destFolderExists in copySync is always undefined." -[#95]: https://github.com/jprichardson/node-fs-extra/pull/95 "Using graceful-ncp instead of ncp" -[#94]: https://github.com/jprichardson/node-fs-extra/issues/94 "Error: EEXIST, file already exists '../mkdirp/bin/cmd.js' on fs.copySync() [enhancement, feature-copy]" -[#93]: https://github.com/jprichardson/node-fs-extra/issues/93 "Confusing error if drive not mounted [enhancement]" -[#92]: https://github.com/jprichardson/node-fs-extra/issues/92 "Problems with Bluebird" -[#91]: https://github.com/jprichardson/node-fs-extra/issues/91 "fs.copySync('/test', '/haha') is different with 'cp -r /test /haha' [enhancement]" -[#90]: https://github.com/jprichardson/node-fs-extra/issues/90 "Folder creation and file copy is Happening in 64 bit machine but not in 32 bit machine" -[#89]: https://github.com/jprichardson/node-fs-extra/issues/89 "Error: EEXIST using fs-extra's fs.copy to copy a directory on Windows" -[#88]: https://github.com/jprichardson/node-fs-extra/issues/88 "Stacking those libraries" -[#87]: https://github.com/jprichardson/node-fs-extra/issues/87 "createWriteStream + outputFile = ?" -[#86]: https://github.com/jprichardson/node-fs-extra/issues/86 "no moveSync?" -[#85]: https://github.com/jprichardson/node-fs-extra/pull/85 "Copy symlinks in copySync" -[#84]: https://github.com/jprichardson/node-fs-extra/issues/84 "Push latest version to npm ?" -[#83]: https://github.com/jprichardson/node-fs-extra/issues/83 "Prevent copying a directory into itself [feature-copy]" -[#82]: https://github.com/jprichardson/node-fs-extra/pull/82 "README updates for move" -[#81]: https://github.com/jprichardson/node-fs-extra/issues/81 "fd leak after fs.move" -[#80]: https://github.com/jprichardson/node-fs-extra/pull/80 "Preserve file mode in copySync" -[#79]: https://github.com/jprichardson/node-fs-extra/issues/79 "fs.copy only .html file empty" -[#78]: https://github.com/jprichardson/node-fs-extra/pull/78 "copySync was not applying filters to directories" -[#77]: https://github.com/jprichardson/node-fs-extra/issues/77 "Create README reference to bluebird" -[#76]: https://github.com/jprichardson/node-fs-extra/issues/76 "Create README reference to typescript" -[#75]: https://github.com/jprichardson/node-fs-extra/issues/75 "add glob as a dep? [question]" -[#74]: https://github.com/jprichardson/node-fs-extra/pull/74 "including new emptydir module" -[#73]: https://github.com/jprichardson/node-fs-extra/pull/73 "add dependency status in readme" -[#72]: https://github.com/jprichardson/node-fs-extra/pull/72 "Use svg instead of png to get better image quality" -[#71]: https://github.com/jprichardson/node-fs-extra/issues/71 "fse.copy not working on Windows 7 x64 OS, but, copySync does work" -[#70]: https://github.com/jprichardson/node-fs-extra/issues/70 "Not filter each file, stops on first false [bug]" -[#69]: https://github.com/jprichardson/node-fs-extra/issues/69 "How to check if folder exist and read the folder name" -[#68]: https://github.com/jprichardson/node-fs-extra/issues/68 "consider flag to readJsonSync (throw false) [enhancement]" -[#67]: https://github.com/jprichardson/node-fs-extra/issues/67 "docs for readJson incorrectly states that is accepts options" -[#66]: https://github.com/jprichardson/node-fs-extra/issues/66 "ENAMETOOLONG" -[#65]: https://github.com/jprichardson/node-fs-extra/issues/65 "exclude filter in fs.copy" -[#64]: https://github.com/jprichardson/node-fs-extra/issues/64 "Announce: mfs - monitor your fs-extra calls" -[#63]: https://github.com/jprichardson/node-fs-extra/issues/63 "Walk" -[#62]: https://github.com/jprichardson/node-fs-extra/issues/62 "npm install fs-extra doesn't work" -[#61]: https://github.com/jprichardson/node-fs-extra/issues/61 "No longer supports node 0.8 due to use of `^` in package.json dependencies" -[#60]: https://github.com/jprichardson/node-fs-extra/issues/60 "chmod & chown for mkdirs" -[#59]: https://github.com/jprichardson/node-fs-extra/issues/59 "Consider including mkdirp and making fs-extra '--use_strict' safe [question]" -[#58]: https://github.com/jprichardson/node-fs-extra/issues/58 "Stack trace not included in fs.copy error" -[#57]: https://github.com/jprichardson/node-fs-extra/issues/57 "Possible to include wildcards in delete?" -[#56]: https://github.com/jprichardson/node-fs-extra/issues/56 "Crash when have no access to write to destination file in copy " -[#55]: https://github.com/jprichardson/node-fs-extra/issues/55 "Is it possible to have any console output similar to Grunt copy module?" -[#54]: https://github.com/jprichardson/node-fs-extra/issues/54 "`copy` does not preserve file ownership and permissons" -[#53]: https://github.com/jprichardson/node-fs-extra/issues/53 "outputFile() - ability to write data in appending mode" -[#52]: https://github.com/jprichardson/node-fs-extra/pull/52 "This fixes (what I think) is a bug in copySync" -[#51]: https://github.com/jprichardson/node-fs-extra/pull/51 "Add a Bitdeli Badge to README" -[#50]: https://github.com/jprichardson/node-fs-extra/issues/50 "Replace mechanism in createFile" -[#49]: https://github.com/jprichardson/node-fs-extra/pull/49 "update rimraf to v2.2.6" -[#48]: https://github.com/jprichardson/node-fs-extra/issues/48 "fs.copy issue [bug]" -[#47]: https://github.com/jprichardson/node-fs-extra/issues/47 "Bug in copy - callback called on readStream 'close' - Fixed in ncp 0.5.0" -[#46]: https://github.com/jprichardson/node-fs-extra/pull/46 "update copyright year" -[#45]: https://github.com/jprichardson/node-fs-extra/pull/45 "Added note about fse.outputFile() being the one that overwrites" -[#44]: https://github.com/jprichardson/node-fs-extra/pull/44 "Proposal: Stream support" -[#43]: https://github.com/jprichardson/node-fs-extra/issues/43 "Better error reporting " -[#42]: https://github.com/jprichardson/node-fs-extra/issues/42 "Performance issue?" -[#41]: https://github.com/jprichardson/node-fs-extra/pull/41 "There does seem to be a synchronous version now" -[#40]: https://github.com/jprichardson/node-fs-extra/issues/40 "fs.copy throw unexplained error ENOENT, utime " -[#39]: https://github.com/jprichardson/node-fs-extra/pull/39 "Added regression test for copy() return callback on error" -[#38]: https://github.com/jprichardson/node-fs-extra/pull/38 "Return err in copy() fstat cb, because stat could be undefined or null" -[#37]: https://github.com/jprichardson/node-fs-extra/issues/37 "Maybe include a line reader? [enhancement, question]" -[#36]: https://github.com/jprichardson/node-fs-extra/pull/36 "`filter` parameter `fs.copy` and `fs.copySync`" -[#35]: https://github.com/jprichardson/node-fs-extra/pull/35 "`filter` parameter `fs.copy` and `fs.copySync` " -[#34]: https://github.com/jprichardson/node-fs-extra/issues/34 "update docs to include options for JSON methods [enhancement]" -[#33]: https://github.com/jprichardson/node-fs-extra/pull/33 "fs_extra.copySync" -[#32]: https://github.com/jprichardson/node-fs-extra/issues/32 "update to latest jsonfile [enhancement]" -[#31]: https://github.com/jprichardson/node-fs-extra/issues/31 "Add ensure methods [enhancement]" -[#30]: https://github.com/jprichardson/node-fs-extra/issues/30 "update package.json optional dep `graceful-fs`" -[#29]: https://github.com/jprichardson/node-fs-extra/issues/29 "Copy failing if dest directory doesn't exist. Is this intended?" -[#28]: https://github.com/jprichardson/node-fs-extra/issues/28 "homepage field must be a string url. Deleted." -[#27]: https://github.com/jprichardson/node-fs-extra/issues/27 "Update Readme" -[#26]: https://github.com/jprichardson/node-fs-extra/issues/26 "Add readdir recursive method. [enhancement]" -[#25]: https://github.com/jprichardson/node-fs-extra/pull/25 "adding an `.npmignore` file" -[#24]: https://github.com/jprichardson/node-fs-extra/issues/24 "[bug] cannot run in strict mode [bug]" -[#23]: https://github.com/jprichardson/node-fs-extra/issues/23 "`writeJSON()` should create parent directories" -[#22]: https://github.com/jprichardson/node-fs-extra/pull/22 "Add a limit option to mkdirs()" -[#21]: https://github.com/jprichardson/node-fs-extra/issues/21 "touch() in 0.10.0" -[#20]: https://github.com/jprichardson/node-fs-extra/issues/20 "fs.remove yields callback before directory is really deleted" -[#19]: https://github.com/jprichardson/node-fs-extra/issues/19 "fs.copy err is empty array" -[#18]: https://github.com/jprichardson/node-fs-extra/pull/18 "Exposed copyFile Function" -[#17]: https://github.com/jprichardson/node-fs-extra/issues/17 "Use `require('graceful-fs')` if found instead of `require('fs')`" -[#16]: https://github.com/jprichardson/node-fs-extra/pull/16 "Update README.md" -[#15]: https://github.com/jprichardson/node-fs-extra/issues/15 "Implement cp -r but sync aka copySync. [enhancement]" -[#14]: https://github.com/jprichardson/node-fs-extra/issues/14 "fs.mkdirSync is broken in 0.3.1" -[#13]: https://github.com/jprichardson/node-fs-extra/issues/13 "Thoughts on including a directory tree / file watcher? [enhancement, question]" -[#12]: https://github.com/jprichardson/node-fs-extra/issues/12 "copyFile & copyFileSync are global" -[#11]: https://github.com/jprichardson/node-fs-extra/issues/11 "Thoughts on including a file walker? [enhancement, question]" -[#10]: https://github.com/jprichardson/node-fs-extra/issues/10 "move / moveFile API [enhancement]" -[#9]: https://github.com/jprichardson/node-fs-extra/issues/9 "don't import normal fs stuff into fs-extra" -[#8]: https://github.com/jprichardson/node-fs-extra/pull/8 "Update rimraf to latest version" -[#6]: https://github.com/jprichardson/node-fs-extra/issues/6 "Remove CoffeeScript development dependency" -[#5]: https://github.com/jprichardson/node-fs-extra/issues/5 "comments on naming" -[#4]: https://github.com/jprichardson/node-fs-extra/issues/4 "version bump to 0.2" -[#3]: https://github.com/jprichardson/node-fs-extra/pull/3 "Hi! I fixed some code for you!" -[#2]: https://github.com/jprichardson/node-fs-extra/issues/2 "Merge with fs.extra and mkdirp" -[#1]: https://github.com/jprichardson/node-fs-extra/issues/1 "file-extra npm !exist" diff --git a/ionic/platforms/android/cordova/node_modules/fs-extra/LICENSE b/ionic/platforms/android/cordova/node_modules/fs-extra/LICENSE deleted file mode 100644 index 93546dfb7655bfafd17a87ab7f3391c9e68f4130..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/fs-extra/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -(The MIT License) - -Copyright (c) 2011-2017 JP Richardson - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files -(the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, - merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE -WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS -OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/ionic/platforms/android/cordova/node_modules/fs-extra/README.md b/ionic/platforms/android/cordova/node_modules/fs-extra/README.md deleted file mode 100644 index 5b1851f1313aae8f17b938e20d57359fb10512b5..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/fs-extra/README.md +++ /dev/null @@ -1,261 +0,0 @@ -Node.js: fs-extra -================= - -`fs-extra` adds file system methods that aren't included in the native `fs` module and adds promise support to the `fs` methods. It also uses [`graceful-fs`](https://github.com/isaacs/node-graceful-fs) to prevent `EMFILE` errors. It should be a drop in replacement for `fs`. - -[](https://www.npmjs.org/package/fs-extra) -[](https://github.com/jprichardson/node-fs-extra/blob/master/LICENSE) -[](http://travis-ci.org/jprichardson/node-fs-extra) -[](https://ci.appveyor.com/project/jprichardson/node-fs-extra/branch/master) -[](https://www.npmjs.org/package/fs-extra) -[](https://coveralls.io/github/jprichardson/node-fs-extra) -[](https://standardjs.com) - -Why? ----- - -I got tired of including `mkdirp`, `rimraf`, and `ncp` in most of my projects. - - - - -Installation ------------- - - npm install fs-extra - - - -Usage ------ - -`fs-extra` is a drop in replacement for native `fs`. All methods in `fs` are attached to `fs-extra`. All `fs` methods return promises if the callback isn't passed. - -You don't ever need to include the original `fs` module again: - -```js -const fs = require('fs') // this is no longer necessary -``` - -you can now do this: - -```js -const fs = require('fs-extra') -``` - -or if you prefer to make it clear that you're using `fs-extra` and not `fs`, you may want -to name your `fs` variable `fse` like so: - -```js -const fse = require('fs-extra') -``` - -you can also keep both, but it's redundant: - -```js -const fs = require('fs') -const fse = require('fs-extra') -``` - -Sync vs Async vs Async/Await -------------- -Most methods are async by default. All async methods will return a promise if the callback isn't passed. - -Sync methods on the other hand will throw if an error occurs. - -Also Async/Await will throw an error if one occurs. - -Example: - -```js -const fs = require('fs-extra') - -// Async with promises: -fs.copy('/tmp/myfile', '/tmp/mynewfile') - .then(() => console.log('success!')) - .catch(err => console.error(err)) - -// Async with callbacks: -fs.copy('/tmp/myfile', '/tmp/mynewfile', err => { - if (err) return console.error(err) - console.log('success!') -}) - -// Sync: -try { - fs.copySync('/tmp/myfile', '/tmp/mynewfile') - console.log('success!') -} catch (err) { - console.error(err) -} - -// Async/Await: -async function copyFiles () { - try { - await fs.copy('/tmp/myfile', '/tmp/mynewfile') - console.log('success!') - } catch (err) { - console.error(err) - } -} - -copyFiles() -``` - - -Methods -------- - -### Async - -- [copy](docs/copy.md) -- [emptyDir](docs/emptyDir.md) -- [ensureFile](docs/ensureFile.md) -- [ensureDir](docs/ensureDir.md) -- [ensureLink](docs/ensureLink.md) -- [ensureSymlink](docs/ensureSymlink.md) -- [mkdirp](docs/ensureDir.md) -- [mkdirs](docs/ensureDir.md) -- [move](docs/move.md) -- [outputFile](docs/outputFile.md) -- [outputJson](docs/outputJson.md) -- [pathExists](docs/pathExists.md) -- [readJson](docs/readJson.md) -- [remove](docs/remove.md) -- [writeJson](docs/writeJson.md) - -### Sync - -- [copySync](docs/copy-sync.md) -- [emptyDirSync](docs/emptyDir-sync.md) -- [ensureFileSync](docs/ensureFile-sync.md) -- [ensureDirSync](docs/ensureDir-sync.md) -- [ensureLinkSync](docs/ensureLink-sync.md) -- [ensureSymlinkSync](docs/ensureSymlink-sync.md) -- [mkdirpSync](docs/ensureDir-sync.md) -- [mkdirsSync](docs/ensureDir-sync.md) -- [moveSync](docs/move-sync.md) -- [outputFileSync](docs/outputFile-sync.md) -- [outputJsonSync](docs/outputJson-sync.md) -- [pathExistsSync](docs/pathExists-sync.md) -- [readJsonSync](docs/readJson-sync.md) -- [removeSync](docs/remove-sync.md) -- [writeJsonSync](docs/writeJson-sync.md) - - -**NOTE:** You can still use the native Node.js methods. They are promisified and copied over to `fs-extra`. See [notes on `fs.read()`, `fs.write()`, & `fs.writev()`](docs/fs-read-write-writev.md) - -### What happened to `walk()` and `walkSync()`? - -They were removed from `fs-extra` in v2.0.0. If you need the functionality, `walk` and `walkSync` are available as separate packages, [`klaw`](https://github.com/jprichardson/node-klaw) and [`klaw-sync`](https://github.com/manidlou/node-klaw-sync). - - -Third Party ------------ - - -### TypeScript - -If you like TypeScript, you can use `fs-extra` with it: https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/fs-extra - - -### File / Directory Watching - -If you want to watch for changes to files or directories, then you should use [chokidar](https://github.com/paulmillr/chokidar). - -### Obtain Filesystem (Devices, Partitions) Information - -[fs-filesystem](https://github.com/arthurintelligence/node-fs-filesystem) allows you to read the state of the filesystem of the host on which it is run. It returns information about both the devices and the partitions (volumes) of the system. - -### Misc. - -- [fs-extra-debug](https://github.com/jdxcode/fs-extra-debug) - Send your fs-extra calls to [debug](https://npmjs.org/package/debug). -- [mfs](https://github.com/cadorn/mfs) - Monitor your fs-extra calls. - - - -Hacking on fs-extra -------------------- - -Wanna hack on `fs-extra`? Great! Your help is needed! [fs-extra is one of the most depended upon Node.js packages](http://nodei.co/npm/fs-extra.png?downloads=true&downloadRank=true&stars=true). This project -uses [JavaScript Standard Style](https://github.com/feross/standard) - if the name or style choices bother you, -you're gonna have to get over it :) If `standard` is good enough for `npm`, it's good enough for `fs-extra`. - -[](https://github.com/feross/standard) - -What's needed? -- First, take a look at existing issues. Those are probably going to be where the priority lies. -- More tests for edge cases. Specifically on different platforms. There can never be enough tests. -- Improve test coverage. See coveralls output for more info. - -Note: If you make any big changes, **you should definitely file an issue for discussion first.** - -### Running the Test Suite - -fs-extra contains hundreds of tests. - -- `npm run lint`: runs the linter ([standard](http://standardjs.com/)) -- `npm run unit`: runs the unit tests -- `npm test`: runs both the linter and the tests - - -### Windows - -If you run the tests on the Windows and receive a lot of symbolic link `EPERM` permission errors, it's -because on Windows you need elevated privilege to create symbolic links. You can add this to your Windows's -account by following the instructions here: http://superuser.com/questions/104845/permission-to-make-symbolic-links-in-windows-7 -However, I didn't have much luck doing this. - -Since I develop on Mac OS X, I use VMWare Fusion for Windows testing. I create a shared folder that I map to a drive on Windows. -I open the `Node.js command prompt` and run as `Administrator`. I then map the network drive running the following command: - - net use z: "\\vmware-host\Shared Folders" - -I can then navigate to my `fs-extra` directory and run the tests. - - -Naming ------- - -I put a lot of thought into the naming of these functions. Inspired by @coolaj86's request. So he deserves much of the credit for raising the issue. See discussion(s) here: - -* https://github.com/jprichardson/node-fs-extra/issues/2 -* https://github.com/flatiron/utile/issues/11 -* https://github.com/ryanmcgrath/wrench-js/issues/29 -* https://github.com/substack/node-mkdirp/issues/17 - -First, I believe that in as many cases as possible, the [Node.js naming schemes](http://nodejs.org/api/fs.html) should be chosen. However, there are problems with the Node.js own naming schemes. - -For example, `fs.readFile()` and `fs.readdir()`: the **F** is capitalized in *File* and the **d** is not capitalized in *dir*. Perhaps a bit pedantic, but they should still be consistent. Also, Node.js has chosen a lot of POSIX naming schemes, which I believe is great. See: `fs.mkdir()`, `fs.rmdir()`, `fs.chown()`, etc. - -We have a dilemma though. How do you consistently name methods that perform the following POSIX commands: `cp`, `cp -r`, `mkdir -p`, and `rm -rf`? - -My perspective: when in doubt, err on the side of simplicity. A directory is just a hierarchical grouping of directories and files. Consider that for a moment. So when you want to copy it or remove it, in most cases you'll want to copy or remove all of its contents. When you want to create a directory, if the directory that it's suppose to be contained in does not exist, then in most cases you'll want to create that too. - -So, if you want to remove a file or a directory regardless of whether it has contents, just call `fs.remove(path)`. If you want to copy a file or a directory whether it has contents, just call `fs.copy(source, destination)`. If you want to create a directory regardless of whether its parent directories exist, just call `fs.mkdirs(path)` or `fs.mkdirp(path)`. - - -Credit ------- - -`fs-extra` wouldn't be possible without using the modules from the following authors: - -- [Isaac Shlueter](https://github.com/isaacs) -- [Charlie McConnel](https://github.com/avianflu) -- [James Halliday](https://github.com/substack) -- [Andrew Kelley](https://github.com/andrewrk) - - - - -License -------- - -Licensed under MIT - -Copyright (c) 2011-2017 [JP Richardson](https://github.com/jprichardson) - -[1]: http://nodejs.org/docs/latest/api/fs.html - - -[jsonfile]: https://github.com/jprichardson/node-jsonfile diff --git a/ionic/platforms/android/cordova/node_modules/fs-extra/lib/copy-sync/copy-sync.js b/ionic/platforms/android/cordova/node_modules/fs-extra/lib/copy-sync/copy-sync.js deleted file mode 100644 index 31f06e4419d91c8b78e2c7210605173939a3ba93..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/fs-extra/lib/copy-sync/copy-sync.js +++ /dev/null @@ -1,166 +0,0 @@ -'use strict' - -const fs = require('graceful-fs') -const path = require('path') -const mkdirsSync = require('../mkdirs').mkdirsSync -const utimesMillisSync = require('../util/utimes').utimesMillisSync -const stat = require('../util/stat') - -function copySync (src, dest, opts) { - if (typeof opts === 'function') { - opts = { filter: opts } - } - - opts = opts || {} - opts.clobber = 'clobber' in opts ? !!opts.clobber : true // default to true for now - opts.overwrite = 'overwrite' in opts ? !!opts.overwrite : opts.clobber // overwrite falls back to clobber - - // Warn about using preserveTimestamps on 32-bit node - if (opts.preserveTimestamps && process.arch === 'ia32') { - console.warn(`fs-extra: Using the preserveTimestamps option in 32-bit node is not recommended;\n - see https://github.com/jprichardson/node-fs-extra/issues/269`) - } - - const { srcStat, destStat } = stat.checkPathsSync(src, dest, 'copy') - stat.checkParentPathsSync(src, srcStat, dest, 'copy') - return handleFilterAndCopy(destStat, src, dest, opts) -} - -function handleFilterAndCopy (destStat, src, dest, opts) { - if (opts.filter && !opts.filter(src, dest)) return - const destParent = path.dirname(dest) - if (!fs.existsSync(destParent)) mkdirsSync(destParent) - return startCopy(destStat, src, dest, opts) -} - -function startCopy (destStat, src, dest, opts) { - if (opts.filter && !opts.filter(src, dest)) return - return getStats(destStat, src, dest, opts) -} - -function getStats (destStat, src, dest, opts) { - const statSync = opts.dereference ? fs.statSync : fs.lstatSync - const srcStat = statSync(src) - - if (srcStat.isDirectory()) return onDir(srcStat, destStat, src, dest, opts) - else if (srcStat.isFile() || - srcStat.isCharacterDevice() || - srcStat.isBlockDevice()) return onFile(srcStat, destStat, src, dest, opts) - else if (srcStat.isSymbolicLink()) return onLink(destStat, src, dest, opts) -} - -function onFile (srcStat, destStat, src, dest, opts) { - if (!destStat) return copyFile(srcStat, src, dest, opts) - return mayCopyFile(srcStat, src, dest, opts) -} - -function mayCopyFile (srcStat, src, dest, opts) { - if (opts.overwrite) { - fs.unlinkSync(dest) - return copyFile(srcStat, src, dest, opts) - } else if (opts.errorOnExist) { - throw new Error(`'${dest}' already exists`) - } -} - -function copyFile (srcStat, src, dest, opts) { - fs.copyFileSync(src, dest) - if (opts.preserveTimestamps) handleTimestamps(srcStat.mode, src, dest) - return setDestMode(dest, srcStat.mode) -} - -function handleTimestamps (srcMode, src, dest) { - // Make sure the file is writable before setting the timestamp - // otherwise open fails with EPERM when invoked with 'r+' - // (through utimes call) - if (fileIsNotWritable(srcMode)) makeFileWritable(dest, srcMode) - return setDestTimestamps(src, dest) -} - -function fileIsNotWritable (srcMode) { - return (srcMode & 0o200) === 0 -} - -function makeFileWritable (dest, srcMode) { - return setDestMode(dest, srcMode | 0o200) -} - -function setDestMode (dest, srcMode) { - return fs.chmodSync(dest, srcMode) -} - -function setDestTimestamps (src, dest) { - // The initial srcStat.atime cannot be trusted - // because it is modified by the read(2) system call - // (See https://nodejs.org/api/fs.html#fs_stat_time_values) - const updatedSrcStat = fs.statSync(src) - return utimesMillisSync(dest, updatedSrcStat.atime, updatedSrcStat.mtime) -} - -function onDir (srcStat, destStat, src, dest, opts) { - if (!destStat) return mkDirAndCopy(srcStat.mode, src, dest, opts) - if (destStat && !destStat.isDirectory()) { - throw new Error(`Cannot overwrite non-directory '${dest}' with directory '${src}'.`) - } - return copyDir(src, dest, opts) -} - -function mkDirAndCopy (srcMode, src, dest, opts) { - fs.mkdirSync(dest) - copyDir(src, dest, opts) - return setDestMode(dest, srcMode) -} - -function copyDir (src, dest, opts) { - fs.readdirSync(src).forEach(item => copyDirItem(item, src, dest, opts)) -} - -function copyDirItem (item, src, dest, opts) { - const srcItem = path.join(src, item) - const destItem = path.join(dest, item) - const { destStat } = stat.checkPathsSync(srcItem, destItem, 'copy') - return startCopy(destStat, srcItem, destItem, opts) -} - -function onLink (destStat, src, dest, opts) { - let resolvedSrc = fs.readlinkSync(src) - if (opts.dereference) { - resolvedSrc = path.resolve(process.cwd(), resolvedSrc) - } - - if (!destStat) { - return fs.symlinkSync(resolvedSrc, dest) - } else { - let resolvedDest - try { - resolvedDest = fs.readlinkSync(dest) - } catch (err) { - // dest exists and is a regular file or directory, - // Windows may throw UNKNOWN error. If dest already exists, - // fs throws error anyway, so no need to guard against it here. - if (err.code === 'EINVAL' || err.code === 'UNKNOWN') return fs.symlinkSync(resolvedSrc, dest) - throw err - } - if (opts.dereference) { - resolvedDest = path.resolve(process.cwd(), resolvedDest) - } - if (stat.isSrcSubdir(resolvedSrc, resolvedDest)) { - throw new Error(`Cannot copy '${resolvedSrc}' to a subdirectory of itself, '${resolvedDest}'.`) - } - - // prevent copy if src is a subdir of dest since unlinking - // dest in this case would result in removing src contents - // and therefore a broken symlink would be created. - if (fs.statSync(dest).isDirectory() && stat.isSrcSubdir(resolvedDest, resolvedSrc)) { - throw new Error(`Cannot overwrite '${resolvedDest}' with '${resolvedSrc}'.`) - } - return copyLink(resolvedSrc, dest) - } -} - -function copyLink (resolvedSrc, dest) { - fs.unlinkSync(dest) - return fs.symlinkSync(resolvedSrc, dest) -} - -module.exports = copySync diff --git a/ionic/platforms/android/cordova/node_modules/fs-extra/lib/copy-sync/index.js b/ionic/platforms/android/cordova/node_modules/fs-extra/lib/copy-sync/index.js deleted file mode 100644 index 65945aedb20a3648a63cf70d98a07e193296f455..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/fs-extra/lib/copy-sync/index.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict' - -module.exports = { - copySync: require('./copy-sync') -} diff --git a/ionic/platforms/android/cordova/node_modules/fs-extra/lib/copy/copy.js b/ionic/platforms/android/cordova/node_modules/fs-extra/lib/copy/copy.js deleted file mode 100644 index 328f1025f9b5054a0e727c3a462a0797433d7b0c..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/fs-extra/lib/copy/copy.js +++ /dev/null @@ -1,232 +0,0 @@ -'use strict' - -const fs = require('graceful-fs') -const path = require('path') -const mkdirs = require('../mkdirs').mkdirs -const pathExists = require('../path-exists').pathExists -const utimesMillis = require('../util/utimes').utimesMillis -const stat = require('../util/stat') - -function copy (src, dest, opts, cb) { - if (typeof opts === 'function' && !cb) { - cb = opts - opts = {} - } else if (typeof opts === 'function') { - opts = { filter: opts } - } - - cb = cb || function () {} - opts = opts || {} - - opts.clobber = 'clobber' in opts ? !!opts.clobber : true // default to true for now - opts.overwrite = 'overwrite' in opts ? !!opts.overwrite : opts.clobber // overwrite falls back to clobber - - // Warn about using preserveTimestamps on 32-bit node - if (opts.preserveTimestamps && process.arch === 'ia32') { - console.warn(`fs-extra: Using the preserveTimestamps option in 32-bit node is not recommended;\n - see https://github.com/jprichardson/node-fs-extra/issues/269`) - } - - stat.checkPaths(src, dest, 'copy', (err, stats) => { - if (err) return cb(err) - const { srcStat, destStat } = stats - stat.checkParentPaths(src, srcStat, dest, 'copy', err => { - if (err) return cb(err) - if (opts.filter) return handleFilter(checkParentDir, destStat, src, dest, opts, cb) - return checkParentDir(destStat, src, dest, opts, cb) - }) - }) -} - -function checkParentDir (destStat, src, dest, opts, cb) { - const destParent = path.dirname(dest) - pathExists(destParent, (err, dirExists) => { - if (err) return cb(err) - if (dirExists) return startCopy(destStat, src, dest, opts, cb) - mkdirs(destParent, err => { - if (err) return cb(err) - return startCopy(destStat, src, dest, opts, cb) - }) - }) -} - -function handleFilter (onInclude, destStat, src, dest, opts, cb) { - Promise.resolve(opts.filter(src, dest)).then(include => { - if (include) return onInclude(destStat, src, dest, opts, cb) - return cb() - }, error => cb(error)) -} - -function startCopy (destStat, src, dest, opts, cb) { - if (opts.filter) return handleFilter(getStats, destStat, src, dest, opts, cb) - return getStats(destStat, src, dest, opts, cb) -} - -function getStats (destStat, src, dest, opts, cb) { - const stat = opts.dereference ? fs.stat : fs.lstat - stat(src, (err, srcStat) => { - if (err) return cb(err) - - if (srcStat.isDirectory()) return onDir(srcStat, destStat, src, dest, opts, cb) - else if (srcStat.isFile() || - srcStat.isCharacterDevice() || - srcStat.isBlockDevice()) return onFile(srcStat, destStat, src, dest, opts, cb) - else if (srcStat.isSymbolicLink()) return onLink(destStat, src, dest, opts, cb) - }) -} - -function onFile (srcStat, destStat, src, dest, opts, cb) { - if (!destStat) return copyFile(srcStat, src, dest, opts, cb) - return mayCopyFile(srcStat, src, dest, opts, cb) -} - -function mayCopyFile (srcStat, src, dest, opts, cb) { - if (opts.overwrite) { - fs.unlink(dest, err => { - if (err) return cb(err) - return copyFile(srcStat, src, dest, opts, cb) - }) - } else if (opts.errorOnExist) { - return cb(new Error(`'${dest}' already exists`)) - } else return cb() -} - -function copyFile (srcStat, src, dest, opts, cb) { - fs.copyFile(src, dest, err => { - if (err) return cb(err) - if (opts.preserveTimestamps) return handleTimestampsAndMode(srcStat.mode, src, dest, cb) - return setDestMode(dest, srcStat.mode, cb) - }) -} - -function handleTimestampsAndMode (srcMode, src, dest, cb) { - // Make sure the file is writable before setting the timestamp - // otherwise open fails with EPERM when invoked with 'r+' - // (through utimes call) - if (fileIsNotWritable(srcMode)) { - return makeFileWritable(dest, srcMode, err => { - if (err) return cb(err) - return setDestTimestampsAndMode(srcMode, src, dest, cb) - }) - } - return setDestTimestampsAndMode(srcMode, src, dest, cb) -} - -function fileIsNotWritable (srcMode) { - return (srcMode & 0o200) === 0 -} - -function makeFileWritable (dest, srcMode, cb) { - return setDestMode(dest, srcMode | 0o200, cb) -} - -function setDestTimestampsAndMode (srcMode, src, dest, cb) { - setDestTimestamps(src, dest, err => { - if (err) return cb(err) - return setDestMode(dest, srcMode, cb) - }) -} - -function setDestMode (dest, srcMode, cb) { - return fs.chmod(dest, srcMode, cb) -} - -function setDestTimestamps (src, dest, cb) { - // The initial srcStat.atime cannot be trusted - // because it is modified by the read(2) system call - // (See https://nodejs.org/api/fs.html#fs_stat_time_values) - fs.stat(src, (err, updatedSrcStat) => { - if (err) return cb(err) - return utimesMillis(dest, updatedSrcStat.atime, updatedSrcStat.mtime, cb) - }) -} - -function onDir (srcStat, destStat, src, dest, opts, cb) { - if (!destStat) return mkDirAndCopy(srcStat.mode, src, dest, opts, cb) - if (destStat && !destStat.isDirectory()) { - return cb(new Error(`Cannot overwrite non-directory '${dest}' with directory '${src}'.`)) - } - return copyDir(src, dest, opts, cb) -} - -function mkDirAndCopy (srcMode, src, dest, opts, cb) { - fs.mkdir(dest, err => { - if (err) return cb(err) - copyDir(src, dest, opts, err => { - if (err) return cb(err) - return setDestMode(dest, srcMode, cb) - }) - }) -} - -function copyDir (src, dest, opts, cb) { - fs.readdir(src, (err, items) => { - if (err) return cb(err) - return copyDirItems(items, src, dest, opts, cb) - }) -} - -function copyDirItems (items, src, dest, opts, cb) { - const item = items.pop() - if (!item) return cb() - return copyDirItem(items, item, src, dest, opts, cb) -} - -function copyDirItem (items, item, src, dest, opts, cb) { - const srcItem = path.join(src, item) - const destItem = path.join(dest, item) - stat.checkPaths(srcItem, destItem, 'copy', (err, stats) => { - if (err) return cb(err) - const { destStat } = stats - startCopy(destStat, srcItem, destItem, opts, err => { - if (err) return cb(err) - return copyDirItems(items, src, dest, opts, cb) - }) - }) -} - -function onLink (destStat, src, dest, opts, cb) { - fs.readlink(src, (err, resolvedSrc) => { - if (err) return cb(err) - if (opts.dereference) { - resolvedSrc = path.resolve(process.cwd(), resolvedSrc) - } - - if (!destStat) { - return fs.symlink(resolvedSrc, dest, cb) - } else { - fs.readlink(dest, (err, resolvedDest) => { - if (err) { - // dest exists and is a regular file or directory, - // Windows may throw UNKNOWN error. If dest already exists, - // fs throws error anyway, so no need to guard against it here. - if (err.code === 'EINVAL' || err.code === 'UNKNOWN') return fs.symlink(resolvedSrc, dest, cb) - return cb(err) - } - if (opts.dereference) { - resolvedDest = path.resolve(process.cwd(), resolvedDest) - } - if (stat.isSrcSubdir(resolvedSrc, resolvedDest)) { - return cb(new Error(`Cannot copy '${resolvedSrc}' to a subdirectory of itself, '${resolvedDest}'.`)) - } - - // do not copy if src is a subdir of dest since unlinking - // dest in this case would result in removing src contents - // and therefore a broken symlink would be created. - if (destStat.isDirectory() && stat.isSrcSubdir(resolvedDest, resolvedSrc)) { - return cb(new Error(`Cannot overwrite '${resolvedDest}' with '${resolvedSrc}'.`)) - } - return copyLink(resolvedSrc, dest, cb) - }) - } - }) -} - -function copyLink (resolvedSrc, dest, cb) { - fs.unlink(dest, err => { - if (err) return cb(err) - return fs.symlink(resolvedSrc, dest, cb) - }) -} - -module.exports = copy diff --git a/ionic/platforms/android/cordova/node_modules/fs-extra/lib/copy/index.js b/ionic/platforms/android/cordova/node_modules/fs-extra/lib/copy/index.js deleted file mode 100644 index b7e4f7f8d4d5d819b39e73e7ebe85f7b90683c46..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/fs-extra/lib/copy/index.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict' - -const u = require('universalify').fromCallback -module.exports = { - copy: u(require('./copy')) -} diff --git a/ionic/platforms/android/cordova/node_modules/fs-extra/lib/empty/index.js b/ionic/platforms/android/cordova/node_modules/fs-extra/lib/empty/index.js deleted file mode 100644 index 90fb46991e8fded0a31ccee5f3ce5d36f1f7476a..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/fs-extra/lib/empty/index.js +++ /dev/null @@ -1,48 +0,0 @@ -'use strict' - -const u = require('universalify').fromCallback -const fs = require('graceful-fs') -const path = require('path') -const mkdir = require('../mkdirs') -const remove = require('../remove') - -const emptyDir = u(function emptyDir (dir, callback) { - callback = callback || function () {} - fs.readdir(dir, (err, items) => { - if (err) return mkdir.mkdirs(dir, callback) - - items = items.map(item => path.join(dir, item)) - - deleteItem() - - function deleteItem () { - const item = items.pop() - if (!item) return callback() - remove.remove(item, err => { - if (err) return callback(err) - deleteItem() - }) - } - }) -}) - -function emptyDirSync (dir) { - let items - try { - items = fs.readdirSync(dir) - } catch { - return mkdir.mkdirsSync(dir) - } - - items.forEach(item => { - item = path.join(dir, item) - remove.removeSync(item) - }) -} - -module.exports = { - emptyDirSync, - emptydirSync: emptyDirSync, - emptyDir, - emptydir: emptyDir -} diff --git a/ionic/platforms/android/cordova/node_modules/fs-extra/lib/ensure/file.js b/ionic/platforms/android/cordova/node_modules/fs-extra/lib/ensure/file.js deleted file mode 100644 index 15cc473c8a74fbe6e832712cf6015fd06f830415..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/fs-extra/lib/ensure/file.js +++ /dev/null @@ -1,69 +0,0 @@ -'use strict' - -const u = require('universalify').fromCallback -const path = require('path') -const fs = require('graceful-fs') -const mkdir = require('../mkdirs') - -function createFile (file, callback) { - function makeFile () { - fs.writeFile(file, '', err => { - if (err) return callback(err) - callback() - }) - } - - fs.stat(file, (err, stats) => { // eslint-disable-line handle-callback-err - if (!err && stats.isFile()) return callback() - const dir = path.dirname(file) - fs.stat(dir, (err, stats) => { - if (err) { - // if the directory doesn't exist, make it - if (err.code === 'ENOENT') { - return mkdir.mkdirs(dir, err => { - if (err) return callback(err) - makeFile() - }) - } - return callback(err) - } - - if (stats.isDirectory()) makeFile() - else { - // parent is not a directory - // This is just to cause an internal ENOTDIR error to be thrown - fs.readdir(dir, err => { - if (err) return callback(err) - }) - } - }) - }) -} - -function createFileSync (file) { - let stats - try { - stats = fs.statSync(file) - } catch {} - if (stats && stats.isFile()) return - - const dir = path.dirname(file) - try { - if (!fs.statSync(dir).isDirectory()) { - // parent is not a directory - // This is just to cause an internal ENOTDIR error to be thrown - fs.readdirSync(dir) - } - } catch (err) { - // If the stat call above failed because the directory doesn't exist, create it - if (err && err.code === 'ENOENT') mkdir.mkdirsSync(dir) - else throw err - } - - fs.writeFileSync(file, '') -} - -module.exports = { - createFile: u(createFile), - createFileSync -} diff --git a/ionic/platforms/android/cordova/node_modules/fs-extra/lib/ensure/index.js b/ionic/platforms/android/cordova/node_modules/fs-extra/lib/ensure/index.js deleted file mode 100644 index c1f67b71878b3db1a5d82c9a1ac0655d5558c03e..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/fs-extra/lib/ensure/index.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict' - -const file = require('./file') -const link = require('./link') -const symlink = require('./symlink') - -module.exports = { - // file - createFile: file.createFile, - createFileSync: file.createFileSync, - ensureFile: file.createFile, - ensureFileSync: file.createFileSync, - // link - createLink: link.createLink, - createLinkSync: link.createLinkSync, - ensureLink: link.createLink, - ensureLinkSync: link.createLinkSync, - // symlink - createSymlink: symlink.createSymlink, - createSymlinkSync: symlink.createSymlinkSync, - ensureSymlink: symlink.createSymlink, - ensureSymlinkSync: symlink.createSymlinkSync -} diff --git a/ionic/platforms/android/cordova/node_modules/fs-extra/lib/ensure/link.js b/ionic/platforms/android/cordova/node_modules/fs-extra/lib/ensure/link.js deleted file mode 100644 index 2cd419626a6658ce2403689d541d11ab4d8aafe8..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/fs-extra/lib/ensure/link.js +++ /dev/null @@ -1,61 +0,0 @@ -'use strict' - -const u = require('universalify').fromCallback -const path = require('path') -const fs = require('graceful-fs') -const mkdir = require('../mkdirs') -const pathExists = require('../path-exists').pathExists - -function createLink (srcpath, dstpath, callback) { - function makeLink (srcpath, dstpath) { - fs.link(srcpath, dstpath, err => { - if (err) return callback(err) - callback(null) - }) - } - - pathExists(dstpath, (err, destinationExists) => { - if (err) return callback(err) - if (destinationExists) return callback(null) - fs.lstat(srcpath, (err) => { - if (err) { - err.message = err.message.replace('lstat', 'ensureLink') - return callback(err) - } - - const dir = path.dirname(dstpath) - pathExists(dir, (err, dirExists) => { - if (err) return callback(err) - if (dirExists) return makeLink(srcpath, dstpath) - mkdir.mkdirs(dir, err => { - if (err) return callback(err) - makeLink(srcpath, dstpath) - }) - }) - }) - }) -} - -function createLinkSync (srcpath, dstpath) { - const destinationExists = fs.existsSync(dstpath) - if (destinationExists) return undefined - - try { - fs.lstatSync(srcpath) - } catch (err) { - err.message = err.message.replace('lstat', 'ensureLink') - throw err - } - - const dir = path.dirname(dstpath) - const dirExists = fs.existsSync(dir) - if (dirExists) return fs.linkSync(srcpath, dstpath) - mkdir.mkdirsSync(dir) - - return fs.linkSync(srcpath, dstpath) -} - -module.exports = { - createLink: u(createLink), - createLinkSync -} diff --git a/ionic/platforms/android/cordova/node_modules/fs-extra/lib/ensure/symlink-paths.js b/ionic/platforms/android/cordova/node_modules/fs-extra/lib/ensure/symlink-paths.js deleted file mode 100644 index 33cd76000e6bdcdbb0a87d096100c5771316b119..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/fs-extra/lib/ensure/symlink-paths.js +++ /dev/null @@ -1,99 +0,0 @@ -'use strict' - -const path = require('path') -const fs = require('graceful-fs') -const pathExists = require('../path-exists').pathExists - -/** - * Function that returns two types of paths, one relative to symlink, and one - * relative to the current working directory. Checks if path is absolute or - * relative. If the path is relative, this function checks if the path is - * relative to symlink or relative to current working directory. This is an - * initiative to find a smarter `srcpath` to supply when building symlinks. - * This allows you to determine which path to use out of one of three possible - * types of source paths. The first is an absolute path. This is detected by - * `path.isAbsolute()`. When an absolute path is provided, it is checked to - * see if it exists. If it does it's used, if not an error is returned - * (callback)/ thrown (sync). The other two options for `srcpath` are a - * relative url. By default Node's `fs.symlink` works by creating a symlink - * using `dstpath` and expects the `srcpath` to be relative to the newly - * created symlink. If you provide a `srcpath` that does not exist on the file - * system it results in a broken symlink. To minimize this, the function - * checks to see if the 'relative to symlink' source file exists, and if it - * does it will use it. If it does not, it checks if there's a file that - * exists that is relative to the current working directory, if does its used. - * This preserves the expectations of the original fs.symlink spec and adds - * the ability to pass in `relative to current working direcotry` paths. - */ - -function symlinkPaths (srcpath, dstpath, callback) { - if (path.isAbsolute(srcpath)) { - return fs.lstat(srcpath, (err) => { - if (err) { - err.message = err.message.replace('lstat', 'ensureSymlink') - return callback(err) - } - return callback(null, { - toCwd: srcpath, - toDst: srcpath - }) - }) - } else { - const dstdir = path.dirname(dstpath) - const relativeToDst = path.join(dstdir, srcpath) - return pathExists(relativeToDst, (err, exists) => { - if (err) return callback(err) - if (exists) { - return callback(null, { - toCwd: relativeToDst, - toDst: srcpath - }) - } else { - return fs.lstat(srcpath, (err) => { - if (err) { - err.message = err.message.replace('lstat', 'ensureSymlink') - return callback(err) - } - return callback(null, { - toCwd: srcpath, - toDst: path.relative(dstdir, srcpath) - }) - }) - } - }) - } -} - -function symlinkPathsSync (srcpath, dstpath) { - let exists - if (path.isAbsolute(srcpath)) { - exists = fs.existsSync(srcpath) - if (!exists) throw new Error('absolute srcpath does not exist') - return { - toCwd: srcpath, - toDst: srcpath - } - } else { - const dstdir = path.dirname(dstpath) - const relativeToDst = path.join(dstdir, srcpath) - exists = fs.existsSync(relativeToDst) - if (exists) { - return { - toCwd: relativeToDst, - toDst: srcpath - } - } else { - exists = fs.existsSync(srcpath) - if (!exists) throw new Error('relative srcpath does not exist') - return { - toCwd: srcpath, - toDst: path.relative(dstdir, srcpath) - } - } - } -} - -module.exports = { - symlinkPaths, - symlinkPathsSync -} diff --git a/ionic/platforms/android/cordova/node_modules/fs-extra/lib/ensure/symlink-type.js b/ionic/platforms/android/cordova/node_modules/fs-extra/lib/ensure/symlink-type.js deleted file mode 100644 index 42dc0ce753d641a72c453fb1a3cd09cbb1196e97..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/fs-extra/lib/ensure/symlink-type.js +++ /dev/null @@ -1,31 +0,0 @@ -'use strict' - -const fs = require('graceful-fs') - -function symlinkType (srcpath, type, callback) { - callback = (typeof type === 'function') ? type : callback - type = (typeof type === 'function') ? false : type - if (type) return callback(null, type) - fs.lstat(srcpath, (err, stats) => { - if (err) return callback(null, 'file') - type = (stats && stats.isDirectory()) ? 'dir' : 'file' - callback(null, type) - }) -} - -function symlinkTypeSync (srcpath, type) { - let stats - - if (type) return type - try { - stats = fs.lstatSync(srcpath) - } catch { - return 'file' - } - return (stats && stats.isDirectory()) ? 'dir' : 'file' -} - -module.exports = { - symlinkType, - symlinkTypeSync -} diff --git a/ionic/platforms/android/cordova/node_modules/fs-extra/lib/ensure/symlink.js b/ionic/platforms/android/cordova/node_modules/fs-extra/lib/ensure/symlink.js deleted file mode 100644 index fe68b799787243921c6acd712d438c708a392e02..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/fs-extra/lib/ensure/symlink.js +++ /dev/null @@ -1,63 +0,0 @@ -'use strict' - -const u = require('universalify').fromCallback -const path = require('path') -const fs = require('graceful-fs') -const _mkdirs = require('../mkdirs') -const mkdirs = _mkdirs.mkdirs -const mkdirsSync = _mkdirs.mkdirsSync - -const _symlinkPaths = require('./symlink-paths') -const symlinkPaths = _symlinkPaths.symlinkPaths -const symlinkPathsSync = _symlinkPaths.symlinkPathsSync - -const _symlinkType = require('./symlink-type') -const symlinkType = _symlinkType.symlinkType -const symlinkTypeSync = _symlinkType.symlinkTypeSync - -const pathExists = require('../path-exists').pathExists - -function createSymlink (srcpath, dstpath, type, callback) { - callback = (typeof type === 'function') ? type : callback - type = (typeof type === 'function') ? false : type - - pathExists(dstpath, (err, destinationExists) => { - if (err) return callback(err) - if (destinationExists) return callback(null) - symlinkPaths(srcpath, dstpath, (err, relative) => { - if (err) return callback(err) - srcpath = relative.toDst - symlinkType(relative.toCwd, type, (err, type) => { - if (err) return callback(err) - const dir = path.dirname(dstpath) - pathExists(dir, (err, dirExists) => { - if (err) return callback(err) - if (dirExists) return fs.symlink(srcpath, dstpath, type, callback) - mkdirs(dir, err => { - if (err) return callback(err) - fs.symlink(srcpath, dstpath, type, callback) - }) - }) - }) - }) - }) -} - -function createSymlinkSync (srcpath, dstpath, type) { - const destinationExists = fs.existsSync(dstpath) - if (destinationExists) return undefined - - const relative = symlinkPathsSync(srcpath, dstpath) - srcpath = relative.toDst - type = symlinkTypeSync(relative.toCwd, type) - const dir = path.dirname(dstpath) - const exists = fs.existsSync(dir) - if (exists) return fs.symlinkSync(srcpath, dstpath, type) - mkdirsSync(dir) - return fs.symlinkSync(srcpath, dstpath, type) -} - -module.exports = { - createSymlink: u(createSymlink), - createSymlinkSync -} diff --git a/ionic/platforms/android/cordova/node_modules/fs-extra/lib/fs/index.js b/ionic/platforms/android/cordova/node_modules/fs-extra/lib/fs/index.js deleted file mode 100644 index 101aae9b668ec7e7160b13cf335b61478c11bc2e..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/fs-extra/lib/fs/index.js +++ /dev/null @@ -1,128 +0,0 @@ -'use strict' -// This is adapted from https://github.com/normalize/mz -// Copyright (c) 2014-2016 Jonathan Ong me@jongleberry.com and Contributors -const u = require('universalify').fromCallback -const fs = require('graceful-fs') - -const api = [ - 'access', - 'appendFile', - 'chmod', - 'chown', - 'close', - 'copyFile', - 'fchmod', - 'fchown', - 'fdatasync', - 'fstat', - 'fsync', - 'ftruncate', - 'futimes', - 'lchmod', - 'lchown', - 'link', - 'lstat', - 'mkdir', - 'mkdtemp', - 'open', - 'opendir', - 'readdir', - 'readFile', - 'readlink', - 'realpath', - 'rename', - 'rmdir', - 'stat', - 'symlink', - 'truncate', - 'unlink', - 'utimes', - 'writeFile' -].filter(key => { - // Some commands are not available on some systems. Ex: - // fs.opendir was added in Node.js v12.12.0 - // fs.lchown is not available on at least some Linux - return typeof fs[key] === 'function' -}) - -// Export all keys: -Object.keys(fs).forEach(key => { - if (key === 'promises') { - // fs.promises is a getter property that triggers ExperimentalWarning - // Don't re-export it here, the getter is defined in "lib/index.js" - return - } - exports[key] = fs[key] -}) - -// Universalify async methods: -api.forEach(method => { - exports[method] = u(fs[method]) -}) - -// We differ from mz/fs in that we still ship the old, broken, fs.exists() -// since we are a drop-in replacement for the native module -exports.exists = function (filename, callback) { - if (typeof callback === 'function') { - return fs.exists(filename, callback) - } - return new Promise(resolve => { - return fs.exists(filename, resolve) - }) -} - -// fs.read(), fs.write(), & fs.writev() need special treatment due to multiple callback args - -exports.read = function (fd, buffer, offset, length, position, callback) { - if (typeof callback === 'function') { - return fs.read(fd, buffer, offset, length, position, callback) - } - return new Promise((resolve, reject) => { - fs.read(fd, buffer, offset, length, position, (err, bytesRead, buffer) => { - if (err) return reject(err) - resolve({ bytesRead, buffer }) - }) - }) -} - -// Function signature can be -// fs.write(fd, buffer[, offset[, length[, position]]], callback) -// OR -// fs.write(fd, string[, position[, encoding]], callback) -// We need to handle both cases, so we use ...args -exports.write = function (fd, buffer, ...args) { - if (typeof args[args.length - 1] === 'function') { - return fs.write(fd, buffer, ...args) - } - - return new Promise((resolve, reject) => { - fs.write(fd, buffer, ...args, (err, bytesWritten, buffer) => { - if (err) return reject(err) - resolve({ bytesWritten, buffer }) - }) - }) -} - -// fs.writev only available in Node v12.9.0+ -if (typeof fs.writev === 'function') { - // Function signature is - // s.writev(fd, buffers[, position], callback) - // We need to handle the optional arg, so we use ...args - exports.writev = function (fd, buffers, ...args) { - if (typeof args[args.length - 1] === 'function') { - return fs.writev(fd, buffers, ...args) - } - - return new Promise((resolve, reject) => { - fs.writev(fd, buffers, ...args, (err, bytesWritten, buffers) => { - if (err) return reject(err) - resolve({ bytesWritten, buffers }) - }) - }) - } -} - -// fs.realpath.native only available in Node v9.2+ -if (typeof fs.realpath.native === 'function') { - exports.realpath.native = u(fs.realpath.native) -} diff --git a/ionic/platforms/android/cordova/node_modules/fs-extra/lib/index.js b/ionic/platforms/android/cordova/node_modules/fs-extra/lib/index.js deleted file mode 100644 index d9468e699c118aa316bb2bca78a95ef2ed4e44a8..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/fs-extra/lib/index.js +++ /dev/null @@ -1,27 +0,0 @@ -'use strict' - -module.exports = { - // Export promiseified graceful-fs: - ...require('./fs'), - // Export extra methods: - ...require('./copy-sync'), - ...require('./copy'), - ...require('./empty'), - ...require('./ensure'), - ...require('./json'), - ...require('./mkdirs'), - ...require('./move-sync'), - ...require('./move'), - ...require('./output'), - ...require('./path-exists'), - ...require('./remove') -} - -// Export fs.promises as a getter property so that we don't trigger -// ExperimentalWarning before fs.promises is actually accessed. -const fs = require('fs') -if (Object.getOwnPropertyDescriptor(fs, 'promises')) { - Object.defineProperty(module.exports, 'promises', { - get () { return fs.promises } - }) -} diff --git a/ionic/platforms/android/cordova/node_modules/fs-extra/lib/json/index.js b/ionic/platforms/android/cordova/node_modules/fs-extra/lib/json/index.js deleted file mode 100644 index 900126ad0bf741e2f7fb426c9ea95d1124fe09bb..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/fs-extra/lib/json/index.js +++ /dev/null @@ -1,16 +0,0 @@ -'use strict' - -const u = require('universalify').fromPromise -const jsonFile = require('./jsonfile') - -jsonFile.outputJson = u(require('./output-json')) -jsonFile.outputJsonSync = require('./output-json-sync') -// aliases -jsonFile.outputJSON = jsonFile.outputJson -jsonFile.outputJSONSync = jsonFile.outputJsonSync -jsonFile.writeJSON = jsonFile.writeJson -jsonFile.writeJSONSync = jsonFile.writeJsonSync -jsonFile.readJSON = jsonFile.readJson -jsonFile.readJSONSync = jsonFile.readJsonSync - -module.exports = jsonFile diff --git a/ionic/platforms/android/cordova/node_modules/fs-extra/lib/json/jsonfile.js b/ionic/platforms/android/cordova/node_modules/fs-extra/lib/json/jsonfile.js deleted file mode 100644 index f11d34d623d879f1d443dfa8e4e2ce4e13170b75..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/fs-extra/lib/json/jsonfile.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict' - -const jsonFile = require('jsonfile') - -module.exports = { - // jsonfile exports - readJson: jsonFile.readFile, - readJsonSync: jsonFile.readFileSync, - writeJson: jsonFile.writeFile, - writeJsonSync: jsonFile.writeFileSync -} diff --git a/ionic/platforms/android/cordova/node_modules/fs-extra/lib/json/output-json-sync.js b/ionic/platforms/android/cordova/node_modules/fs-extra/lib/json/output-json-sync.js deleted file mode 100644 index f76b4744ce5e2dd57653a0228b07a8bbbad44367..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/fs-extra/lib/json/output-json-sync.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict' - -const { stringify } = require('jsonfile/utils') -const { outputFileSync } = require('../output') - -function outputJsonSync (file, data, options) { - const str = stringify(data, options) - - outputFileSync(file, str, options) -} - -module.exports = outputJsonSync diff --git a/ionic/platforms/android/cordova/node_modules/fs-extra/lib/json/output-json.js b/ionic/platforms/android/cordova/node_modules/fs-extra/lib/json/output-json.js deleted file mode 100644 index 0fc668977fca888760aded57498aa2733509bc2f..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/fs-extra/lib/json/output-json.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict' - -const { stringify } = require('jsonfile/utils') -const { outputFile } = require('../output') - -async function outputJson (file, data, options = {}) { - const str = stringify(data, options) - - await outputFile(file, str, options) -} - -module.exports = outputJson diff --git a/ionic/platforms/android/cordova/node_modules/fs-extra/lib/mkdirs/index.js b/ionic/platforms/android/cordova/node_modules/fs-extra/lib/mkdirs/index.js deleted file mode 100644 index 9edecee08f1f86a9b5541927823469788949e6d1..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/fs-extra/lib/mkdirs/index.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict' -const u = require('universalify').fromPromise -const { makeDir: _makeDir, makeDirSync } = require('./make-dir') -const makeDir = u(_makeDir) - -module.exports = { - mkdirs: makeDir, - mkdirsSync: makeDirSync, - // alias - mkdirp: makeDir, - mkdirpSync: makeDirSync, - ensureDir: makeDir, - ensureDirSync: makeDirSync -} diff --git a/ionic/platforms/android/cordova/node_modules/fs-extra/lib/mkdirs/make-dir.js b/ionic/platforms/android/cordova/node_modules/fs-extra/lib/mkdirs/make-dir.js deleted file mode 100644 index 3e7e8360549ff526fd4f4359d0f9063de0e5f3b1..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/fs-extra/lib/mkdirs/make-dir.js +++ /dev/null @@ -1,141 +0,0 @@ -// Adapted from https://github.com/sindresorhus/make-dir -// Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com) -// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: -// The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -'use strict' -const fs = require('../fs') -const path = require('path') -const atLeastNode = require('at-least-node') - -const useNativeRecursiveOption = atLeastNode('10.12.0') - -// https://github.com/nodejs/node/issues/8987 -// https://github.com/libuv/libuv/pull/1088 -const checkPath = pth => { - if (process.platform === 'win32') { - const pathHasInvalidWinCharacters = /[<>:"|?*]/.test(pth.replace(path.parse(pth).root, '')) - - if (pathHasInvalidWinCharacters) { - const error = new Error(`Path contains invalid characters: ${pth}`) - error.code = 'EINVAL' - throw error - } - } -} - -const processOptions = options => { - const defaults = { mode: 0o777 } - if (typeof options === 'number') options = { mode: options } - return { ...defaults, ...options } -} - -const permissionError = pth => { - // This replicates the exception of `fs.mkdir` with native the - // `recusive` option when run on an invalid drive under Windows. - const error = new Error(`operation not permitted, mkdir '${pth}'`) - error.code = 'EPERM' - error.errno = -4048 - error.path = pth - error.syscall = 'mkdir' - return error -} - -module.exports.makeDir = async (input, options) => { - checkPath(input) - options = processOptions(options) - - if (useNativeRecursiveOption) { - const pth = path.resolve(input) - - return fs.mkdir(pth, { - mode: options.mode, - recursive: true - }) - } - - const make = async pth => { - try { - await fs.mkdir(pth, options.mode) - } catch (error) { - if (error.code === 'EPERM') { - throw error - } - - if (error.code === 'ENOENT') { - if (path.dirname(pth) === pth) { - throw permissionError(pth) - } - - if (error.message.includes('null bytes')) { - throw error - } - - await make(path.dirname(pth)) - return make(pth) - } - - try { - const stats = await fs.stat(pth) - if (!stats.isDirectory()) { - // This error is never exposed to the user - // it is caught below, and the original error is thrown - throw new Error('The path is not a directory') - } - } catch { - throw error - } - } - } - - return make(path.resolve(input)) -} - -module.exports.makeDirSync = (input, options) => { - checkPath(input) - options = processOptions(options) - - if (useNativeRecursiveOption) { - const pth = path.resolve(input) - - return fs.mkdirSync(pth, { - mode: options.mode, - recursive: true - }) - } - - const make = pth => { - try { - fs.mkdirSync(pth, options.mode) - } catch (error) { - if (error.code === 'EPERM') { - throw error - } - - if (error.code === 'ENOENT') { - if (path.dirname(pth) === pth) { - throw permissionError(pth) - } - - if (error.message.includes('null bytes')) { - throw error - } - - make(path.dirname(pth)) - return make(pth) - } - - try { - if (!fs.statSync(pth).isDirectory()) { - // This error is never exposed to the user - // it is caught below, and the original error is thrown - throw new Error('The path is not a directory') - } - } catch { - throw error - } - } - } - - return make(path.resolve(input)) -} diff --git a/ionic/platforms/android/cordova/node_modules/fs-extra/lib/move-sync/index.js b/ionic/platforms/android/cordova/node_modules/fs-extra/lib/move-sync/index.js deleted file mode 100644 index af90b06b423b9d3af43a81e090a784700bef9e3e..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/fs-extra/lib/move-sync/index.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict' - -module.exports = { - moveSync: require('./move-sync') -} diff --git a/ionic/platforms/android/cordova/node_modules/fs-extra/lib/move-sync/move-sync.js b/ionic/platforms/android/cordova/node_modules/fs-extra/lib/move-sync/move-sync.js deleted file mode 100644 index 20f910cc258f8f2969a66d538e2d1703c4de98af..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/fs-extra/lib/move-sync/move-sync.js +++ /dev/null @@ -1,47 +0,0 @@ -'use strict' - -const fs = require('graceful-fs') -const path = require('path') -const copySync = require('../copy-sync').copySync -const removeSync = require('../remove').removeSync -const mkdirpSync = require('../mkdirs').mkdirpSync -const stat = require('../util/stat') - -function moveSync (src, dest, opts) { - opts = opts || {} - const overwrite = opts.overwrite || opts.clobber || false - - const { srcStat } = stat.checkPathsSync(src, dest, 'move') - stat.checkParentPathsSync(src, srcStat, dest, 'move') - mkdirpSync(path.dirname(dest)) - return doRename(src, dest, overwrite) -} - -function doRename (src, dest, overwrite) { - if (overwrite) { - removeSync(dest) - return rename(src, dest, overwrite) - } - if (fs.existsSync(dest)) throw new Error('dest already exists.') - return rename(src, dest, overwrite) -} - -function rename (src, dest, overwrite) { - try { - fs.renameSync(src, dest) - } catch (err) { - if (err.code !== 'EXDEV') throw err - return moveAcrossDevice(src, dest, overwrite) - } -} - -function moveAcrossDevice (src, dest, overwrite) { - const opts = { - overwrite, - errorOnExist: true - } - copySync(src, dest, opts) - return removeSync(src) -} - -module.exports = moveSync diff --git a/ionic/platforms/android/cordova/node_modules/fs-extra/lib/move/index.js b/ionic/platforms/android/cordova/node_modules/fs-extra/lib/move/index.js deleted file mode 100644 index 3785345bd2670db9bdf41e3c4766d1b5d5a34813..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/fs-extra/lib/move/index.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict' - -const u = require('universalify').fromCallback -module.exports = { - move: u(require('./move')) -} diff --git a/ionic/platforms/android/cordova/node_modules/fs-extra/lib/move/move.js b/ionic/platforms/android/cordova/node_modules/fs-extra/lib/move/move.js deleted file mode 100644 index fa3ea618a29b6de8b76f4318c0b99700f878b39a..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/fs-extra/lib/move/move.js +++ /dev/null @@ -1,65 +0,0 @@ -'use strict' - -const fs = require('graceful-fs') -const path = require('path') -const copy = require('../copy').copy -const remove = require('../remove').remove -const mkdirp = require('../mkdirs').mkdirp -const pathExists = require('../path-exists').pathExists -const stat = require('../util/stat') - -function move (src, dest, opts, cb) { - if (typeof opts === 'function') { - cb = opts - opts = {} - } - - const overwrite = opts.overwrite || opts.clobber || false - - stat.checkPaths(src, dest, 'move', (err, stats) => { - if (err) return cb(err) - const { srcStat } = stats - stat.checkParentPaths(src, srcStat, dest, 'move', err => { - if (err) return cb(err) - mkdirp(path.dirname(dest), err => { - if (err) return cb(err) - return doRename(src, dest, overwrite, cb) - }) - }) - }) -} - -function doRename (src, dest, overwrite, cb) { - if (overwrite) { - return remove(dest, err => { - if (err) return cb(err) - return rename(src, dest, overwrite, cb) - }) - } - pathExists(dest, (err, destExists) => { - if (err) return cb(err) - if (destExists) return cb(new Error('dest already exists.')) - return rename(src, dest, overwrite, cb) - }) -} - -function rename (src, dest, overwrite, cb) { - fs.rename(src, dest, err => { - if (!err) return cb() - if (err.code !== 'EXDEV') return cb(err) - return moveAcrossDevice(src, dest, overwrite, cb) - }) -} - -function moveAcrossDevice (src, dest, overwrite, cb) { - const opts = { - overwrite, - errorOnExist: true - } - copy(src, dest, opts, err => { - if (err) return cb(err) - return remove(src, cb) - }) -} - -module.exports = move diff --git a/ionic/platforms/android/cordova/node_modules/fs-extra/lib/output/index.js b/ionic/platforms/android/cordova/node_modules/fs-extra/lib/output/index.js deleted file mode 100644 index 92297ca3a68cc16713fb25504d3800bad744fb72..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/fs-extra/lib/output/index.js +++ /dev/null @@ -1,40 +0,0 @@ -'use strict' - -const u = require('universalify').fromCallback -const fs = require('graceful-fs') -const path = require('path') -const mkdir = require('../mkdirs') -const pathExists = require('../path-exists').pathExists - -function outputFile (file, data, encoding, callback) { - if (typeof encoding === 'function') { - callback = encoding - encoding = 'utf8' - } - - const dir = path.dirname(file) - pathExists(dir, (err, itDoes) => { - if (err) return callback(err) - if (itDoes) return fs.writeFile(file, data, encoding, callback) - - mkdir.mkdirs(dir, err => { - if (err) return callback(err) - - fs.writeFile(file, data, encoding, callback) - }) - }) -} - -function outputFileSync (file, ...args) { - const dir = path.dirname(file) - if (fs.existsSync(dir)) { - return fs.writeFileSync(file, ...args) - } - mkdir.mkdirsSync(dir) - fs.writeFileSync(file, ...args) -} - -module.exports = { - outputFile: u(outputFile), - outputFileSync -} diff --git a/ionic/platforms/android/cordova/node_modules/fs-extra/lib/path-exists/index.js b/ionic/platforms/android/cordova/node_modules/fs-extra/lib/path-exists/index.js deleted file mode 100644 index ddd9bc718f73367de57c345c3bfcd236c579dc2f..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/fs-extra/lib/path-exists/index.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict' -const u = require('universalify').fromPromise -const fs = require('../fs') - -function pathExists (path) { - return fs.access(path).then(() => true).catch(() => false) -} - -module.exports = { - pathExists: u(pathExists), - pathExistsSync: fs.existsSync -} diff --git a/ionic/platforms/android/cordova/node_modules/fs-extra/lib/remove/index.js b/ionic/platforms/android/cordova/node_modules/fs-extra/lib/remove/index.js deleted file mode 100644 index cee53400775592ea7f5e6fc3f9d450a62772fbdb..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/fs-extra/lib/remove/index.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict' - -const u = require('universalify').fromCallback -const rimraf = require('./rimraf') - -module.exports = { - remove: u(rimraf), - removeSync: rimraf.sync -} diff --git a/ionic/platforms/android/cordova/node_modules/fs-extra/lib/remove/rimraf.js b/ionic/platforms/android/cordova/node_modules/fs-extra/lib/remove/rimraf.js deleted file mode 100644 index 2c771026586fd6ef15ed120d105df2a804779453..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/fs-extra/lib/remove/rimraf.js +++ /dev/null @@ -1,302 +0,0 @@ -'use strict' - -const fs = require('graceful-fs') -const path = require('path') -const assert = require('assert') - -const isWindows = (process.platform === 'win32') - -function defaults (options) { - const methods = [ - 'unlink', - 'chmod', - 'stat', - 'lstat', - 'rmdir', - 'readdir' - ] - methods.forEach(m => { - options[m] = options[m] || fs[m] - m = m + 'Sync' - options[m] = options[m] || fs[m] - }) - - options.maxBusyTries = options.maxBusyTries || 3 -} - -function rimraf (p, options, cb) { - let busyTries = 0 - - if (typeof options === 'function') { - cb = options - options = {} - } - - assert(p, 'rimraf: missing path') - assert.strictEqual(typeof p, 'string', 'rimraf: path should be a string') - assert.strictEqual(typeof cb, 'function', 'rimraf: callback function required') - assert(options, 'rimraf: invalid options argument provided') - assert.strictEqual(typeof options, 'object', 'rimraf: options should be object') - - defaults(options) - - rimraf_(p, options, function CB (er) { - if (er) { - if ((er.code === 'EBUSY' || er.code === 'ENOTEMPTY' || er.code === 'EPERM') && - busyTries < options.maxBusyTries) { - busyTries++ - const time = busyTries * 100 - // try again, with the same exact callback as this one. - return setTimeout(() => rimraf_(p, options, CB), time) - } - - // already gone - if (er.code === 'ENOENT') er = null - } - - cb(er) - }) -} - -// Two possible strategies. -// 1. Assume it's a file. unlink it, then do the dir stuff on EPERM or EISDIR -// 2. Assume it's a directory. readdir, then do the file stuff on ENOTDIR -// -// Both result in an extra syscall when you guess wrong. However, there -// are likely far more normal files in the world than directories. This -// is based on the assumption that a the average number of files per -// directory is >= 1. -// -// If anyone ever complains about this, then I guess the strategy could -// be made configurable somehow. But until then, YAGNI. -function rimraf_ (p, options, cb) { - assert(p) - assert(options) - assert(typeof cb === 'function') - - // sunos lets the root user unlink directories, which is... weird. - // so we have to lstat here and make sure it's not a dir. - options.lstat(p, (er, st) => { - if (er && er.code === 'ENOENT') { - return cb(null) - } - - // Windows can EPERM on stat. Life is suffering. - if (er && er.code === 'EPERM' && isWindows) { - return fixWinEPERM(p, options, er, cb) - } - - if (st && st.isDirectory()) { - return rmdir(p, options, er, cb) - } - - options.unlink(p, er => { - if (er) { - if (er.code === 'ENOENT') { - return cb(null) - } - if (er.code === 'EPERM') { - return (isWindows) - ? fixWinEPERM(p, options, er, cb) - : rmdir(p, options, er, cb) - } - if (er.code === 'EISDIR') { - return rmdir(p, options, er, cb) - } - } - return cb(er) - }) - }) -} - -function fixWinEPERM (p, options, er, cb) { - assert(p) - assert(options) - assert(typeof cb === 'function') - - options.chmod(p, 0o666, er2 => { - if (er2) { - cb(er2.code === 'ENOENT' ? null : er) - } else { - options.stat(p, (er3, stats) => { - if (er3) { - cb(er3.code === 'ENOENT' ? null : er) - } else if (stats.isDirectory()) { - rmdir(p, options, er, cb) - } else { - options.unlink(p, cb) - } - }) - } - }) -} - -function fixWinEPERMSync (p, options, er) { - let stats - - assert(p) - assert(options) - - try { - options.chmodSync(p, 0o666) - } catch (er2) { - if (er2.code === 'ENOENT') { - return - } else { - throw er - } - } - - try { - stats = options.statSync(p) - } catch (er3) { - if (er3.code === 'ENOENT') { - return - } else { - throw er - } - } - - if (stats.isDirectory()) { - rmdirSync(p, options, er) - } else { - options.unlinkSync(p) - } -} - -function rmdir (p, options, originalEr, cb) { - assert(p) - assert(options) - assert(typeof cb === 'function') - - // try to rmdir first, and only readdir on ENOTEMPTY or EEXIST (SunOS) - // if we guessed wrong, and it's not a directory, then - // raise the original error. - options.rmdir(p, er => { - if (er && (er.code === 'ENOTEMPTY' || er.code === 'EEXIST' || er.code === 'EPERM')) { - rmkids(p, options, cb) - } else if (er && er.code === 'ENOTDIR') { - cb(originalEr) - } else { - cb(er) - } - }) -} - -function rmkids (p, options, cb) { - assert(p) - assert(options) - assert(typeof cb === 'function') - - options.readdir(p, (er, files) => { - if (er) return cb(er) - - let n = files.length - let errState - - if (n === 0) return options.rmdir(p, cb) - - files.forEach(f => { - rimraf(path.join(p, f), options, er => { - if (errState) { - return - } - if (er) return cb(errState = er) - if (--n === 0) { - options.rmdir(p, cb) - } - }) - }) - }) -} - -// this looks simpler, and is strictly *faster*, but will -// tie up the JavaScript thread and fail on excessively -// deep directory trees. -function rimrafSync (p, options) { - let st - - options = options || {} - defaults(options) - - assert(p, 'rimraf: missing path') - assert.strictEqual(typeof p, 'string', 'rimraf: path should be a string') - assert(options, 'rimraf: missing options') - assert.strictEqual(typeof options, 'object', 'rimraf: options should be object') - - try { - st = options.lstatSync(p) - } catch (er) { - if (er.code === 'ENOENT') { - return - } - - // Windows can EPERM on stat. Life is suffering. - if (er.code === 'EPERM' && isWindows) { - fixWinEPERMSync(p, options, er) - } - } - - try { - // sunos lets the root user unlink directories, which is... weird. - if (st && st.isDirectory()) { - rmdirSync(p, options, null) - } else { - options.unlinkSync(p) - } - } catch (er) { - if (er.code === 'ENOENT') { - return - } else if (er.code === 'EPERM') { - return isWindows ? fixWinEPERMSync(p, options, er) : rmdirSync(p, options, er) - } else if (er.code !== 'EISDIR') { - throw er - } - rmdirSync(p, options, er) - } -} - -function rmdirSync (p, options, originalEr) { - assert(p) - assert(options) - - try { - options.rmdirSync(p) - } catch (er) { - if (er.code === 'ENOTDIR') { - throw originalEr - } else if (er.code === 'ENOTEMPTY' || er.code === 'EEXIST' || er.code === 'EPERM') { - rmkidsSync(p, options) - } else if (er.code !== 'ENOENT') { - throw er - } - } -} - -function rmkidsSync (p, options) { - assert(p) - assert(options) - options.readdirSync(p).forEach(f => rimrafSync(path.join(p, f), options)) - - if (isWindows) { - // We only end up here once we got ENOTEMPTY at least once, and - // at this point, we are guaranteed to have removed all the kids. - // So, we know that it won't be ENOENT or ENOTDIR or anything else. - // try really hard to delete stuff on windows, because it has a - // PROFOUNDLY annoying habit of not closing handles promptly when - // files are deleted, resulting in spurious ENOTEMPTY errors. - const startTime = Date.now() - do { - try { - const ret = options.rmdirSync(p, options) - return ret - } catch {} - } while (Date.now() - startTime < 500) // give up after 500ms - } else { - const ret = options.rmdirSync(p, options) - return ret - } -} - -module.exports = rimraf -rimraf.sync = rimrafSync diff --git a/ionic/platforms/android/cordova/node_modules/fs-extra/lib/util/stat.js b/ionic/platforms/android/cordova/node_modules/fs-extra/lib/util/stat.js deleted file mode 100644 index 0b1c1b09636b75e896d0aeccea48ec7976c47547..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/fs-extra/lib/util/stat.js +++ /dev/null @@ -1,139 +0,0 @@ -'use strict' - -const fs = require('../fs') -const path = require('path') -const util = require('util') -const atLeastNode = require('at-least-node') - -const nodeSupportsBigInt = atLeastNode('10.5.0') -const stat = (file) => nodeSupportsBigInt ? fs.stat(file, { bigint: true }) : fs.stat(file) -const statSync = (file) => nodeSupportsBigInt ? fs.statSync(file, { bigint: true }) : fs.statSync(file) - -function getStats (src, dest) { - return Promise.all([ - stat(src), - stat(dest).catch(err => { - if (err.code === 'ENOENT') return null - throw err - }) - ]).then(([srcStat, destStat]) => ({ srcStat, destStat })) -} - -function getStatsSync (src, dest) { - let destStat - const srcStat = statSync(src) - try { - destStat = statSync(dest) - } catch (err) { - if (err.code === 'ENOENT') return { srcStat, destStat: null } - throw err - } - return { srcStat, destStat } -} - -function checkPaths (src, dest, funcName, cb) { - util.callbackify(getStats)(src, dest, (err, stats) => { - if (err) return cb(err) - const { srcStat, destStat } = stats - if (destStat && areIdentical(srcStat, destStat)) { - return cb(new Error('Source and destination must not be the same.')) - } - if (srcStat.isDirectory() && isSrcSubdir(src, dest)) { - return cb(new Error(errMsg(src, dest, funcName))) - } - return cb(null, { srcStat, destStat }) - }) -} - -function checkPathsSync (src, dest, funcName) { - const { srcStat, destStat } = getStatsSync(src, dest) - if (destStat && areIdentical(srcStat, destStat)) { - throw new Error('Source and destination must not be the same.') - } - if (srcStat.isDirectory() && isSrcSubdir(src, dest)) { - throw new Error(errMsg(src, dest, funcName)) - } - return { srcStat, destStat } -} - -// recursively check if dest parent is a subdirectory of src. -// It works for all file types including symlinks since it -// checks the src and dest inodes. It starts from the deepest -// parent and stops once it reaches the src parent or the root path. -function checkParentPaths (src, srcStat, dest, funcName, cb) { - const srcParent = path.resolve(path.dirname(src)) - const destParent = path.resolve(path.dirname(dest)) - if (destParent === srcParent || destParent === path.parse(destParent).root) return cb() - const callback = (err, destStat) => { - if (err) { - if (err.code === 'ENOENT') return cb() - return cb(err) - } - if (areIdentical(srcStat, destStat)) { - return cb(new Error(errMsg(src, dest, funcName))) - } - return checkParentPaths(src, srcStat, destParent, funcName, cb) - } - if (nodeSupportsBigInt) fs.stat(destParent, { bigint: true }, callback) - else fs.stat(destParent, callback) -} - -function checkParentPathsSync (src, srcStat, dest, funcName) { - const srcParent = path.resolve(path.dirname(src)) - const destParent = path.resolve(path.dirname(dest)) - if (destParent === srcParent || destParent === path.parse(destParent).root) return - let destStat - try { - destStat = statSync(destParent) - } catch (err) { - if (err.code === 'ENOENT') return - throw err - } - if (areIdentical(srcStat, destStat)) { - throw new Error(errMsg(src, dest, funcName)) - } - return checkParentPathsSync(src, srcStat, destParent, funcName) -} - -function areIdentical (srcStat, destStat) { - if (destStat.ino && destStat.dev && destStat.ino === srcStat.ino && destStat.dev === srcStat.dev) { - if (nodeSupportsBigInt || destStat.ino < Number.MAX_SAFE_INTEGER) { - // definitive answer - return true - } - // Use additional heuristics if we can't use 'bigint'. - // Different 'ino' could be represented the same if they are >= Number.MAX_SAFE_INTEGER - // See issue 657 - if (destStat.size === srcStat.size && - destStat.mode === srcStat.mode && - destStat.nlink === srcStat.nlink && - destStat.atimeMs === srcStat.atimeMs && - destStat.mtimeMs === srcStat.mtimeMs && - destStat.ctimeMs === srcStat.ctimeMs && - destStat.birthtimeMs === srcStat.birthtimeMs) { - // heuristic answer - return true - } - } - return false -} - -// return true if dest is a subdir of src, otherwise false. -// It only checks the path strings. -function isSrcSubdir (src, dest) { - const srcArr = path.resolve(src).split(path.sep).filter(i => i) - const destArr = path.resolve(dest).split(path.sep).filter(i => i) - return srcArr.reduce((acc, cur, i) => acc && destArr[i] === cur, true) -} - -function errMsg (src, dest, funcName) { - return `Cannot ${funcName} '${src}' to a subdirectory of itself, '${dest}'.` -} - -module.exports = { - checkPaths, - checkPathsSync, - checkParentPaths, - checkParentPathsSync, - isSrcSubdir -} diff --git a/ionic/platforms/android/cordova/node_modules/fs-extra/lib/util/utimes.js b/ionic/platforms/android/cordova/node_modules/fs-extra/lib/util/utimes.js deleted file mode 100644 index 75395deff42fa751456e99b9fd4a7b2426c7eeac..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/fs-extra/lib/util/utimes.js +++ /dev/null @@ -1,26 +0,0 @@ -'use strict' - -const fs = require('graceful-fs') - -function utimesMillis (path, atime, mtime, callback) { - // if (!HAS_MILLIS_RES) return fs.utimes(path, atime, mtime, callback) - fs.open(path, 'r+', (err, fd) => { - if (err) return callback(err) - fs.futimes(fd, atime, mtime, futimesErr => { - fs.close(fd, closeErr => { - if (callback) callback(futimesErr || closeErr) - }) - }) - }) -} - -function utimesMillisSync (path, atime, mtime) { - const fd = fs.openSync(path, 'r+') - fs.futimesSync(fd, atime, mtime) - return fs.closeSync(fd) -} - -module.exports = { - utimesMillis, - utimesMillisSync -} diff --git a/ionic/platforms/android/cordova/node_modules/fs-extra/package.json b/ionic/platforms/android/cordova/node_modules/fs-extra/package.json deleted file mode 100644 index e375a44e4cb3b24c2dac438af1ec995bf85722b7..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/fs-extra/package.json +++ /dev/null @@ -1,101 +0,0 @@ -{ - "_from": "fs-extra@^9.0.1", - "_id": "fs-extra@9.0.1", - "_inBundle": false, - "_integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==", - "_location": "/cordova-android/fs-extra", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "fs-extra@^9.0.1", - "name": "fs-extra", - "escapedName": "fs-extra", - "rawSpec": "^9.0.1", - "saveSpec": null, - "fetchSpec": "^9.0.1" - }, - "_requiredBy": [ - "/cordova-android" - ], - "_resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz", - "_shasum": "910da0062437ba4c39fedd863f1675ccfefcb9fc", - "_spec": "fs-extra@^9.0.1", - "_where": "/home/brian/whatsapp/node_modules/cordova-android", - "author": { - "name": "JP Richardson", - "email": "jprichardson@gmail.com" - }, - "bugs": { - "url": "https://github.com/jprichardson/node-fs-extra/issues" - }, - "bundleDependencies": false, - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^1.0.0" - }, - "deprecated": false, - "description": "fs-extra contains methods that aren't included in the vanilla Node.js fs package. Such as recursive mkdir, copy, and remove.", - "devDependencies": { - "coveralls": "^3.0.0", - "klaw": "^2.1.1", - "klaw-sync": "^3.0.2", - "minimist": "^1.1.1", - "mocha": "^5.0.5", - "nyc": "^15.0.0", - "proxyquire": "^2.0.1", - "read-dir-files": "^0.1.1", - "standard": "^14.1.0" - }, - "engines": { - "node": ">=10" - }, - "files": [ - "lib/", - "!lib/**/__tests__/" - ], - "homepage": "https://github.com/jprichardson/node-fs-extra", - "keywords": [ - "fs", - "file", - "file system", - "copy", - "directory", - "extra", - "mkdirp", - "mkdir", - "mkdirs", - "recursive", - "json", - "read", - "write", - "extra", - "delete", - "remove", - "touch", - "create", - "text", - "output", - "move", - "promise" - ], - "license": "MIT", - "main": "./lib/index.js", - "name": "fs-extra", - "repository": { - "type": "git", - "url": "git+https://github.com/jprichardson/node-fs-extra.git" - }, - "scripts": { - "coverage": "nyc -r lcovonly npm run unit", - "coveralls": "coveralls < coverage/lcov.info", - "full-ci": "npm run lint && npm run coverage", - "lint": "standard", - "test": "npm run lint && npm run unit", - "test-find": "find ./lib/**/__tests__ -name *.test.js | xargs mocha", - "unit": "node test.js" - }, - "version": "9.0.1" -} diff --git a/ionic/platforms/android/cordova/node_modules/get-stream/buffer-stream.js b/ionic/platforms/android/cordova/node_modules/get-stream/buffer-stream.js deleted file mode 100644 index 2dd75745dfe4037573a2e3a3a8ebccefff8aa3cd..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/get-stream/buffer-stream.js +++ /dev/null @@ -1,52 +0,0 @@ -'use strict'; -const {PassThrough: PassThroughStream} = require('stream'); - -module.exports = options => { - options = {...options}; - - const {array} = options; - let {encoding} = options; - const isBuffer = encoding === 'buffer'; - let objectMode = false; - - if (array) { - objectMode = !(encoding || isBuffer); - } else { - encoding = encoding || 'utf8'; - } - - if (isBuffer) { - encoding = null; - } - - const stream = new PassThroughStream({objectMode}); - - if (encoding) { - stream.setEncoding(encoding); - } - - let length = 0; - const chunks = []; - - stream.on('data', chunk => { - chunks.push(chunk); - - if (objectMode) { - length = chunks.length; - } else { - length += chunk.length; - } - }); - - stream.getBufferedValue = () => { - if (array) { - return chunks; - } - - return isBuffer ? Buffer.concat(chunks, length) : chunks.join(''); - }; - - stream.getBufferedLength = () => length; - - return stream; -}; diff --git a/ionic/platforms/android/cordova/node_modules/get-stream/index.d.ts b/ionic/platforms/android/cordova/node_modules/get-stream/index.d.ts deleted file mode 100644 index 7b98134d9ff8a554f19377178ffb83756de3e746..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/get-stream/index.d.ts +++ /dev/null @@ -1,108 +0,0 @@ -/// <reference types="node"/> -import {Stream} from 'stream'; - -declare class MaxBufferErrorClass extends Error { - readonly name: 'MaxBufferError'; - constructor(); -} - -declare namespace getStream { - interface Options { - /** - Maximum length of the returned string. If it exceeds this value before the stream ends, the promise will be rejected with a `MaxBufferError` error. - - @default Infinity - */ - readonly maxBuffer?: number; - } - - interface OptionsWithEncoding<EncodingType = BufferEncoding> extends Options { - /** - [Encoding](https://nodejs.org/api/buffer.html#buffer_buffer) of the incoming stream. - - @default 'utf8' - */ - readonly encoding?: EncodingType; - } - - type MaxBufferError = MaxBufferErrorClass; -} - -declare const getStream: { - /** - Get the `stream` as a string. - - @returns A promise that resolves when the end event fires on the stream, indicating that there is no more data to be read. The stream is switched to flowing mode. - - @example - ``` - import * as fs from 'fs'; - import getStream = require('get-stream'); - - (async () => { - const stream = fs.createReadStream('unicorn.txt'); - - console.log(await getStream(stream)); - // ,,))))))));, - // __)))))))))))))), - // \|/ -\(((((''''((((((((. - // -*-==//////(('' . `)))))), - // /|\ ))| o ;-. '((((( ,(, - // ( `| / ) ;))))' ,_))^;(~ - // | | | ,))((((_ _____------~~~-. %,;(;(>';'~ - // o_); ; )))(((` ~---~ `:: \ %%~~)(v;(`('~ - // ; ''''```` `: `:::|\,__,%% );`'; ~ - // | _ ) / `:|`----' `-' - // ______/\/~ | / / - // /~;;.____/;;' / ___--,-( `;;;/ - // / // _;______;'------~~~~~ /;;/\ / - // // | | / ; \;;,\ - // (<_ | ; /',/-----' _> - // \_| ||_ //~;~~~~~~~~~ - // `\_| (,~~ - // \~\ - // ~~ - })(); - ``` - */ - (stream: Stream, options?: getStream.OptionsWithEncoding): Promise<string>; - - /** - Get the `stream` as a buffer. - - It honors the `maxBuffer` option as above, but it refers to byte length rather than string length. - */ - buffer( - stream: Stream, - options?: getStream.OptionsWithEncoding - ): Promise<Buffer>; - - /** - Get the `stream` as an array of values. - - It honors both the `maxBuffer` and `encoding` options. The behavior changes slightly based on the encoding chosen: - - - When `encoding` is unset, it assumes an [object mode stream](https://nodesource.com/blog/understanding-object-streams/) and collects values emitted from `stream` unmodified. In this case `maxBuffer` refers to the number of items in the array (not the sum of their sizes). - - When `encoding` is set to `buffer`, it collects an array of buffers. `maxBuffer` refers to the summed byte lengths of every buffer in the array. - - When `encoding` is set to anything else, it collects an array of strings. `maxBuffer` refers to the summed character lengths of every string in the array. - */ - array<StreamObjectModeType>( - stream: Stream, - options?: getStream.Options - ): Promise<StreamObjectModeType[]>; - array( - stream: Stream, - options: getStream.OptionsWithEncoding<'buffer'> - ): Promise<Buffer[]>; - array( - stream: Stream, - options: getStream.OptionsWithEncoding<BufferEncoding> - ): Promise<string[]>; - - MaxBufferError: typeof MaxBufferErrorClass; - - // TODO: Remove this for the next major release - default: typeof getStream; -}; - -export = getStream; diff --git a/ionic/platforms/android/cordova/node_modules/get-stream/index.js b/ionic/platforms/android/cordova/node_modules/get-stream/index.js deleted file mode 100644 index 71f399193401d5dde23a81b39da64a6e0c064bb2..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/get-stream/index.js +++ /dev/null @@ -1,60 +0,0 @@ -'use strict'; -const {constants: BufferConstants} = require('buffer'); -const pump = require('pump'); -const bufferStream = require('./buffer-stream'); - -class MaxBufferError extends Error { - constructor() { - super('maxBuffer exceeded'); - this.name = 'MaxBufferError'; - } -} - -async function getStream(inputStream, options) { - if (!inputStream) { - return Promise.reject(new Error('Expected a stream')); - } - - options = { - maxBuffer: Infinity, - ...options - }; - - const {maxBuffer} = options; - - let stream; - await new Promise((resolve, reject) => { - const rejectPromise = error => { - // Don't retrieve an oversized buffer. - if (error && stream.getBufferedLength() <= BufferConstants.MAX_LENGTH) { - error.bufferedData = stream.getBufferedValue(); - } - - reject(error); - }; - - stream = pump(inputStream, bufferStream(options), error => { - if (error) { - rejectPromise(error); - return; - } - - resolve(); - }); - - stream.on('data', () => { - if (stream.getBufferedLength() > maxBuffer) { - rejectPromise(new MaxBufferError()); - } - }); - }); - - return stream.getBufferedValue(); -} - -module.exports = getStream; -// TODO: Remove this for the next major release -module.exports.default = getStream; -module.exports.buffer = (stream, options) => getStream(stream, {...options, encoding: 'buffer'}); -module.exports.array = (stream, options) => getStream(stream, {...options, array: true}); -module.exports.MaxBufferError = MaxBufferError; diff --git a/ionic/platforms/android/cordova/node_modules/get-stream/license b/ionic/platforms/android/cordova/node_modules/get-stream/license deleted file mode 100644 index fa7ceba3eb4a9657a9db7f3ffca4e4e97a9019de..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/get-stream/license +++ /dev/null @@ -1,9 +0,0 @@ -MIT License - -Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (https://sindresorhus.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/ionic/platforms/android/cordova/node_modules/get-stream/package.json b/ionic/platforms/android/cordova/node_modules/get-stream/package.json deleted file mode 100644 index 2b049e9a9cf31d6e0e569750610615b2910ba994..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/get-stream/package.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "_from": "get-stream@^5.0.0", - "_id": "get-stream@5.2.0", - "_inBundle": false, - "_integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "_location": "/cordova-android/get-stream", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "get-stream@^5.0.0", - "name": "get-stream", - "escapedName": "get-stream", - "rawSpec": "^5.0.0", - "saveSpec": null, - "fetchSpec": "^5.0.0" - }, - "_requiredBy": [ - "/cordova-android/execa" - ], - "_resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "_shasum": "4966a1795ee5ace65e706c4b7beb71257d6e22d3", - "_spec": "get-stream@^5.0.0", - "_where": "/home/brian/whatsapp/node_modules/cordova-android/node_modules/execa", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "https://sindresorhus.com" - }, - "bugs": { - "url": "https://github.com/sindresorhus/get-stream/issues" - }, - "bundleDependencies": false, - "dependencies": { - "pump": "^3.0.0" - }, - "deprecated": false, - "description": "Get a stream as a string, buffer, or array", - "devDependencies": { - "@types/node": "^12.0.7", - "ava": "^2.0.0", - "into-stream": "^5.0.0", - "tsd": "^0.7.2", - "xo": "^0.24.0" - }, - "engines": { - "node": ">=8" - }, - "files": [ - "index.js", - "index.d.ts", - "buffer-stream.js" - ], - "funding": "https://github.com/sponsors/sindresorhus", - "homepage": "https://github.com/sindresorhus/get-stream#readme", - "keywords": [ - "get", - "stream", - "promise", - "concat", - "string", - "text", - "buffer", - "read", - "data", - "consume", - "readable", - "readablestream", - "array", - "object" - ], - "license": "MIT", - "name": "get-stream", - "repository": { - "type": "git", - "url": "git+https://github.com/sindresorhus/get-stream.git" - }, - "scripts": { - "test": "xo && ava && tsd" - }, - "version": "5.2.0" -} diff --git a/ionic/platforms/android/cordova/node_modules/get-stream/readme.md b/ionic/platforms/android/cordova/node_modules/get-stream/readme.md deleted file mode 100644 index 7d7565dc6a9a5327e8bf3093555ce6a9ec6f7fbc..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/get-stream/readme.md +++ /dev/null @@ -1,124 +0,0 @@ -# get-stream [](https://travis-ci.com/github/sindresorhus/get-stream) - -> Get a stream as a string, buffer, or array - -## Install - -``` -$ npm install get-stream -``` - -## Usage - -```js -const fs = require('fs'); -const getStream = require('get-stream'); - -(async () => { - const stream = fs.createReadStream('unicorn.txt'); - - console.log(await getStream(stream)); - /* - ,,))))))));, - __)))))))))))))), - \|/ -\(((((''''((((((((. - -*-==//////(('' . `)))))), - /|\ ))| o ;-. '((((( ,(, - ( `| / ) ;))))' ,_))^;(~ - | | | ,))((((_ _____------~~~-. %,;(;(>';'~ - o_); ; )))(((` ~---~ `:: \ %%~~)(v;(`('~ - ; ''''```` `: `:::|\,__,%% );`'; ~ - | _ ) / `:|`----' `-' - ______/\/~ | / / - /~;;.____/;;' / ___--,-( `;;;/ - / // _;______;'------~~~~~ /;;/\ / - // | | / ; \;;,\ - (<_ | ; /',/-----' _> - \_| ||_ //~;~~~~~~~~~ - `\_| (,~~ - \~\ - ~~ - */ -})(); -``` - -## API - -The methods returns a promise that resolves when the `end` event fires on the stream, indicating that there is no more data to be read. The stream is switched to flowing mode. - -### getStream(stream, options?) - -Get the `stream` as a string. - -#### options - -Type: `object` - -##### encoding - -Type: `string`\ -Default: `'utf8'` - -[Encoding](https://nodejs.org/api/buffer.html#buffer_buffer) of the incoming stream. - -##### maxBuffer - -Type: `number`\ -Default: `Infinity` - -Maximum length of the returned string. If it exceeds this value before the stream ends, the promise will be rejected with a `getStream.MaxBufferError` error. - -### getStream.buffer(stream, options?) - -Get the `stream` as a buffer. - -It honors the `maxBuffer` option as above, but it refers to byte length rather than string length. - -### getStream.array(stream, options?) - -Get the `stream` as an array of values. - -It honors both the `maxBuffer` and `encoding` options. The behavior changes slightly based on the encoding chosen: - -- When `encoding` is unset, it assumes an [object mode stream](https://nodesource.com/blog/understanding-object-streams/) and collects values emitted from `stream` unmodified. In this case `maxBuffer` refers to the number of items in the array (not the sum of their sizes). - -- When `encoding` is set to `buffer`, it collects an array of buffers. `maxBuffer` refers to the summed byte lengths of every buffer in the array. - -- When `encoding` is set to anything else, it collects an array of strings. `maxBuffer` refers to the summed character lengths of every string in the array. - -## Errors - -If the input stream emits an `error` event, the promise will be rejected with the error. The buffered data will be attached to the `bufferedData` property of the error. - -```js -(async () => { - try { - await getStream(streamThatErrorsAtTheEnd('unicorn')); - } catch (error) { - console.log(error.bufferedData); - //=> 'unicorn' - } -})() -``` - -## FAQ - -### How is this different from [`concat-stream`](https://github.com/maxogden/concat-stream)? - -This module accepts a stream instead of being one and returns a promise instead of using a callback. The API is simpler and it only supports returning a string, buffer, or array. It doesn't have a fragile type inference. You explicitly choose what you want. And it doesn't depend on the huge `readable-stream` package. - -## Related - -- [get-stdin](https://github.com/sindresorhus/get-stdin) - Get stdin as a string or buffer - ---- - -<div align="center"> - <b> - <a href="https://tidelift.com/subscription/pkg/npm-get-stream?utm_source=npm-get-stream&utm_medium=referral&utm_campaign=readme">Get professional support for this package with a Tidelift subscription</a> - </b> - <br> - <sub> - Tidelift helps make open source sustainable for maintainers while giving companies<br>assurances about security, maintenance, and licensing for their dependencies. - </sub> -</div> diff --git a/ionic/platforms/android/cordova/node_modules/is-stream/index.d.ts b/ionic/platforms/android/cordova/node_modules/is-stream/index.d.ts deleted file mode 100644 index b61027f14884c9068e4146679d10b0736237ecfd..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/is-stream/index.d.ts +++ /dev/null @@ -1,80 +0,0 @@ -/// <reference types="node"/> -import * as stream from 'stream'; - -declare const isStream: { - /** - @returns Whether `stream` is a [`Stream`](https://nodejs.org/api/stream.html#stream_stream). - - @example - ``` - import * as fs from 'fs'; - import isStream = require('is-stream'); - - isStream(fs.createReadStream('unicorn.png')); - //=> true - - isStream({}); - //=> false - ``` - */ - (stream: unknown): stream is stream.Stream; - - /** - @returns Whether `stream` is a [`stream.Writable`](https://nodejs.org/api/stream.html#stream_class_stream_writable). - - @example - ``` - import * as fs from 'fs'; - import isStream = require('is-stream'); - - isStream.writable(fs.createWriteStrem('unicorn.txt')); - //=> true - ``` - */ - writable(stream: unknown): stream is stream.Writable; - - /** - @returns Whether `stream` is a [`stream.Readable`](https://nodejs.org/api/stream.html#stream_class_stream_readable). - - @example - ``` - import * as fs from 'fs'; - import isStream = require('is-stream'); - - isStream.readable(fs.createReadStream('unicorn.png')); - //=> true - ``` - */ - readable(stream: unknown): stream is stream.Readable; - - /** - @returns Whether `stream` is a [`stream.Duplex`](https://nodejs.org/api/stream.html#stream_class_stream_duplex). - - @example - ``` - import {Duplex} from 'stream'; - import isStream = require('is-stream'); - - isStream.duplex(new Duplex()); - //=> true - ``` - */ - duplex(stream: unknown): stream is stream.Duplex; - - /** - @returns Whether `stream` is a [`stream.Transform`](https://nodejs.org/api/stream.html#stream_class_stream_transform). - - @example - ``` - import * as fs from 'fs'; - import Stringify = require('streaming-json-stringify'); - import isStream = require('is-stream'); - - isStream.transform(Stringify()); - //=> true - ``` - */ - transform(input: unknown): input is stream.Transform; -}; - -export = isStream; diff --git a/ionic/platforms/android/cordova/node_modules/is-stream/index.js b/ionic/platforms/android/cordova/node_modules/is-stream/index.js deleted file mode 100644 index a8d571f1cc7670f9015f6df1b294518a90fb6de5..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/is-stream/index.js +++ /dev/null @@ -1,29 +0,0 @@ -'use strict'; - -const isStream = stream => - stream !== null && - typeof stream === 'object' && - typeof stream.pipe === 'function'; - -isStream.writable = stream => - isStream(stream) && - stream.writable !== false && - typeof stream._write === 'function' && - typeof stream._writableState === 'object'; - -isStream.readable = stream => - isStream(stream) && - stream.readable !== false && - typeof stream._read === 'function' && - typeof stream._readableState === 'object'; - -isStream.duplex = stream => - isStream.writable(stream) && - isStream.readable(stream); - -isStream.transform = stream => - isStream.duplex(stream) && - typeof stream._transform === 'function' && - typeof stream._transformState === 'object'; - -module.exports = isStream; diff --git a/ionic/platforms/android/cordova/node_modules/is-stream/license b/ionic/platforms/android/cordova/node_modules/is-stream/license deleted file mode 100644 index e7af2f77107d73046421ef56c4684cbfdd3c1e89..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/is-stream/license +++ /dev/null @@ -1,9 +0,0 @@ -MIT License - -Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/ionic/platforms/android/cordova/node_modules/is-stream/package.json b/ionic/platforms/android/cordova/node_modules/is-stream/package.json deleted file mode 100644 index 6e29c8469e9544352b8c2c74c46b1af4de314028..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/is-stream/package.json +++ /dev/null @@ -1,73 +0,0 @@ -{ - "_from": "is-stream@^2.0.0", - "_id": "is-stream@2.0.0", - "_inBundle": false, - "_integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", - "_location": "/cordova-android/is-stream", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "is-stream@^2.0.0", - "name": "is-stream", - "escapedName": "is-stream", - "rawSpec": "^2.0.0", - "saveSpec": null, - "fetchSpec": "^2.0.0" - }, - "_requiredBy": [ - "/cordova-android/execa" - ], - "_resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "_shasum": "bde9c32680d6fae04129d6ac9d921ce7815f78e3", - "_spec": "is-stream@^2.0.0", - "_where": "/home/brian/whatsapp/node_modules/cordova-android/node_modules/execa", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "bugs": { - "url": "https://github.com/sindresorhus/is-stream/issues" - }, - "bundleDependencies": false, - "deprecated": false, - "description": "Check if something is a Node.js stream", - "devDependencies": { - "@types/node": "^11.13.6", - "ava": "^1.4.1", - "tempy": "^0.3.0", - "tsd": "^0.7.2", - "xo": "^0.24.0" - }, - "engines": { - "node": ">=8" - }, - "files": [ - "index.js", - "index.d.ts" - ], - "homepage": "https://github.com/sindresorhus/is-stream#readme", - "keywords": [ - "stream", - "type", - "streams", - "writable", - "readable", - "duplex", - "transform", - "check", - "detect", - "is" - ], - "license": "MIT", - "name": "is-stream", - "repository": { - "type": "git", - "url": "git+https://github.com/sindresorhus/is-stream.git" - }, - "scripts": { - "test": "xo && ava && tsd" - }, - "version": "2.0.0" -} diff --git a/ionic/platforms/android/cordova/node_modules/is-stream/readme.md b/ionic/platforms/android/cordova/node_modules/is-stream/readme.md deleted file mode 100644 index fdeadb9f24322595a59dece4132fcabd5605652a..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/is-stream/readme.md +++ /dev/null @@ -1,57 +0,0 @@ -# is-stream [](https://travis-ci.org/sindresorhus/is-stream) - -> Check if something is a [Node.js stream](https://nodejs.org/api/stream.html) - - -## Install - -``` -$ npm install is-stream -``` - - -## Usage - -```js -const fs = require('fs'); -const isStream = require('is-stream'); - -isStream(fs.createReadStream('unicorn.png')); -//=> true - -isStream({}); -//=> false -``` - - -## API - -### isStream(stream) - -Returns a `boolean` for whether it's a [`Stream`](https://nodejs.org/api/stream.html#stream_stream). - -#### isStream.writable(stream) - -Returns a `boolean` for whether it's a [`stream.Writable`](https://nodejs.org/api/stream.html#stream_class_stream_writable). - -#### isStream.readable(stream) - -Returns a `boolean` for whether it's a [`stream.Readable`](https://nodejs.org/api/stream.html#stream_class_stream_readable). - -#### isStream.duplex(stream) - -Returns a `boolean` for whether it's a [`stream.Duplex`](https://nodejs.org/api/stream.html#stream_class_stream_duplex). - -#### isStream.transform(stream) - -Returns a `boolean` for whether it's a [`stream.Transform`](https://nodejs.org/api/stream.html#stream_class_stream_transform). - - -## Related - -- [is-file-stream](https://github.com/jamestalmage/is-file-stream) - Detect if a stream is a file stream - - -## License - -MIT © [Sindre Sorhus](https://sindresorhus.com) diff --git a/ionic/platforms/android/cordova/node_modules/jsonfile/CHANGELOG.md b/ionic/platforms/android/cordova/node_modules/jsonfile/CHANGELOG.md deleted file mode 100644 index d772e4385aa99638cb3d554eac645def592dfdfb..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/jsonfile/CHANGELOG.md +++ /dev/null @@ -1,171 +0,0 @@ -6.1.0 / 2020-10-31 ------------------- - -- Add `finalEOL` option to disable writing final EOL ([#115](https://github.com/jprichardson/node-jsonfile/issues/115), [#137](https://github.com/jprichardson/node-jsonfile/pull/137)) -- Update dependency ([#138](https://github.com/jprichardson/node-jsonfile/pull/138)) - -6.0.1 / 2020-03-07 ------------------- - -- Update dependency ([#130](https://github.com/jprichardson/node-jsonfile/pull/130)) -- Fix code style ([#129](https://github.com/jprichardson/node-jsonfile/pull/129)) - -6.0.0 / 2020-02-24 ------------------- - -- **BREAKING:** Drop support for Node 6 & 8 ([#128](https://github.com/jprichardson/node-jsonfile/pull/128)) -- **BREAKING:** Do not allow passing `null` as options to `readFile()` or `writeFile()` ([#128](https://github.com/jprichardson/node-jsonfile/pull/128)) -- Refactor internals ([#128](https://github.com/jprichardson/node-jsonfile/pull/128)) - -5.0.0 / 2018-09-08 ------------------- - -- **BREAKING:** Drop Node 4 support -- **BREAKING:** If no callback is passed to an asynchronous method, a promise is now returned ([#109](https://github.com/jprichardson/node-jsonfile/pull/109)) -- Cleanup docs - -4.0.0 / 2017-07-12 ------------------- - -- **BREAKING:** Remove global `spaces` option. -- **BREAKING:** Drop support for Node 0.10, 0.12, and io.js. -- Remove undocumented `passParsingErrors` option. -- Added `EOL` override option to `writeFile` when using `spaces`. [#89] - -3.0.1 / 2017-07-05 ------------------- - -- Fixed bug in `writeFile` when there was a serialization error & no callback was passed. In previous versions, an empty file would be written; now no file is written. - -3.0.0 / 2017-04-25 ------------------- - -- Changed behavior of `throws` option for `readFileSync`; now does not throw filesystem errors when `throws` is `false` - -2.4.0 / 2016-09-15 ------------------- -### Changed -- added optional support for `graceful-fs` [#62] - -2.3.1 / 2016-05-13 ------------------- -- fix to support BOM. [#45][#45] - -2.3.0 / 2016-04-16 ------------------- -- add `throws` to `readFile()`. See [#39][#39] -- add support for any arbitrary `fs` module. Useful with [mock-fs](https://www.npmjs.com/package/mock-fs) - -2.2.3 / 2015-10-14 ------------------- -- include file name in parse error. See: https://github.com/jprichardson/node-jsonfile/pull/34 - -2.2.2 / 2015-09-16 ------------------- -- split out tests into separate files -- fixed `throws` when set to `true` in `readFileSync()`. See: https://github.com/jprichardson/node-jsonfile/pull/33 - -2.2.1 / 2015-06-25 ------------------- -- fixed regression when passing in string as encoding for options in `writeFile()` and `writeFileSync()`. See: https://github.com/jprichardson/node-jsonfile/issues/28 - -2.2.0 / 2015-06-25 ------------------- -- added `options.spaces` to `writeFile()` and `writeFileSync()` - -2.1.2 / 2015-06-22 ------------------- -- fixed if passed `readFileSync(file, 'utf8')`. See: https://github.com/jprichardson/node-jsonfile/issues/25 - -2.1.1 / 2015-06-19 ------------------- -- fixed regressions if `null` is passed for options. See: https://github.com/jprichardson/node-jsonfile/issues/24 - -2.1.0 / 2015-06-19 ------------------- -- cleanup: JavaScript Standard Style, rename files, dropped terst for assert -- methods now support JSON revivers/replacers - -2.0.1 / 2015-05-24 ------------------- -- update license attribute https://github.com/jprichardson/node-jsonfile/pull/21 - -2.0.0 / 2014-07-28 ------------------- -* added `\n` to end of file on write. [#14](https://github.com/jprichardson/node-jsonfile/pull/14) -* added `options.throws` to `readFileSync()` -* dropped support for Node v0.8 - -1.2.0 / 2014-06-29 ------------------- -* removed semicolons -* bugfix: passed `options` to `fs.readFile` and `fs.readFileSync`. This technically changes behavior, but -changes it according to docs. [#12][#12] - -1.1.1 / 2013-11-11 ------------------- -* fixed catching of callback bug (ffissore / #5) - -1.1.0 / 2013-10-11 ------------------- -* added `options` param to methods, (seanodell / #4) - -1.0.1 / 2013-09-05 ------------------- -* removed `homepage` field from package.json to remove NPM warning - -1.0.0 / 2013-06-28 ------------------- -* added `.npmignore`, #1 -* changed spacing default from `4` to `2` to follow Node conventions - -0.0.1 / 2012-09-10 ------------------- -* Initial release. - -[#89]: https://github.com/jprichardson/node-jsonfile/pull/89 -[#45]: https://github.com/jprichardson/node-jsonfile/issues/45 "Reading of UTF8-encoded (w/ BOM) files fails" -[#44]: https://github.com/jprichardson/node-jsonfile/issues/44 "Extra characters in written file" -[#43]: https://github.com/jprichardson/node-jsonfile/issues/43 "Prettyfy json when written to file" -[#42]: https://github.com/jprichardson/node-jsonfile/pull/42 "Moved fs.readFileSync within the try/catch" -[#41]: https://github.com/jprichardson/node-jsonfile/issues/41 "Linux: Hidden file not working" -[#40]: https://github.com/jprichardson/node-jsonfile/issues/40 "autocreate folder doesn't work from Path-value" -[#39]: https://github.com/jprichardson/node-jsonfile/pull/39 "Add `throws` option for readFile (async)" -[#38]: https://github.com/jprichardson/node-jsonfile/pull/38 "Update README.md writeFile[Sync] signature" -[#37]: https://github.com/jprichardson/node-jsonfile/pull/37 "support append file" -[#36]: https://github.com/jprichardson/node-jsonfile/pull/36 "Add typescript definition file." -[#35]: https://github.com/jprichardson/node-jsonfile/pull/35 "Add typescript definition file." -[#34]: https://github.com/jprichardson/node-jsonfile/pull/34 "readFile JSON parse error includes filename" -[#33]: https://github.com/jprichardson/node-jsonfile/pull/33 "fix throw->throws typo in readFileSync()" -[#32]: https://github.com/jprichardson/node-jsonfile/issues/32 "readFile & readFileSync can possible have strip-comments as an option?" -[#31]: https://github.com/jprichardson/node-jsonfile/pull/31 "[Modify] Support string include is unicode escape string" -[#30]: https://github.com/jprichardson/node-jsonfile/issues/30 "How to use Jsonfile package in Meteor.js App?" -[#29]: https://github.com/jprichardson/node-jsonfile/issues/29 "writefile callback if no error?" -[#28]: https://github.com/jprichardson/node-jsonfile/issues/28 "writeFile options argument broken " -[#27]: https://github.com/jprichardson/node-jsonfile/pull/27 "Use svg instead of png to get better image quality" -[#26]: https://github.com/jprichardson/node-jsonfile/issues/26 "Breaking change to fs-extra" -[#25]: https://github.com/jprichardson/node-jsonfile/issues/25 "support string encoding param for read methods" -[#24]: https://github.com/jprichardson/node-jsonfile/issues/24 "readFile: Passing in null options with a callback throws an error" -[#23]: https://github.com/jprichardson/node-jsonfile/pull/23 "Add appendFile and appendFileSync" -[#22]: https://github.com/jprichardson/node-jsonfile/issues/22 "Default value for spaces in readme.md is outdated" -[#21]: https://github.com/jprichardson/node-jsonfile/pull/21 "Update license attribute" -[#20]: https://github.com/jprichardson/node-jsonfile/issues/20 "Add simple caching functionallity" -[#19]: https://github.com/jprichardson/node-jsonfile/pull/19 "Add appendFileSync method" -[#18]: https://github.com/jprichardson/node-jsonfile/issues/18 "Add updateFile and updateFileSync methods" -[#17]: https://github.com/jprichardson/node-jsonfile/issues/17 "seem read & write sync has sequentially problem" -[#16]: https://github.com/jprichardson/node-jsonfile/pull/16 "export spaces defaulted to null" -[#15]: https://github.com/jprichardson/node-jsonfile/issues/15 "`jsonfile.spaces` should default to `null`" -[#14]: https://github.com/jprichardson/node-jsonfile/pull/14 "Add EOL at EOF" -[#13]: https://github.com/jprichardson/node-jsonfile/issues/13 "Add a final newline" -[#12]: https://github.com/jprichardson/node-jsonfile/issues/12 "readFile doesn't accept options" -[#11]: https://github.com/jprichardson/node-jsonfile/pull/11 "Added try,catch to readFileSync" -[#10]: https://github.com/jprichardson/node-jsonfile/issues/10 "No output or error from writeFile" -[#9]: https://github.com/jprichardson/node-jsonfile/pull/9 "Change 'js' to 'jf' in example." -[#8]: https://github.com/jprichardson/node-jsonfile/pull/8 "Updated forgotten module.exports to me." -[#7]: https://github.com/jprichardson/node-jsonfile/pull/7 "Add file name in error message" -[#6]: https://github.com/jprichardson/node-jsonfile/pull/6 "Use graceful-fs when possible" -[#5]: https://github.com/jprichardson/node-jsonfile/pull/5 "Jsonfile doesn't behave nicely when used inside a test suite." -[#4]: https://github.com/jprichardson/node-jsonfile/pull/4 "Added options parameter to writeFile and writeFileSync" -[#3]: https://github.com/jprichardson/node-jsonfile/issues/3 "test2" -[#2]: https://github.com/jprichardson/node-jsonfile/issues/2 "homepage field must be a string url. Deleted." -[#1]: https://github.com/jprichardson/node-jsonfile/pull/1 "adding an `.npmignore` file" diff --git a/ionic/platforms/android/cordova/node_modules/jsonfile/LICENSE b/ionic/platforms/android/cordova/node_modules/jsonfile/LICENSE deleted file mode 100644 index cb7e807b9bdb33c128dba99d56eeedd7b8cba452..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/jsonfile/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -(The MIT License) - -Copyright (c) 2012-2015, JP Richardson <jprichardson@gmail.com> - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files -(the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, - merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE -WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS -OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/ionic/platforms/android/cordova/node_modules/jsonfile/README.md b/ionic/platforms/android/cordova/node_modules/jsonfile/README.md deleted file mode 100644 index 910cde007d388d876a5cc8be642afe1d96482e59..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/jsonfile/README.md +++ /dev/null @@ -1,230 +0,0 @@ -Node.js - jsonfile -================ - -Easily read/write JSON files in Node.js. _Note: this module cannot be used in the browser._ - -[](https://www.npmjs.org/package/jsonfile) -[](http://travis-ci.org/jprichardson/node-jsonfile) -[](https://ci.appveyor.com/project/jprichardson/node-jsonfile/branch/master) - -<a href="https://github.com/feross/standard"><img src="https://cdn.rawgit.com/feross/standard/master/sticker.svg" alt="Standard JavaScript" width="100"></a> - -Why? ----- - -Writing `JSON.stringify()` and then `fs.writeFile()` and `JSON.parse()` with `fs.readFile()` enclosed in `try/catch` blocks became annoying. - - - -Installation ------------- - - npm install --save jsonfile - - - -API ---- - -* [`readFile(filename, [options], callback)`](#readfilefilename-options-callback) -* [`readFileSync(filename, [options])`](#readfilesyncfilename-options) -* [`writeFile(filename, obj, [options], callback)`](#writefilefilename-obj-options-callback) -* [`writeFileSync(filename, obj, [options])`](#writefilesyncfilename-obj-options) - ----- - -### readFile(filename, [options], callback) - -`options` (`object`, default `undefined`): Pass in any [`fs.readFile`](https://nodejs.org/api/fs.html#fs_fs_readfile_path_options_callback) options or set `reviver` for a [JSON reviver](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse). - - `throws` (`boolean`, default: `true`). If `JSON.parse` throws an error, pass this error to the callback. - If `false`, returns `null` for the object. - - -```js -const jsonfile = require('jsonfile') -const file = '/tmp/data.json' -jsonfile.readFile(file, function (err, obj) { - if (err) console.error(err) - console.dir(obj) -}) -``` - -You can also use this method with promises. The `readFile` method will return a promise if you do not pass a callback function. - -```js -const jsonfile = require('jsonfile') -const file = '/tmp/data.json' -jsonfile.readFile(file) - .then(obj => console.dir(obj)) - .catch(error => console.error(error)) -``` - ----- - -### readFileSync(filename, [options]) - -`options` (`object`, default `undefined`): Pass in any [`fs.readFileSync`](https://nodejs.org/api/fs.html#fs_fs_readfilesync_path_options) options or set `reviver` for a [JSON reviver](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse). -- `throws` (`boolean`, default: `true`). If an error is encountered reading or parsing the file, throw the error. If `false`, returns `null` for the object. - -```js -const jsonfile = require('jsonfile') -const file = '/tmp/data.json' - -console.dir(jsonfile.readFileSync(file)) -``` - ----- - -### writeFile(filename, obj, [options], callback) - -`options`: Pass in any [`fs.writeFile`](https://nodejs.org/api/fs.html#fs_fs_writefile_file_data_options_callback) options or set `replacer` for a [JSON replacer](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify). Can also pass in `spaces`, or override `EOL` string or set `finalEOL` flag as `false` to not save the file with `EOL` at the end. - - -```js -const jsonfile = require('jsonfile') - -const file = '/tmp/data.json' -const obj = { name: 'JP' } - -jsonfile.writeFile(file, obj, function (err) { - if (err) console.error(err) -}) -``` -Or use with promises as follows: - -```js -const jsonfile = require('jsonfile') - -const file = '/tmp/data.json' -const obj = { name: 'JP' } - -jsonfile.writeFile(file, obj) - .then(res => { - console.log('Write complete') - }) - .catch(error => console.error(error)) -``` - - -**formatting with spaces:** - -```js -const jsonfile = require('jsonfile') - -const file = '/tmp/data.json' -const obj = { name: 'JP' } - -jsonfile.writeFile(file, obj, { spaces: 2 }, function (err) { - if (err) console.error(err) -}) -``` - -**overriding EOL:** - -```js -const jsonfile = require('jsonfile') - -const file = '/tmp/data.json' -const obj = { name: 'JP' } - -jsonfile.writeFile(file, obj, { spaces: 2, EOL: '\r\n' }, function (err) { - if (err) console.error(err) -}) -``` - - -**disabling the EOL at the end of file:** - -```js -const jsonfile = require('jsonfile') - -const file = '/tmp/data.json' -const obj = { name: 'JP' } - -jsonfile.writeFile(file, obj, { spaces: 2, finalEOL: false }, function (err) { - if (err) console.log(err) -}) -``` - -**appending to an existing JSON file:** - -You can use `fs.writeFile` option `{ flag: 'a' }` to achieve this. - -```js -const jsonfile = require('jsonfile') - -const file = '/tmp/mayAlreadyExistedData.json' -const obj = { name: 'JP' } - -jsonfile.writeFile(file, obj, { flag: 'a' }, function (err) { - if (err) console.error(err) -}) -``` - ----- - -### writeFileSync(filename, obj, [options]) - -`options`: Pass in any [`fs.writeFileSync`](https://nodejs.org/api/fs.html#fs_fs_writefilesync_file_data_options) options or set `replacer` for a [JSON replacer](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify). Can also pass in `spaces`, or override `EOL` string or set `finalEOL` flag as `false` to not save the file with `EOL` at the end. - -```js -const jsonfile = require('jsonfile') - -const file = '/tmp/data.json' -const obj = { name: 'JP' } - -jsonfile.writeFileSync(file, obj) -``` - -**formatting with spaces:** - -```js -const jsonfile = require('jsonfile') - -const file = '/tmp/data.json' -const obj = { name: 'JP' } - -jsonfile.writeFileSync(file, obj, { spaces: 2 }) -``` - -**overriding EOL:** - -```js -const jsonfile = require('jsonfile') - -const file = '/tmp/data.json' -const obj = { name: 'JP' } - -jsonfile.writeFileSync(file, obj, { spaces: 2, EOL: '\r\n' }) -``` - -**disabling the EOL at the end of file:** - -```js -const jsonfile = require('jsonfile') - -const file = '/tmp/data.json' -const obj = { name: 'JP' } - -jsonfile.writeFileSync(file, obj, { spaces: 2, finalEOL: false }) -``` - -**appending to an existing JSON file:** - -You can use `fs.writeFileSync` option `{ flag: 'a' }` to achieve this. - -```js -const jsonfile = require('jsonfile') - -const file = '/tmp/mayAlreadyExistedData.json' -const obj = { name: 'JP' } - -jsonfile.writeFileSync(file, obj, { flag: 'a' }) -``` - -License -------- - -(MIT License) - -Copyright 2012-2016, JP Richardson <jprichardson@gmail.com> diff --git a/ionic/platforms/android/cordova/node_modules/jsonfile/index.js b/ionic/platforms/android/cordova/node_modules/jsonfile/index.js deleted file mode 100644 index 0582868f1b7f0d43d3dd0fa9ba5a391c2c365e2c..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/jsonfile/index.js +++ /dev/null @@ -1,88 +0,0 @@ -let _fs -try { - _fs = require('graceful-fs') -} catch (_) { - _fs = require('fs') -} -const universalify = require('universalify') -const { stringify, stripBom } = require('./utils') - -async function _readFile (file, options = {}) { - if (typeof options === 'string') { - options = { encoding: options } - } - - const fs = options.fs || _fs - - const shouldThrow = 'throws' in options ? options.throws : true - - let data = await universalify.fromCallback(fs.readFile)(file, options) - - data = stripBom(data) - - let obj - try { - obj = JSON.parse(data, options ? options.reviver : null) - } catch (err) { - if (shouldThrow) { - err.message = `${file}: ${err.message}` - throw err - } else { - return null - } - } - - return obj -} - -const readFile = universalify.fromPromise(_readFile) - -function readFileSync (file, options = {}) { - if (typeof options === 'string') { - options = { encoding: options } - } - - const fs = options.fs || _fs - - const shouldThrow = 'throws' in options ? options.throws : true - - try { - let content = fs.readFileSync(file, options) - content = stripBom(content) - return JSON.parse(content, options.reviver) - } catch (err) { - if (shouldThrow) { - err.message = `${file}: ${err.message}` - throw err - } else { - return null - } - } -} - -async function _writeFile (file, obj, options = {}) { - const fs = options.fs || _fs - - const str = stringify(obj, options) - - await universalify.fromCallback(fs.writeFile)(file, str, options) -} - -const writeFile = universalify.fromPromise(_writeFile) - -function writeFileSync (file, obj, options = {}) { - const fs = options.fs || _fs - - const str = stringify(obj, options) - // not sure if fs.writeFileSync returns anything, but just in case - return fs.writeFileSync(file, str, options) -} - -const jsonfile = { - readFile, - readFileSync, - writeFile, - writeFileSync -} - -module.exports = jsonfile diff --git a/ionic/platforms/android/cordova/node_modules/jsonfile/node_modules/universalify/LICENSE b/ionic/platforms/android/cordova/node_modules/jsonfile/node_modules/universalify/LICENSE deleted file mode 100644 index 514e84e648df769fb1725ce4b9baf01bd67aae24..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/jsonfile/node_modules/universalify/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -(The MIT License) - -Copyright (c) 2017, Ryan Zimmerman <opensrc@ryanzim.com> - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the 'Software'), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/ionic/platforms/android/cordova/node_modules/jsonfile/node_modules/universalify/README.md b/ionic/platforms/android/cordova/node_modules/jsonfile/node_modules/universalify/README.md deleted file mode 100644 index aa1247475c23a0f724b3693e18922e608f8e751e..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/jsonfile/node_modules/universalify/README.md +++ /dev/null @@ -1,76 +0,0 @@ -# universalify - -[](https://travis-ci.org/RyanZim/universalify) - - - - -Make a callback- or promise-based function support both promises and callbacks. - -Uses the native promise implementation. - -## Installation - -```bash -npm install universalify -``` - -## API - -### `universalify.fromCallback(fn)` - -Takes a callback-based function to universalify, and returns the universalified function. - -Function must take a callback as the last parameter that will be called with the signature `(error, result)`. `universalify` does not support calling the callback with three or more arguments, and does not ensure that the callback is only called once. - -```js -function callbackFn (n, cb) { - setTimeout(() => cb(null, n), 15) -} - -const fn = universalify.fromCallback(callbackFn) - -// Works with Promises: -fn('Hello World!') -.then(result => console.log(result)) // -> Hello World! -.catch(error => console.error(error)) - -// Works with Callbacks: -fn('Hi!', (error, result) => { - if (error) return console.error(error) - console.log(result) - // -> Hi! -}) -``` - -### `universalify.fromPromise(fn)` - -Takes a promise-based function to universalify, and returns the universalified function. - -Function must return a valid JS promise. `universalify` does not ensure that a valid promise is returned. - -```js -function promiseFn (n) { - return new Promise(resolve => { - setTimeout(() => resolve(n), 15) - }) -} - -const fn = universalify.fromPromise(promiseFn) - -// Works with Promises: -fn('Hello World!') -.then(result => console.log(result)) // -> Hello World! -.catch(error => console.error(error)) - -// Works with Callbacks: -fn('Hi!', (error, result) => { - if (error) return console.error(error) - console.log(result) - // -> Hi! -}) -``` - -## License - -MIT diff --git a/ionic/platforms/android/cordova/node_modules/jsonfile/node_modules/universalify/index.js b/ionic/platforms/android/cordova/node_modules/jsonfile/node_modules/universalify/index.js deleted file mode 100644 index ba6c6626bf5265d6eaa7ccda218452fd2520f1ef..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/jsonfile/node_modules/universalify/index.js +++ /dev/null @@ -1,24 +0,0 @@ -'use strict' - -exports.fromCallback = function (fn) { - return Object.defineProperty(function (...args) { - if (typeof args[args.length - 1] === 'function') fn.apply(this, args) - else { - return new Promise((resolve, reject) => { - fn.call( - this, - ...args, - (err, res) => (err != null) ? reject(err) : resolve(res) - ) - }) - } - }, 'name', { value: fn.name }) -} - -exports.fromPromise = function (fn) { - return Object.defineProperty(function (...args) { - const cb = args[args.length - 1] - if (typeof cb !== 'function') return fn.apply(this, args) - else fn.apply(this, args.slice(0, -1)).then(r => cb(null, r), cb) - }, 'name', { value: fn.name }) -} diff --git a/ionic/platforms/android/cordova/node_modules/jsonfile/node_modules/universalify/package.json b/ionic/platforms/android/cordova/node_modules/jsonfile/node_modules/universalify/package.json deleted file mode 100644 index 641f64d89f02bb24a54f5445d71e8c6e7fda0734..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/jsonfile/node_modules/universalify/package.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "_from": "universalify@^2.0.0", - "_id": "universalify@2.0.0", - "_inBundle": false, - "_integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "_location": "/cordova-android/jsonfile/universalify", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "universalify@^2.0.0", - "name": "universalify", - "escapedName": "universalify", - "rawSpec": "^2.0.0", - "saveSpec": null, - "fetchSpec": "^2.0.0" - }, - "_requiredBy": [ - "/cordova-android/jsonfile" - ], - "_resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "_shasum": "75a4984efedc4b08975c5aeb73f530d02df25717", - "_spec": "universalify@^2.0.0", - "_where": "/home/brian/whatsapp/node_modules/cordova-android/node_modules/jsonfile", - "author": { - "name": "Ryan Zimmerman", - "email": "opensrc@ryanzim.com" - }, - "bugs": { - "url": "https://github.com/RyanZim/universalify/issues" - }, - "bundleDependencies": false, - "deprecated": false, - "description": "Make a callback- or promise-based function support both promises and callbacks.", - "devDependencies": { - "colortape": "^0.1.2", - "coveralls": "^3.0.1", - "nyc": "^15.0.0", - "standard": "^14.3.1", - "tape": "^5.0.1" - }, - "engines": { - "node": ">= 10.0.0" - }, - "files": [ - "index.js" - ], - "homepage": "https://github.com/RyanZim/universalify#readme", - "keywords": [ - "callback", - "native", - "promise" - ], - "license": "MIT", - "name": "universalify", - "repository": { - "type": "git", - "url": "git+https://github.com/RyanZim/universalify.git" - }, - "scripts": { - "test": "standard && nyc tape test/*.js | colortape" - }, - "version": "2.0.0" -} diff --git a/ionic/platforms/android/cordova/node_modules/jsonfile/package.json b/ionic/platforms/android/cordova/node_modules/jsonfile/package.json deleted file mode 100644 index 062cfa91319318455c6d06c2db830cde2d5e51e7..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/jsonfile/package.json +++ /dev/null @@ -1,73 +0,0 @@ -{ - "_from": "jsonfile@^6.0.1", - "_id": "jsonfile@6.1.0", - "_inBundle": false, - "_integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "_location": "/cordova-android/jsonfile", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "jsonfile@^6.0.1", - "name": "jsonfile", - "escapedName": "jsonfile", - "rawSpec": "^6.0.1", - "saveSpec": null, - "fetchSpec": "^6.0.1" - }, - "_requiredBy": [ - "/cordova-android/fs-extra" - ], - "_resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "_shasum": "bc55b2634793c679ec6403094eb13698a6ec0aae", - "_spec": "jsonfile@^6.0.1", - "_where": "/home/brian/whatsapp/node_modules/cordova-android/node_modules/fs-extra", - "author": { - "name": "JP Richardson", - "email": "jprichardson@gmail.com" - }, - "bugs": { - "url": "https://github.com/jprichardson/node-jsonfile/issues" - }, - "bundleDependencies": false, - "dependencies": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - }, - "deprecated": false, - "description": "Easily read/write JSON files.", - "devDependencies": { - "mocha": "^8.2.0", - "rimraf": "^2.4.0", - "standard": "^16.0.1" - }, - "files": [ - "index.js", - "utils.js" - ], - "homepage": "https://github.com/jprichardson/node-jsonfile#readme", - "keywords": [ - "read", - "write", - "file", - "json", - "fs", - "fs-extra" - ], - "license": "MIT", - "main": "index.js", - "name": "jsonfile", - "optionalDependencies": { - "graceful-fs": "^4.1.6" - }, - "repository": { - "type": "git", - "url": "git+ssh://git@github.com/jprichardson/node-jsonfile.git" - }, - "scripts": { - "lint": "standard", - "test": "npm run lint && npm run unit", - "unit": "mocha" - }, - "version": "6.1.0" -} diff --git a/ionic/platforms/android/cordova/node_modules/jsonfile/utils.js b/ionic/platforms/android/cordova/node_modules/jsonfile/utils.js deleted file mode 100644 index b5ff48e5e087d5239640257b45f81f30059fc47b..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/jsonfile/utils.js +++ /dev/null @@ -1,14 +0,0 @@ -function stringify (obj, { EOL = '\n', finalEOL = true, replacer = null, spaces } = {}) { - const EOF = finalEOL ? EOL : '' - const str = JSON.stringify(obj, replacer, spaces) - - return str.replace(/\n/g, EOL) + EOF -} - -function stripBom (content) { - // we do this because JSON.parse would convert it to a utf8 string if encoding wasn't specified - if (Buffer.isBuffer(content)) content = content.toString('utf8') - return content.replace(/^\uFEFF/, '') -} - -module.exports = { stringify, stripBom } diff --git a/ionic/platforms/android/cordova/node_modules/npm-run-path/index.d.ts b/ionic/platforms/android/cordova/node_modules/npm-run-path/index.d.ts deleted file mode 100644 index af10d41a678506cb2ed27d872f309ada935d3d05..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/npm-run-path/index.d.ts +++ /dev/null @@ -1,89 +0,0 @@ -declare namespace npmRunPath { - interface RunPathOptions { - /** - Working directory. - - @default process.cwd() - */ - readonly cwd?: string; - - /** - PATH to be appended. Default: [`PATH`](https://github.com/sindresorhus/path-key). - - Set it to an empty string to exclude the default PATH. - */ - readonly path?: string; - - /** - Path to the Node.js executable to use in child processes if that is different from the current one. Its directory is pushed to the front of PATH. - - This can be either an absolute path or a path relative to the `cwd` option. - - @default process.execPath - */ - readonly execPath?: string; - } - - interface ProcessEnv { - [key: string]: string | undefined; - } - - interface EnvOptions { - /** - Working directory. - - @default process.cwd() - */ - readonly cwd?: string; - - /** - Accepts an object of environment variables, like `process.env`, and modifies the PATH using the correct [PATH key](https://github.com/sindresorhus/path-key). Use this if you're modifying the PATH for use in the `child_process` options. - */ - readonly env?: ProcessEnv; - - /** - Path to the current Node.js executable. Its directory is pushed to the front of PATH. - - This can be either an absolute path or a path relative to the `cwd` option. - - @default process.execPath - */ - readonly execPath?: string; - } -} - -declare const npmRunPath: { - /** - Get your [PATH](https://en.wikipedia.org/wiki/PATH_(variable)) prepended with locally installed binaries. - - @returns The augmented path string. - - @example - ``` - import * as childProcess from 'child_process'; - import npmRunPath = require('npm-run-path'); - - console.log(process.env.PATH); - //=> '/usr/local/bin' - - console.log(npmRunPath()); - //=> '/Users/sindresorhus/dev/foo/node_modules/.bin:/Users/sindresorhus/dev/node_modules/.bin:/Users/sindresorhus/node_modules/.bin:/Users/node_modules/.bin:/node_modules/.bin:/usr/local/bin' - - // `foo` is a locally installed binary - childProcess.execFileSync('foo', { - env: npmRunPath.env() - }); - ``` - */ - (options?: npmRunPath.RunPathOptions): string; - - /** - @returns The augmented [`process.env`](https://nodejs.org/api/process.html#process_process_env) object. - */ - env(options?: npmRunPath.EnvOptions): npmRunPath.ProcessEnv; - - // TODO: Remove this for the next major release - default: typeof npmRunPath; -}; - -export = npmRunPath; diff --git a/ionic/platforms/android/cordova/node_modules/npm-run-path/index.js b/ionic/platforms/android/cordova/node_modules/npm-run-path/index.js deleted file mode 100644 index 8c94abc986600ac700d6dbfdb0ea0b9687176177..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/npm-run-path/index.js +++ /dev/null @@ -1,47 +0,0 @@ -'use strict'; -const path = require('path'); -const pathKey = require('path-key'); - -const npmRunPath = options => { - options = { - cwd: process.cwd(), - path: process.env[pathKey()], - execPath: process.execPath, - ...options - }; - - let previous; - let cwdPath = path.resolve(options.cwd); - const result = []; - - while (previous !== cwdPath) { - result.push(path.join(cwdPath, 'node_modules/.bin')); - previous = cwdPath; - cwdPath = path.resolve(cwdPath, '..'); - } - - // Ensure the running `node` binary is used - const execPathDir = path.resolve(options.cwd, options.execPath, '..'); - result.push(execPathDir); - - return result.concat(options.path).join(path.delimiter); -}; - -module.exports = npmRunPath; -// TODO: Remove this for the next major release -module.exports.default = npmRunPath; - -module.exports.env = options => { - options = { - env: process.env, - ...options - }; - - const env = {...options.env}; - const path = pathKey({env}); - - options.path = env[path]; - env[path] = module.exports(options); - - return env; -}; diff --git a/ionic/platforms/android/cordova/node_modules/npm-run-path/license b/ionic/platforms/android/cordova/node_modules/npm-run-path/license deleted file mode 100644 index e7af2f77107d73046421ef56c4684cbfdd3c1e89..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/npm-run-path/license +++ /dev/null @@ -1,9 +0,0 @@ -MIT License - -Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/ionic/platforms/android/cordova/node_modules/npm-run-path/package.json b/ionic/platforms/android/cordova/node_modules/npm-run-path/package.json deleted file mode 100644 index 8f6f3b4a64f77772381e3700504d41631c973fb7..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/npm-run-path/package.json +++ /dev/null @@ -1,76 +0,0 @@ -{ - "_from": "npm-run-path@^4.0.0", - "_id": "npm-run-path@4.0.1", - "_inBundle": false, - "_integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "_location": "/cordova-android/npm-run-path", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "npm-run-path@^4.0.0", - "name": "npm-run-path", - "escapedName": "npm-run-path", - "rawSpec": "^4.0.0", - "saveSpec": null, - "fetchSpec": "^4.0.0" - }, - "_requiredBy": [ - "/cordova-android/execa" - ], - "_resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "_shasum": "b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea", - "_spec": "npm-run-path@^4.0.0", - "_where": "/home/brian/whatsapp/node_modules/cordova-android/node_modules/execa", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "bugs": { - "url": "https://github.com/sindresorhus/npm-run-path/issues" - }, - "bundleDependencies": false, - "dependencies": { - "path-key": "^3.0.0" - }, - "deprecated": false, - "description": "Get your PATH prepended with locally installed binaries", - "devDependencies": { - "ava": "^1.4.1", - "tsd": "^0.7.2", - "xo": "^0.24.0" - }, - "engines": { - "node": ">=8" - }, - "files": [ - "index.js", - "index.d.ts" - ], - "homepage": "https://github.com/sindresorhus/npm-run-path#readme", - "keywords": [ - "npm", - "run", - "path", - "package", - "bin", - "binary", - "binaries", - "script", - "cli", - "command-line", - "execute", - "executable" - ], - "license": "MIT", - "name": "npm-run-path", - "repository": { - "type": "git", - "url": "git+https://github.com/sindresorhus/npm-run-path.git" - }, - "scripts": { - "test": "xo && ava && tsd" - }, - "version": "4.0.1" -} diff --git a/ionic/platforms/android/cordova/node_modules/npm-run-path/readme.md b/ionic/platforms/android/cordova/node_modules/npm-run-path/readme.md deleted file mode 100644 index 557fbeb6c4cf2855e39261fdcf4cf3398a592854..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/npm-run-path/readme.md +++ /dev/null @@ -1,115 +0,0 @@ -# npm-run-path [](https://travis-ci.org/sindresorhus/npm-run-path) - -> Get your [PATH](https://en.wikipedia.org/wiki/PATH_(variable)) prepended with locally installed binaries - -In [npm run scripts](https://docs.npmjs.com/cli/run-script) you can execute locally installed binaries by name. This enables the same outside npm. - - -## Install - -``` -$ npm install npm-run-path -``` - - -## Usage - -```js -const childProcess = require('child_process'); -const npmRunPath = require('npm-run-path'); - -console.log(process.env.PATH); -//=> '/usr/local/bin' - -console.log(npmRunPath()); -//=> '/Users/sindresorhus/dev/foo/node_modules/.bin:/Users/sindresorhus/dev/node_modules/.bin:/Users/sindresorhus/node_modules/.bin:/Users/node_modules/.bin:/node_modules/.bin:/usr/local/bin' - -// `foo` is a locally installed binary -childProcess.execFileSync('foo', { - env: npmRunPath.env() -}); -``` - - -## API - -### npmRunPath(options?) - -Returns the augmented path string. - -#### options - -Type: `object` - -##### cwd - -Type: `string`<br> -Default: `process.cwd()` - -Working directory. - -##### path - -Type: `string`<br> -Default: [`PATH`](https://github.com/sindresorhus/path-key) - -PATH to be appended.<br> -Set it to an empty string to exclude the default PATH. - -##### execPath - -Type: `string`<br> -Default: `process.execPath` - -Path to the current Node.js executable. Its directory is pushed to the front of PATH. - -This can be either an absolute path or a path relative to the [`cwd` option](#cwd). - -### npmRunPath.env(options?) - -Returns the augmented [`process.env`](https://nodejs.org/api/process.html#process_process_env) object. - -#### options - -Type: `object` - -##### cwd - -Type: `string`<br> -Default: `process.cwd()` - -Working directory. - -##### env - -Type: `Object` - -Accepts an object of environment variables, like `process.env`, and modifies the PATH using the correct [PATH key](https://github.com/sindresorhus/path-key). Use this if you're modifying the PATH for use in the `child_process` options. - -##### execPath - -Type: `string`<br> -Default: `process.execPath` - -Path to the Node.js executable to use in child processes if that is different from the current one. Its directory is pushed to the front of PATH. - -This can be either an absolute path or a path relative to the [`cwd` option](#cwd). - - -## Related - -- [npm-run-path-cli](https://github.com/sindresorhus/npm-run-path-cli) - CLI for this module -- [execa](https://github.com/sindresorhus/execa) - Execute a locally installed binary - - ---- - -<div align="center"> - <b> - <a href="https://tidelift.com/subscription/pkg/npm-npm-run-path?utm_source=npm-npm-run-path&utm_medium=referral&utm_campaign=readme">Get professional support for this package with a Tidelift subscription</a> - </b> - <br> - <sub> - Tidelift helps make open source sustainable for maintainers while giving companies<br>assurances about security, maintenance, and licensing for their dependencies. - </sub> -</div> diff --git a/ionic/platforms/android/cordova/node_modules/path-key/index.d.ts b/ionic/platforms/android/cordova/node_modules/path-key/index.d.ts deleted file mode 100644 index 7c575d197502223b05301b1b338aaa28cfd54217..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/path-key/index.d.ts +++ /dev/null @@ -1,40 +0,0 @@ -/// <reference types="node" /> - -declare namespace pathKey { - interface Options { - /** - Use a custom environment variables object. Default: [`process.env`](https://nodejs.org/api/process.html#process_process_env). - */ - readonly env?: {[key: string]: string | undefined}; - - /** - Get the PATH key for a specific platform. Default: [`process.platform`](https://nodejs.org/api/process.html#process_process_platform). - */ - readonly platform?: NodeJS.Platform; - } -} - -declare const pathKey: { - /** - Get the [PATH](https://en.wikipedia.org/wiki/PATH_(variable)) environment variable key cross-platform. - - @example - ``` - import pathKey = require('path-key'); - - const key = pathKey(); - //=> 'PATH' - - const PATH = process.env[key]; - //=> '/usr/local/bin:/usr/bin:/bin' - ``` - */ - (options?: pathKey.Options): string; - - // TODO: Remove this for the next major release, refactor the whole definition to: - // declare function pathKey(options?: pathKey.Options): string; - // export = pathKey; - default: typeof pathKey; -}; - -export = pathKey; diff --git a/ionic/platforms/android/cordova/node_modules/path-key/index.js b/ionic/platforms/android/cordova/node_modules/path-key/index.js deleted file mode 100644 index 0cf6415d60938fa78ba51b277fa2a57fa0bdc587..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/path-key/index.js +++ /dev/null @@ -1,16 +0,0 @@ -'use strict'; - -const pathKey = (options = {}) => { - const environment = options.env || process.env; - const platform = options.platform || process.platform; - - if (platform !== 'win32') { - return 'PATH'; - } - - return Object.keys(environment).reverse().find(key => key.toUpperCase() === 'PATH') || 'Path'; -}; - -module.exports = pathKey; -// TODO: Remove this for the next major release -module.exports.default = pathKey; diff --git a/ionic/platforms/android/cordova/node_modules/path-key/license b/ionic/platforms/android/cordova/node_modules/path-key/license deleted file mode 100644 index e7af2f77107d73046421ef56c4684cbfdd3c1e89..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/path-key/license +++ /dev/null @@ -1,9 +0,0 @@ -MIT License - -Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/ionic/platforms/android/cordova/node_modules/path-key/package.json b/ionic/platforms/android/cordova/node_modules/path-key/package.json deleted file mode 100644 index c653ec543d46b62e0e6e9a914f369f2977234adc..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/path-key/package.json +++ /dev/null @@ -1,72 +0,0 @@ -{ - "_from": "path-key@^3.1.0", - "_id": "path-key@3.1.1", - "_inBundle": false, - "_integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "_location": "/cordova-android/path-key", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "path-key@^3.1.0", - "name": "path-key", - "escapedName": "path-key", - "rawSpec": "^3.1.0", - "saveSpec": null, - "fetchSpec": "^3.1.0" - }, - "_requiredBy": [ - "/cordova-android/cross-spawn", - "/cordova-android/npm-run-path" - ], - "_resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "_shasum": "581f6ade658cbba65a0d3380de7753295054f375", - "_spec": "path-key@^3.1.0", - "_where": "/home/brian/whatsapp/node_modules/cordova-android/node_modules/cross-spawn", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "bugs": { - "url": "https://github.com/sindresorhus/path-key/issues" - }, - "bundleDependencies": false, - "deprecated": false, - "description": "Get the PATH environment variable key cross-platform", - "devDependencies": { - "@types/node": "^11.13.0", - "ava": "^1.4.1", - "tsd": "^0.7.2", - "xo": "^0.24.0" - }, - "engines": { - "node": ">=8" - }, - "files": [ - "index.js", - "index.d.ts" - ], - "homepage": "https://github.com/sindresorhus/path-key#readme", - "keywords": [ - "path", - "key", - "environment", - "env", - "variable", - "var", - "get", - "cross-platform", - "windows" - ], - "license": "MIT", - "name": "path-key", - "repository": { - "type": "git", - "url": "git+https://github.com/sindresorhus/path-key.git" - }, - "scripts": { - "test": "xo && ava && tsd" - }, - "version": "3.1.1" -} diff --git a/ionic/platforms/android/cordova/node_modules/path-key/readme.md b/ionic/platforms/android/cordova/node_modules/path-key/readme.md deleted file mode 100644 index a9052d7a696bcde942b3820b9706942ddd6a8fd5..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/path-key/readme.md +++ /dev/null @@ -1,61 +0,0 @@ -# path-key [](https://travis-ci.org/sindresorhus/path-key) - -> Get the [PATH](https://en.wikipedia.org/wiki/PATH_(variable)) environment variable key cross-platform - -It's usually `PATH`, but on Windows it can be any casing like `Path`... - - -## Install - -``` -$ npm install path-key -``` - - -## Usage - -```js -const pathKey = require('path-key'); - -const key = pathKey(); -//=> 'PATH' - -const PATH = process.env[key]; -//=> '/usr/local/bin:/usr/bin:/bin' -``` - - -## API - -### pathKey(options?) - -#### options - -Type: `object` - -##### env - -Type: `object`<br> -Default: [`process.env`](https://nodejs.org/api/process.html#process_process_env) - -Use a custom environment variables object. - -#### platform - -Type: `string`<br> -Default: [`process.platform`](https://nodejs.org/api/process.html#process_process_platform) - -Get the PATH key for a specific platform. - - ---- - -<div align="center"> - <b> - <a href="https://tidelift.com/subscription/pkg/npm-path-key?utm_source=npm-path-key&utm_medium=referral&utm_campaign=readme">Get professional support for this package with a Tidelift subscription</a> - </b> - <br> - <sub> - Tidelift helps make open source sustainable for maintainers while giving companies<br>assurances about security, maintenance, and licensing for their dependencies. - </sub> -</div> diff --git a/ionic/platforms/android/cordova/node_modules/shebang-command/index.js b/ionic/platforms/android/cordova/node_modules/shebang-command/index.js deleted file mode 100644 index f35db30851c777b62df472eae9fb8e1e658b2095..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/shebang-command/index.js +++ /dev/null @@ -1,19 +0,0 @@ -'use strict'; -const shebangRegex = require('shebang-regex'); - -module.exports = (string = '') => { - const match = string.match(shebangRegex); - - if (!match) { - return null; - } - - const [path, argument] = match[0].replace(/#! ?/, '').split(' '); - const binary = path.split('/').pop(); - - if (binary === 'env') { - return argument; - } - - return argument ? `${binary} ${argument}` : binary; -}; diff --git a/ionic/platforms/android/cordova/node_modules/shebang-command/license b/ionic/platforms/android/cordova/node_modules/shebang-command/license deleted file mode 100644 index db6bc32cc7c44e86102035b2fb75ba8d05123f3f..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/shebang-command/license +++ /dev/null @@ -1,9 +0,0 @@ -MIT License - -Copyright (c) Kevin Mårtensson <kevinmartensson@gmail.com> (github.com/kevva) - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/ionic/platforms/android/cordova/node_modules/shebang-command/package.json b/ionic/platforms/android/cordova/node_modules/shebang-command/package.json deleted file mode 100644 index 40c0343ba3370c12e375a4b78606b099255cb8a4..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/shebang-command/package.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "_from": "shebang-command@^2.0.0", - "_id": "shebang-command@2.0.0", - "_inBundle": false, - "_integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "_location": "/cordova-android/shebang-command", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "shebang-command@^2.0.0", - "name": "shebang-command", - "escapedName": "shebang-command", - "rawSpec": "^2.0.0", - "saveSpec": null, - "fetchSpec": "^2.0.0" - }, - "_requiredBy": [ - "/cordova-android/cross-spawn" - ], - "_resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "_shasum": "ccd0af4f8835fbdc265b82461aaf0c36663f34ea", - "_spec": "shebang-command@^2.0.0", - "_where": "/home/brian/whatsapp/node_modules/cordova-android/node_modules/cross-spawn", - "author": { - "name": "Kevin Mårtensson", - "email": "kevinmartensson@gmail.com", - "url": "github.com/kevva" - }, - "bugs": { - "url": "https://github.com/kevva/shebang-command/issues" - }, - "bundleDependencies": false, - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "deprecated": false, - "description": "Get the command from a shebang", - "devDependencies": { - "ava": "^2.3.0", - "xo": "^0.24.0" - }, - "engines": { - "node": ">=8" - }, - "files": [ - "index.js" - ], - "homepage": "https://github.com/kevva/shebang-command#readme", - "keywords": [ - "cmd", - "command", - "parse", - "shebang" - ], - "license": "MIT", - "name": "shebang-command", - "repository": { - "type": "git", - "url": "git+https://github.com/kevva/shebang-command.git" - }, - "scripts": { - "test": "xo && ava" - }, - "version": "2.0.0" -} diff --git a/ionic/platforms/android/cordova/node_modules/shebang-command/readme.md b/ionic/platforms/android/cordova/node_modules/shebang-command/readme.md deleted file mode 100644 index 84feb442d746f32b40f258c7efd7aad92cb23a15..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/shebang-command/readme.md +++ /dev/null @@ -1,34 +0,0 @@ -# shebang-command [](https://travis-ci.org/kevva/shebang-command) - -> Get the command from a shebang - - -## Install - -``` -$ npm install shebang-command -``` - - -## Usage - -```js -const shebangCommand = require('shebang-command'); - -shebangCommand('#!/usr/bin/env node'); -//=> 'node' - -shebangCommand('#!/bin/bash'); -//=> 'bash' -``` - - -## API - -### shebangCommand(string) - -#### string - -Type: `string` - -String containing a shebang. diff --git a/ionic/platforms/android/cordova/node_modules/shebang-regex/index.d.ts b/ionic/platforms/android/cordova/node_modules/shebang-regex/index.d.ts deleted file mode 100644 index 61d034b31eb8fc9baf1eda2bfbf804cb0a47ec1f..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/shebang-regex/index.d.ts +++ /dev/null @@ -1,22 +0,0 @@ -/** -Regular expression for matching a [shebang](https://en.wikipedia.org/wiki/Shebang_(Unix)) line. - -@example -``` -import shebangRegex = require('shebang-regex'); - -const string = '#!/usr/bin/env node\nconsole.log("unicorns");'; - -shebangRegex.test(string); -//=> true - -shebangRegex.exec(string)[0]; -//=> '#!/usr/bin/env node' - -shebangRegex.exec(string)[1]; -//=> '/usr/bin/env node' -``` -*/ -declare const shebangRegex: RegExp; - -export = shebangRegex; diff --git a/ionic/platforms/android/cordova/node_modules/shebang-regex/index.js b/ionic/platforms/android/cordova/node_modules/shebang-regex/index.js deleted file mode 100644 index 63fc4a0b678909ba66c6dac127a64b0836bbd67d..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/shebang-regex/index.js +++ /dev/null @@ -1,2 +0,0 @@ -'use strict'; -module.exports = /^#!(.*)/; diff --git a/ionic/platforms/android/cordova/node_modules/shebang-regex/license b/ionic/platforms/android/cordova/node_modules/shebang-regex/license deleted file mode 100644 index e7af2f77107d73046421ef56c4684cbfdd3c1e89..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/shebang-regex/license +++ /dev/null @@ -1,9 +0,0 @@ -MIT License - -Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/ionic/platforms/android/cordova/node_modules/shebang-regex/package.json b/ionic/platforms/android/cordova/node_modules/shebang-regex/package.json deleted file mode 100644 index 17b124c85e80a433e67d718ce4c4f2d68458c7c7..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/shebang-regex/package.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "_from": "shebang-regex@^3.0.0", - "_id": "shebang-regex@3.0.0", - "_inBundle": false, - "_integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "_location": "/cordova-android/shebang-regex", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "shebang-regex@^3.0.0", - "name": "shebang-regex", - "escapedName": "shebang-regex", - "rawSpec": "^3.0.0", - "saveSpec": null, - "fetchSpec": "^3.0.0" - }, - "_requiredBy": [ - "/cordova-android/shebang-command" - ], - "_resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "_shasum": "ae16f1644d873ecad843b0307b143362d4c42172", - "_spec": "shebang-regex@^3.0.0", - "_where": "/home/brian/whatsapp/node_modules/cordova-android/node_modules/shebang-command", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "bugs": { - "url": "https://github.com/sindresorhus/shebang-regex/issues" - }, - "bundleDependencies": false, - "deprecated": false, - "description": "Regular expression for matching a shebang line", - "devDependencies": { - "ava": "^1.4.1", - "tsd": "^0.7.2", - "xo": "^0.24.0" - }, - "engines": { - "node": ">=8" - }, - "files": [ - "index.js", - "index.d.ts" - ], - "homepage": "https://github.com/sindresorhus/shebang-regex#readme", - "keywords": [ - "regex", - "regexp", - "shebang", - "match", - "test", - "line" - ], - "license": "MIT", - "name": "shebang-regex", - "repository": { - "type": "git", - "url": "git+https://github.com/sindresorhus/shebang-regex.git" - }, - "scripts": { - "test": "xo && ava && tsd" - }, - "version": "3.0.0" -} diff --git a/ionic/platforms/android/cordova/node_modules/shebang-regex/readme.md b/ionic/platforms/android/cordova/node_modules/shebang-regex/readme.md deleted file mode 100644 index 5ecf863aa35ab36852cfe6be6d78ccc9be546113..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/shebang-regex/readme.md +++ /dev/null @@ -1,33 +0,0 @@ -# shebang-regex [](https://travis-ci.org/sindresorhus/shebang-regex) - -> Regular expression for matching a [shebang](https://en.wikipedia.org/wiki/Shebang_(Unix)) line - - -## Install - -``` -$ npm install shebang-regex -``` - - -## Usage - -```js -const shebangRegex = require('shebang-regex'); - -const string = '#!/usr/bin/env node\nconsole.log("unicorns");'; - -shebangRegex.test(string); -//=> true - -shebangRegex.exec(string)[0]; -//=> '#!/usr/bin/env node' - -shebangRegex.exec(string)[1]; -//=> '/usr/bin/env node' -``` - - -## License - -MIT © [Sindre Sorhus](https://sindresorhus.com) diff --git a/ionic/platforms/android/cordova/node_modules/universalify/LICENSE b/ionic/platforms/android/cordova/node_modules/universalify/LICENSE deleted file mode 100644 index 514e84e648df769fb1725ce4b9baf01bd67aae24..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/universalify/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -(The MIT License) - -Copyright (c) 2017, Ryan Zimmerman <opensrc@ryanzim.com> - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the 'Software'), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/ionic/platforms/android/cordova/node_modules/universalify/README.md b/ionic/platforms/android/cordova/node_modules/universalify/README.md deleted file mode 100644 index aa1247475c23a0f724b3693e18922e608f8e751e..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/universalify/README.md +++ /dev/null @@ -1,76 +0,0 @@ -# universalify - -[](https://travis-ci.org/RyanZim/universalify) - - - - -Make a callback- or promise-based function support both promises and callbacks. - -Uses the native promise implementation. - -## Installation - -```bash -npm install universalify -``` - -## API - -### `universalify.fromCallback(fn)` - -Takes a callback-based function to universalify, and returns the universalified function. - -Function must take a callback as the last parameter that will be called with the signature `(error, result)`. `universalify` does not support calling the callback with three or more arguments, and does not ensure that the callback is only called once. - -```js -function callbackFn (n, cb) { - setTimeout(() => cb(null, n), 15) -} - -const fn = universalify.fromCallback(callbackFn) - -// Works with Promises: -fn('Hello World!') -.then(result => console.log(result)) // -> Hello World! -.catch(error => console.error(error)) - -// Works with Callbacks: -fn('Hi!', (error, result) => { - if (error) return console.error(error) - console.log(result) - // -> Hi! -}) -``` - -### `universalify.fromPromise(fn)` - -Takes a promise-based function to universalify, and returns the universalified function. - -Function must return a valid JS promise. `universalify` does not ensure that a valid promise is returned. - -```js -function promiseFn (n) { - return new Promise(resolve => { - setTimeout(() => resolve(n), 15) - }) -} - -const fn = universalify.fromPromise(promiseFn) - -// Works with Promises: -fn('Hello World!') -.then(result => console.log(result)) // -> Hello World! -.catch(error => console.error(error)) - -// Works with Callbacks: -fn('Hi!', (error, result) => { - if (error) return console.error(error) - console.log(result) - // -> Hi! -}) -``` - -## License - -MIT diff --git a/ionic/platforms/android/cordova/node_modules/universalify/index.js b/ionic/platforms/android/cordova/node_modules/universalify/index.js deleted file mode 100644 index e7b5712ea2b368dbd07a5cf407f405837e022c76..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/universalify/index.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict' - -exports.fromCallback = function (fn) { - return Object.defineProperty(function (...args) { - if (typeof args[args.length - 1] === 'function') fn.apply(this, args) - else { - return new Promise((resolve, reject) => { - fn.apply( - this, - args.concat([(err, res) => err ? reject(err) : resolve(res)]) - ) - }) - } - }, 'name', { value: fn.name }) -} - -exports.fromPromise = function (fn) { - return Object.defineProperty(function (...args) { - const cb = args[args.length - 1] - if (typeof cb !== 'function') return fn.apply(this, args) - else fn.apply(this, args.slice(0, -1)).then(r => cb(null, r), cb) - }, 'name', { value: fn.name }) -} diff --git a/ionic/platforms/android/cordova/node_modules/universalify/package.json b/ionic/platforms/android/cordova/node_modules/universalify/package.json deleted file mode 100644 index 154710f8dfe42e4c843f0b474e26d714cde5f837..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/universalify/package.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "_from": "universalify@^1.0.0", - "_id": "universalify@1.0.0", - "_inBundle": false, - "_integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", - "_location": "/cordova-android/universalify", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "universalify@^1.0.0", - "name": "universalify", - "escapedName": "universalify", - "rawSpec": "^1.0.0", - "saveSpec": null, - "fetchSpec": "^1.0.0" - }, - "_requiredBy": [ - "/cordova-android/fs-extra" - ], - "_resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", - "_shasum": "b61a1da173e8435b2fe3c67d29b9adf8594bd16d", - "_spec": "universalify@^1.0.0", - "_where": "/home/brian/whatsapp/node_modules/cordova-android/node_modules/fs-extra", - "author": { - "name": "Ryan Zimmerman", - "email": "opensrc@ryanzim.com" - }, - "bugs": { - "url": "https://github.com/RyanZim/universalify/issues" - }, - "bundleDependencies": false, - "deprecated": false, - "description": "Make a callback- or promise-based function support both promises and callbacks.", - "devDependencies": { - "colortape": "^0.1.2", - "coveralls": "^3.0.1", - "nyc": "^15.0.0", - "standard": "^14.3.1", - "tape": "^4.6.3" - }, - "engines": { - "node": ">= 10.0.0" - }, - "files": [ - "index.js" - ], - "homepage": "https://github.com/RyanZim/universalify#readme", - "keywords": [ - "callback", - "native", - "promise" - ], - "license": "MIT", - "name": "universalify", - "repository": { - "type": "git", - "url": "git+https://github.com/RyanZim/universalify.git" - }, - "scripts": { - "test": "standard && nyc tape test/*.js | colortape" - }, - "version": "1.0.0" -} diff --git a/ionic/platforms/android/cordova/node_modules/which/CHANGELOG.md b/ionic/platforms/android/cordova/node_modules/which/CHANGELOG.md deleted file mode 100644 index 7fb1f2033c8dcf5d7ac89ee1f77ef0be979cfb26..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/which/CHANGELOG.md +++ /dev/null @@ -1,166 +0,0 @@ -# Changes - - -## 2.0.2 - -* Rename bin to `node-which` - -## 2.0.1 - -* generate changelog and publish on version bump -* enforce 100% test coverage -* Promise interface - -## 2.0.0 - -* Parallel tests, modern JavaScript, and drop support for node < 8 - -## 1.3.1 - -* update deps -* update travis - -## v1.3.0 - -* Add nothrow option to which.sync -* update tap - -## v1.2.14 - -* appveyor: drop node 5 and 0.x -* travis-ci: add node 6, drop 0.x - -## v1.2.13 - -* test: Pass missing option to pass on windows -* update tap -* update isexe to 2.0.0 -* neveragain.tech pledge request - -## v1.2.12 - -* Removed unused require - -## v1.2.11 - -* Prevent changelog script from being included in package - -## v1.2.10 - -* Use env.PATH only, not env.Path - -## v1.2.9 - -* fix for paths starting with ../ -* Remove unused `is-absolute` module - -## v1.2.8 - -* bullet items in changelog that contain (but don't start with) # - -## v1.2.7 - -* strip 'update changelog' changelog entries out of changelog - -## v1.2.6 - -* make the changelog bulleted - -## v1.2.5 - -* make a changelog, and keep it up to date -* don't include tests in package -* Properly handle relative-path executables -* appveyor -* Attach error code to Not Found error -* Make tests pass on Windows - -## v1.2.4 - -* Fix typo - -## v1.2.3 - -* update isexe, fix regression in pathExt handling - -## v1.2.2 - -* update deps, use isexe module, test windows - -## v1.2.1 - -* Sometimes windows PATH entries are quoted -* Fixed a bug in the check for group and user mode bits. This bug was introduced during refactoring for supporting strict mode. -* doc cli - -## v1.2.0 - -* Add support for opt.all and -as cli flags -* test the bin -* update travis -* Allow checking for multiple programs in bin/which -* tap 2 - -## v1.1.2 - -* travis -* Refactored and fixed undefined error on Windows -* Support strict mode - -## v1.1.1 - -* test +g exes against secondary groups, if available -* Use windows exe semantics on cygwin & msys -* cwd should be first in path on win32, not last -* Handle lower-case 'env.Path' on Windows -* Update docs -* use single-quotes - -## v1.1.0 - -* Add tests, depend on is-absolute - -## v1.0.9 - -* which.js: root is allowed to execute files owned by anyone - -## v1.0.8 - -* don't use graceful-fs - -## v1.0.7 - -* add license to package.json - -## v1.0.6 - -* isc license - -## 1.0.5 - -* Awful typo - -## 1.0.4 - -* Test for path absoluteness properly -* win: Allow '' as a pathext if cmd has a . in it - -## 1.0.3 - -* Remove references to execPath -* Make `which.sync()` work on Windows by honoring the PATHEXT variable. -* Make `isExe()` always return true on Windows. -* MIT - -## 1.0.2 - -* Only files can be exes - -## 1.0.1 - -* Respect the PATHEXT env for win32 support -* should 0755 the bin -* binary -* guts -* package -* 1st diff --git a/ionic/platforms/android/cordova/node_modules/which/LICENSE b/ionic/platforms/android/cordova/node_modules/which/LICENSE deleted file mode 100644 index 19129e315fe593965a2fdd50ec0d1253bcbd2ece..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/which/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/ionic/platforms/android/cordova/node_modules/which/README.md b/ionic/platforms/android/cordova/node_modules/which/README.md deleted file mode 100644 index cd833509f3bcc971ef2e4ddcdfdd9a26d5accfb8..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/which/README.md +++ /dev/null @@ -1,54 +0,0 @@ -# which - -Like the unix `which` utility. - -Finds the first instance of a specified executable in the PATH -environment variable. Does not cache the results, so `hash -r` is not -needed when the PATH changes. - -## USAGE - -```javascript -var which = require('which') - -// async usage -which('node', function (er, resolvedPath) { - // er is returned if no "node" is found on the PATH - // if it is found, then the absolute path to the exec is returned -}) - -// or promise -which('node').then(resolvedPath => { ... }).catch(er => { ... not found ... }) - -// sync usage -// throws if not found -var resolved = which.sync('node') - -// if nothrow option is used, returns null if not found -resolved = which.sync('node', {nothrow: true}) - -// Pass options to override the PATH and PATHEXT environment vars. -which('node', { path: someOtherPath }, function (er, resolved) { - if (er) - throw er - console.log('found at %j', resolved) -}) -``` - -## CLI USAGE - -Same as the BSD `which(1)` binary. - -``` -usage: which [-as] program ... -``` - -## OPTIONS - -You may pass an options object as the second argument. - -- `path`: Use instead of the `PATH` environment variable. -- `pathExt`: Use instead of the `PATHEXT` environment variable. -- `all`: Return all matches, instead of just the first one. Note that - this means the function returns an array of strings instead of a - single string. diff --git a/ionic/platforms/android/cordova/node_modules/which/bin/node-which b/ionic/platforms/android/cordova/node_modules/which/bin/node-which deleted file mode 100755 index 7cee3729eebdd09e39bd891aa4d17483ea4a757a..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/which/bin/node-which +++ /dev/null @@ -1,52 +0,0 @@ -#!/usr/bin/env node -var which = require("../") -if (process.argv.length < 3) - usage() - -function usage () { - console.error('usage: which [-as] program ...') - process.exit(1) -} - -var all = false -var silent = false -var dashdash = false -var args = process.argv.slice(2).filter(function (arg) { - if (dashdash || !/^-/.test(arg)) - return true - - if (arg === '--') { - dashdash = true - return false - } - - var flags = arg.substr(1).split('') - for (var f = 0; f < flags.length; f++) { - var flag = flags[f] - switch (flag) { - case 's': - silent = true - break - case 'a': - all = true - break - default: - console.error('which: illegal option -- ' + flag) - usage() - } - } - return false -}) - -process.exit(args.reduce(function (pv, current) { - try { - var f = which.sync(current, { all: all }) - if (all) - f = f.join('\n') - if (!silent) - console.log(f) - return pv; - } catch (e) { - return 1; - } -}, 0)) diff --git a/ionic/platforms/android/cordova/node_modules/which/package.json b/ionic/platforms/android/cordova/node_modules/which/package.json deleted file mode 100644 index dead858e4c781f6906a6de7c99689913e29a41a6..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/which/package.json +++ /dev/null @@ -1,77 +0,0 @@ -{ - "_from": "which@^2.0.2", - "_id": "which@2.0.2", - "_inBundle": false, - "_integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "_location": "/cordova-android/which", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "which@^2.0.2", - "name": "which", - "escapedName": "which", - "rawSpec": "^2.0.2", - "saveSpec": null, - "fetchSpec": "^2.0.2" - }, - "_requiredBy": [ - "/cordova-android", - "/cordova-android/cross-spawn" - ], - "_resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "_shasum": "7c6a8dd0a636a0327e10b59c9286eee93f3f51b1", - "_spec": "which@^2.0.2", - "_where": "/home/brian/whatsapp/node_modules/cordova-android", - "author": { - "name": "Isaac Z. Schlueter", - "email": "i@izs.me", - "url": "http://blog.izs.me" - }, - "bin": { - "node-which": "bin/node-which" - }, - "bugs": { - "url": "https://github.com/isaacs/node-which/issues" - }, - "bundleDependencies": false, - "dependencies": { - "isexe": "^2.0.0" - }, - "deprecated": false, - "description": "Like which(1) unix command. Find the first instance of an executable in the PATH.", - "devDependencies": { - "mkdirp": "^0.5.0", - "rimraf": "^2.6.2", - "tap": "^14.6.9" - }, - "engines": { - "node": ">= 8" - }, - "files": [ - "which.js", - "bin/node-which" - ], - "homepage": "https://github.com/isaacs/node-which#readme", - "license": "ISC", - "main": "which.js", - "name": "which", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/node-which.git" - }, - "scripts": { - "changelog": "git add CHANGELOG.md", - "postchangelog": "git commit -m 'update changelog - '${npm_package_version}", - "postpublish": "git push origin --follow-tags", - "postversion": "npm publish", - "prechangelog": "bash gen-changelog.sh", - "prepublish": "npm run changelog", - "preversion": "npm test", - "test": "tap" - }, - "tap": { - "check-coverage": true - }, - "version": "2.0.2" -} diff --git a/ionic/platforms/android/cordova/node_modules/which/which.js b/ionic/platforms/android/cordova/node_modules/which/which.js deleted file mode 100644 index 82afffd21437498a02aaaa1c03be7ea9178b2c48..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/node_modules/which/which.js +++ /dev/null @@ -1,125 +0,0 @@ -const isWindows = process.platform === 'win32' || - process.env.OSTYPE === 'cygwin' || - process.env.OSTYPE === 'msys' - -const path = require('path') -const COLON = isWindows ? ';' : ':' -const isexe = require('isexe') - -const getNotFoundError = (cmd) => - Object.assign(new Error(`not found: ${cmd}`), { code: 'ENOENT' }) - -const getPathInfo = (cmd, opt) => { - const colon = opt.colon || COLON - - // If it has a slash, then we don't bother searching the pathenv. - // just check the file itself, and that's it. - const pathEnv = cmd.match(/\//) || isWindows && cmd.match(/\\/) ? [''] - : ( - [ - // windows always checks the cwd first - ...(isWindows ? [process.cwd()] : []), - ...(opt.path || process.env.PATH || - /* istanbul ignore next: very unusual */ '').split(colon), - ] - ) - const pathExtExe = isWindows - ? opt.pathExt || process.env.PATHEXT || '.EXE;.CMD;.BAT;.COM' - : '' - const pathExt = isWindows ? pathExtExe.split(colon) : [''] - - if (isWindows) { - if (cmd.indexOf('.') !== -1 && pathExt[0] !== '') - pathExt.unshift('') - } - - return { - pathEnv, - pathExt, - pathExtExe, - } -} - -const which = (cmd, opt, cb) => { - if (typeof opt === 'function') { - cb = opt - opt = {} - } - if (!opt) - opt = {} - - const { pathEnv, pathExt, pathExtExe } = getPathInfo(cmd, opt) - const found = [] - - const step = i => new Promise((resolve, reject) => { - if (i === pathEnv.length) - return opt.all && found.length ? resolve(found) - : reject(getNotFoundError(cmd)) - - const ppRaw = pathEnv[i] - const pathPart = /^".*"$/.test(ppRaw) ? ppRaw.slice(1, -1) : ppRaw - - const pCmd = path.join(pathPart, cmd) - const p = !pathPart && /^\.[\\\/]/.test(cmd) ? cmd.slice(0, 2) + pCmd - : pCmd - - resolve(subStep(p, i, 0)) - }) - - const subStep = (p, i, ii) => new Promise((resolve, reject) => { - if (ii === pathExt.length) - return resolve(step(i + 1)) - const ext = pathExt[ii] - isexe(p + ext, { pathExt: pathExtExe }, (er, is) => { - if (!er && is) { - if (opt.all) - found.push(p + ext) - else - return resolve(p + ext) - } - return resolve(subStep(p, i, ii + 1)) - }) - }) - - return cb ? step(0).then(res => cb(null, res), cb) : step(0) -} - -const whichSync = (cmd, opt) => { - opt = opt || {} - - const { pathEnv, pathExt, pathExtExe } = getPathInfo(cmd, opt) - const found = [] - - for (let i = 0; i < pathEnv.length; i ++) { - const ppRaw = pathEnv[i] - const pathPart = /^".*"$/.test(ppRaw) ? ppRaw.slice(1, -1) : ppRaw - - const pCmd = path.join(pathPart, cmd) - const p = !pathPart && /^\.[\\\/]/.test(cmd) ? cmd.slice(0, 2) + pCmd - : pCmd - - for (let j = 0; j < pathExt.length; j ++) { - const cur = p + pathExt[j] - try { - const is = isexe.sync(cur, { pathExt: pathExtExe }) - if (is) { - if (opt.all) - found.push(cur) - else - return cur - } - } catch (ex) {} - } - } - - if (opt.all && found.length) - return found - - if (opt.nothrow) - return null - - throw getNotFoundError(cmd) -} - -module.exports = which -which.sync = whichSync diff --git a/ionic/platforms/android/cordova/run b/ionic/platforms/android/cordova/run deleted file mode 100755 index 2e7efe26943bb59e6cdefdcf0f7cd7da63a3496d..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/run +++ /dev/null @@ -1,54 +0,0 @@ -#!/usr/bin/env node - -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*/ - -var Api = require('./Api'); -var nopt = require('nopt'); -var path = require('path'); - -// Support basic help commands -if (['--help', '/?', '-h', 'help', '-help', '/help'].indexOf(process.argv[2]) >= 0) { - require('./lib/run').help(); -} - -// Do some basic argument parsing -var runOpts = nopt({ - verbose: Boolean, - silent: Boolean, - debug: Boolean, - release: Boolean, - nobuild: Boolean, - buildConfig: path, - archs: String, - device: Boolean, - emulator: Boolean, - target: String -}, { d: '--verbose' }); - -// Make runOptions compatible with PlatformApi run method spec -runOpts.argv = runOpts.argv.remain; - -require('./loggingHelper').adjustLoggerLevel(runOpts); - -new Api().run(runOpts) - .catch(function (err) { - console.error(err, err.stack); - process.exit(2); - }); diff --git a/ionic/platforms/android/cordova/run.bat b/ionic/platforms/android/cordova/run.bat deleted file mode 100644 index b0bc28b26e5dccd8b66080a54a0ad3e304bfcfbb..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/run.bat +++ /dev/null @@ -1,26 +0,0 @@ -:: Licensed to the Apache Software Foundation (ASF) under one -:: or more contributor license agreements. See the NOTICE file -:: distributed with this work for additional information -:: regarding copyright ownership. The ASF licenses this file -:: to you under the Apache License, Version 2.0 (the -:: "License"); you may not use this file except in compliance -:: with the License. You may obtain a copy of the License at -:: -:: http://www.apache.org/licenses/LICENSE-2.0 -:: -:: Unless required by applicable law or agreed to in writing, -:: software distributed under the License is distributed on an -:: "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -:: KIND, either express or implied. See the License for the -:: specific language governing permissions and limitations -:: under the License. - -@ECHO OFF -SET script_path="%~dp0run" -IF EXIST %script_path% ( - node %script_path% %* -) ELSE ( - ECHO. - ECHO ERROR: Could not find 'run' script in 'cordova' folder, aborting...>&2 - EXIT /B 1 -) \ No newline at end of file diff --git a/ionic/platforms/android/cordova/version b/ionic/platforms/android/cordova/version deleted file mode 100755 index 00f44bbb76317bb373e32fdc18228df2aa1bae99..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/version +++ /dev/null @@ -1,24 +0,0 @@ -#!/usr/bin/env node - -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*/ - -const Api = require('./Api'); - -console.log(Api.version()); diff --git a/ionic/platforms/android/cordova/version.bat b/ionic/platforms/android/cordova/version.bat deleted file mode 100644 index 3610c17bedf1163cdea6f5168b76fea6d8db9f3a..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/cordova/version.bat +++ /dev/null @@ -1,26 +0,0 @@ -:: Licensed to the Apache Software Foundation (ASF) under one -:: or more contributor license agreements. See the NOTICE file -:: distributed with this work for additional information -:: regarding copyright ownership. The ASF licenses this file -:: to you under the Apache License, Version 2.0 (the -:: "License"); you may not use this file except in compliance -:: with the License. You may obtain a copy of the License at -:: -:: http://www.apache.org/licenses/LICENSE-2.0 -:: -:: Unless required by applicable law or agreed to in writing, -:: software distributed under the License is distributed on an -:: "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -:: KIND, either express or implied. See the License for the -:: specific language governing permissions and limitations -:: under the License. - -@ECHO OFF -SET script_path="%~dp0version" -IF EXIST %script_path% ( - node %script_path% %* -) ELSE ( - ECHO. - ECHO ERROR: Could not find 'version' script in 'cordova' folder, aborting...>&2 - EXIT /B 1 -) diff --git a/ionic/platforms/android/gradle.properties b/ionic/platforms/android/gradle.properties deleted file mode 100644 index 9094f528e434470aede87bb494444cddb3f85495..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/gradle.properties +++ /dev/null @@ -1,4 +0,0 @@ -org.gradle.daemon=true -org.gradle.jvmargs=-Xmx2048m -android.useAndroidX=false -android.enableJetifier=false \ No newline at end of file diff --git a/ionic/platforms/android/platform_www/cordova-js-src/android/nativeapiprovider.js b/ionic/platforms/android/platform_www/cordova-js-src/android/nativeapiprovider.js deleted file mode 100644 index 44f4aacf3ab1829a45f7bac375e3f64d399a2178..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/platform_www/cordova-js-src/android/nativeapiprovider.js +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. -*/ - -/** - * Exports the ExposedJsApi.java object if available, otherwise exports the PromptBasedNativeApi. - */ - -var nativeApi = this._cordovaNative || require('cordova/android/promptbasednativeapi'); -var currentApi = nativeApi; - -module.exports = { - get: function () { return currentApi; }, - setPreferPrompt: function (value) { - currentApi = value ? require('cordova/android/promptbasednativeapi') : nativeApi; - }, - // Used only by tests. - set: function (value) { - currentApi = value; - } -}; diff --git a/ionic/platforms/android/platform_www/cordova-js-src/android/promptbasednativeapi.js b/ionic/platforms/android/platform_www/cordova-js-src/android/promptbasednativeapi.js deleted file mode 100644 index 86fc1d9fe17b16ba8de1e6fbebd6015443631cce..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/platform_www/cordova-js-src/android/promptbasednativeapi.js +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. -*/ - -/** - * Implements the API of ExposedJsApi.java, but uses prompt() to communicate. - * This is used pre-JellyBean, where addJavascriptInterface() is disabled. - */ - -module.exports = { - exec: function (bridgeSecret, service, action, callbackId, argsJson) { - return prompt(argsJson, 'gap:' + JSON.stringify([bridgeSecret, service, action, callbackId])); - }, - setNativeToJsBridgeMode: function (bridgeSecret, value) { - prompt(value, 'gap_bridge_mode:' + bridgeSecret); - }, - retrieveJsMessages: function (bridgeSecret, fromOnlineEvent) { - return prompt(+fromOnlineEvent, 'gap_poll:' + bridgeSecret); - } -}; diff --git a/ionic/platforms/android/platform_www/cordova-js-src/exec.js b/ionic/platforms/android/platform_www/cordova-js-src/exec.js deleted file mode 100644 index c98212ee2074a2e1147790f1ccc5bebd348a89d7..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/platform_www/cordova-js-src/exec.js +++ /dev/null @@ -1,287 +0,0 @@ -/* - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - * -*/ - -/** - * Execute a cordova command. It is up to the native side whether this action - * is synchronous or asynchronous. The native side can return: - * Synchronous: PluginResult object as a JSON string - * Asynchronous: Empty string "" - * If async, the native side will cordova.callbackSuccess or cordova.callbackError, - * depending upon the result of the action. - * - * @param {Function} success The success callback - * @param {Function} fail The fail callback - * @param {String} service The name of the service to use - * @param {String} action Action to be run in cordova - * @param {String[]} [args] Zero or more arguments to pass to the method - */ -var cordova = require('cordova'); -var nativeApiProvider = require('cordova/android/nativeapiprovider'); -var utils = require('cordova/utils'); -var base64 = require('cordova/base64'); -var channel = require('cordova/channel'); -var jsToNativeModes = { - PROMPT: 0, - JS_OBJECT: 1 -}; -var nativeToJsModes = { - // Polls for messages using the JS->Native bridge. - POLLING: 0, - // For LOAD_URL to be viable, it would need to have a work-around for - // the bug where the soft-keyboard gets dismissed when a message is sent. - LOAD_URL: 1, - // For the ONLINE_EVENT to be viable, it would need to intercept all event - // listeners (both through addEventListener and window.ononline) as well - // as set the navigator property itself. - ONLINE_EVENT: 2, - EVAL_BRIDGE: 3 -}; -var jsToNativeBridgeMode; // Set lazily. -var nativeToJsBridgeMode = nativeToJsModes.EVAL_BRIDGE; -var pollEnabled = false; -var bridgeSecret = -1; - -var messagesFromNative = []; -var isProcessing = false; -var resolvedPromise = typeof Promise === 'undefined' ? null : Promise.resolve(); -var nextTick = resolvedPromise ? function (fn) { resolvedPromise.then(fn); } : function (fn) { setTimeout(fn); }; - -function androidExec (success, fail, service, action, args) { - if (bridgeSecret < 0) { - // If we ever catch this firing, we'll need to queue up exec()s - // and fire them once we get a secret. For now, I don't think - // it's possible for exec() to be called since plugins are parsed but - // not run until until after onNativeReady. - throw new Error('exec() called without bridgeSecret'); - } - // Set default bridge modes if they have not already been set. - // By default, we use the failsafe, since addJavascriptInterface breaks too often - if (jsToNativeBridgeMode === undefined) { - androidExec.setJsToNativeBridgeMode(jsToNativeModes.JS_OBJECT); - } - - // If args is not provided, default to an empty array - args = args || []; - - // Process any ArrayBuffers in the args into a string. - for (var i = 0; i < args.length; i++) { - if (utils.typeName(args[i]) === 'ArrayBuffer') { - args[i] = base64.fromArrayBuffer(args[i]); - } - } - - var callbackId = service + cordova.callbackId++; - var argsJson = JSON.stringify(args); - if (success || fail) { - cordova.callbacks[callbackId] = { success: success, fail: fail }; - } - - var msgs = nativeApiProvider.get().exec(bridgeSecret, service, action, callbackId, argsJson); - // If argsJson was received by Java as null, try again with the PROMPT bridge mode. - // This happens in rare circumstances, such as when certain Unicode characters are passed over the bridge on a Galaxy S2. See CB-2666. - if (jsToNativeBridgeMode === jsToNativeModes.JS_OBJECT && msgs === '@Null arguments.') { - androidExec.setJsToNativeBridgeMode(jsToNativeModes.PROMPT); - androidExec(success, fail, service, action, args); - androidExec.setJsToNativeBridgeMode(jsToNativeModes.JS_OBJECT); - } else if (msgs) { - messagesFromNative.push(msgs); - // Always process async to avoid exceptions messing up stack. - nextTick(processMessages); - } -} - -androidExec.init = function () { - bridgeSecret = +prompt('', 'gap_init:' + nativeToJsBridgeMode); - channel.onNativeReady.fire(); -}; - -function pollOnceFromOnlineEvent () { - pollOnce(true); -} - -function pollOnce (opt_fromOnlineEvent) { - if (bridgeSecret < 0) { - // This can happen when the NativeToJsMessageQueue resets the online state on page transitions. - // We know there's nothing to retrieve, so no need to poll. - return; - } - var msgs = nativeApiProvider.get().retrieveJsMessages(bridgeSecret, !!opt_fromOnlineEvent); - if (msgs) { - messagesFromNative.push(msgs); - // Process sync since we know we're already top-of-stack. - processMessages(); - } -} - -function pollingTimerFunc () { - if (pollEnabled) { - pollOnce(); - setTimeout(pollingTimerFunc, 50); - } -} - -function hookOnlineApis () { - function proxyEvent (e) { - cordova.fireWindowEvent(e.type); - } - // The network module takes care of firing online and offline events. - // It currently fires them only on document though, so we bridge them - // to window here (while first listening for exec()-releated online/offline - // events). - window.addEventListener('online', pollOnceFromOnlineEvent, false); - window.addEventListener('offline', pollOnceFromOnlineEvent, false); - cordova.addWindowEventHandler('online'); - cordova.addWindowEventHandler('offline'); - document.addEventListener('online', proxyEvent, false); - document.addEventListener('offline', proxyEvent, false); -} - -hookOnlineApis(); - -androidExec.jsToNativeModes = jsToNativeModes; -androidExec.nativeToJsModes = nativeToJsModes; - -androidExec.setJsToNativeBridgeMode = function (mode) { - if (mode === jsToNativeModes.JS_OBJECT && !window._cordovaNative) { - mode = jsToNativeModes.PROMPT; - } - nativeApiProvider.setPreferPrompt(mode === jsToNativeModes.PROMPT); - jsToNativeBridgeMode = mode; -}; - -androidExec.setNativeToJsBridgeMode = function (mode) { - if (mode === nativeToJsBridgeMode) { - return; - } - if (nativeToJsBridgeMode === nativeToJsModes.POLLING) { - pollEnabled = false; - } - - nativeToJsBridgeMode = mode; - // Tell the native side to switch modes. - // Otherwise, it will be set by androidExec.init() - if (bridgeSecret >= 0) { - nativeApiProvider.get().setNativeToJsBridgeMode(bridgeSecret, mode); - } - - if (mode === nativeToJsModes.POLLING) { - pollEnabled = true; - setTimeout(pollingTimerFunc, 1); - } -}; - -function buildPayload (payload, message) { - var payloadKind = message.charAt(0); - if (payloadKind === 's') { - payload.push(message.slice(1)); - } else if (payloadKind === 't') { - payload.push(true); - } else if (payloadKind === 'f') { - payload.push(false); - } else if (payloadKind === 'N') { - payload.push(null); - } else if (payloadKind === 'n') { - payload.push(+message.slice(1)); - } else if (payloadKind === 'A') { - var data = message.slice(1); - payload.push(base64.toArrayBuffer(data)); - } else if (payloadKind === 'S') { - payload.push(window.atob(message.slice(1))); - } else if (payloadKind === 'M') { - var multipartMessages = message.slice(1); - while (multipartMessages !== '') { - var spaceIdx = multipartMessages.indexOf(' '); - var msgLen = +multipartMessages.slice(0, spaceIdx); - var multipartMessage = multipartMessages.substr(spaceIdx + 1, msgLen); - multipartMessages = multipartMessages.slice(spaceIdx + msgLen + 1); - buildPayload(payload, multipartMessage); - } - } else { - payload.push(JSON.parse(message)); - } -} - -// Processes a single message, as encoded by NativeToJsMessageQueue.java. -function processMessage (message) { - var firstChar = message.charAt(0); - if (firstChar === 'J') { - // This is deprecated on the .java side. It doesn't work with CSP enabled. - // eslint-disable-next-line no-eval - eval(message.slice(1)); - } else if (firstChar === 'S' || firstChar === 'F') { - var success = firstChar === 'S'; - var keepCallback = message.charAt(1) === '1'; - var spaceIdx = message.indexOf(' ', 2); - var status = +message.slice(2, spaceIdx); - var nextSpaceIdx = message.indexOf(' ', spaceIdx + 1); - var callbackId = message.slice(spaceIdx + 1, nextSpaceIdx); - var payloadMessage = message.slice(nextSpaceIdx + 1); - var payload = []; - buildPayload(payload, payloadMessage); - cordova.callbackFromNative(callbackId, success, status, payload, keepCallback); - } else { - console.log('processMessage failed: invalid message: ' + JSON.stringify(message)); - } -} - -function processMessages () { - // Check for the reentrant case. - if (isProcessing) { - return; - } - if (messagesFromNative.length === 0) { - return; - } - isProcessing = true; - try { - var msg = popMessageFromQueue(); - // The Java side can send a * message to indicate that it - // still has messages waiting to be retrieved. - if (msg === '*' && messagesFromNative.length === 0) { - nextTick(pollOnce); - return; - } - processMessage(msg); - } finally { - isProcessing = false; - if (messagesFromNative.length > 0) { - nextTick(processMessages); - } - } -} - -function popMessageFromQueue () { - var messageBatch = messagesFromNative.shift(); - if (messageBatch === '*') { - return '*'; - } - - var spaceIdx = messageBatch.indexOf(' '); - var msgLen = +messageBatch.slice(0, spaceIdx); - var message = messageBatch.substr(spaceIdx + 1, msgLen); - messageBatch = messageBatch.slice(spaceIdx + msgLen + 1); - if (messageBatch) { - messagesFromNative.unshift(messageBatch); - } - return message; -} - -module.exports = androidExec; diff --git a/ionic/platforms/android/platform_www/cordova-js-src/platform.js b/ionic/platforms/android/platform_www/cordova-js-src/platform.js deleted file mode 100644 index 14eddd7f705d40f35c17aea37a56652545f11cbc..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/platform_www/cordova-js-src/platform.js +++ /dev/null @@ -1,122 +0,0 @@ -/* - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - * -*/ - -// The last resume event that was received that had the result of a plugin call. -var lastResumeEvent = null; - -module.exports = { - id: 'android', - bootstrap: function () { - var channel = require('cordova/channel'); - var cordova = require('cordova'); - var exec = require('cordova/exec'); - var modulemapper = require('cordova/modulemapper'); - - // Get the shared secret needed to use the bridge. - exec.init(); - - // TODO: Extract this as a proper plugin. - modulemapper.clobbers('cordova/plugin/android/app', 'navigator.app'); - - var APP_PLUGIN_NAME = Number(cordova.platformVersion.split('.')[0]) >= 4 ? 'CoreAndroid' : 'App'; - - // Inject a listener for the backbutton on the document. - var backButtonChannel = cordova.addDocumentEventHandler('backbutton'); - backButtonChannel.onHasSubscribersChange = function () { - // If we just attached the first handler or detached the last handler, - // let native know we need to override the back button. - exec(null, null, APP_PLUGIN_NAME, 'overrideBackbutton', [this.numHandlers === 1]); - }; - - // Add hardware MENU and SEARCH button handlers - cordova.addDocumentEventHandler('menubutton'); - cordova.addDocumentEventHandler('searchbutton'); - - function bindButtonChannel (buttonName) { - // generic button bind used for volumeup/volumedown buttons - var volumeButtonChannel = cordova.addDocumentEventHandler(buttonName + 'button'); - volumeButtonChannel.onHasSubscribersChange = function () { - exec(null, null, APP_PLUGIN_NAME, 'overrideButton', [buttonName, this.numHandlers === 1]); - }; - } - // Inject a listener for the volume buttons on the document. - bindButtonChannel('volumeup'); - bindButtonChannel('volumedown'); - - // The resume event is not "sticky", but it is possible that the event - // will contain the result of a plugin call. We need to ensure that the - // plugin result is delivered even after the event is fired (CB-10498) - var cordovaAddEventListener = document.addEventListener; - - document.addEventListener = function (evt, handler, capture) { - cordovaAddEventListener(evt, handler, capture); - - if (evt === 'resume' && lastResumeEvent) { - handler(lastResumeEvent); - } - }; - - // Let native code know we are all done on the JS side. - // Native code will then un-hide the WebView. - channel.onCordovaReady.subscribe(function () { - exec(onMessageFromNative, null, APP_PLUGIN_NAME, 'messageChannel', []); - exec(null, null, APP_PLUGIN_NAME, 'show', []); - }); - } -}; - -function onMessageFromNative (msg) { - var cordova = require('cordova'); - var action = msg.action; - - switch (action) { - // pause and resume are Android app life cycle events - case 'backbutton': - case 'menubutton': - case 'searchbutton': - case 'pause': - case 'volumedownbutton': - case 'volumeupbutton': - cordova.fireDocumentEvent(action); - break; - case 'resume': - if (arguments.length > 1 && msg.pendingResult) { - if (arguments.length === 2) { - msg.pendingResult.result = arguments[1]; - } else { - // The plugin returned a multipart message - var res = []; - for (var i = 1; i < arguments.length; i++) { - res.push(arguments[i]); - } - msg.pendingResult.result = res; - } - - // Save the plugin result so that it can be delivered to the js - // even if they miss the initial firing of the event - lastResumeEvent = msg; - } - cordova.fireDocumentEvent(action, msg); - break; - default: - throw new Error('Unknown event action ' + action); - } -} diff --git a/ionic/platforms/android/platform_www/cordova-js-src/plugin/android/app.js b/ionic/platforms/android/platform_www/cordova-js-src/plugin/android/app.js deleted file mode 100644 index 027ce31b11fe411c28fd20574c1812cbe138dc21..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/platform_www/cordova-js-src/plugin/android/app.js +++ /dev/null @@ -1,108 +0,0 @@ -/* - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - * -*/ - -var exec = require('cordova/exec'); -var APP_PLUGIN_NAME = Number(require('cordova').platformVersion.split('.')[0]) >= 4 ? 'CoreAndroid' : 'App'; - -module.exports = { - /** - * Clear the resource cache. - */ - clearCache: function () { - exec(null, null, APP_PLUGIN_NAME, 'clearCache', []); - }, - - /** - * Load the url into the webview or into new browser instance. - * - * @param url The URL to load - * @param props Properties that can be passed in to the activity: - * wait: int => wait msec before loading URL - * loadingDialog: "Title,Message" => display a native loading dialog - * loadUrlTimeoutValue: int => time in msec to wait before triggering a timeout error - * clearHistory: boolean => clear webview history (default=false) - * openExternal: boolean => open in a new browser (default=false) - * - * Example: - * navigator.app.loadUrl("http://server/myapp/index.html", {wait:2000, loadingDialog:"Wait,Loading App", loadUrlTimeoutValue: 60000}); - */ - loadUrl: function (url, props) { - exec(null, null, APP_PLUGIN_NAME, 'loadUrl', [url, props]); - }, - - /** - * Cancel loadUrl that is waiting to be loaded. - */ - cancelLoadUrl: function () { - exec(null, null, APP_PLUGIN_NAME, 'cancelLoadUrl', []); - }, - - /** - * Clear web history in this web view. - * Instead of BACK button loading the previous web page, it will exit the app. - */ - clearHistory: function () { - exec(null, null, APP_PLUGIN_NAME, 'clearHistory', []); - }, - - /** - * Go to previous page displayed. - * This is the same as pressing the backbutton on Android device. - */ - backHistory: function () { - exec(null, null, APP_PLUGIN_NAME, 'backHistory', []); - }, - - /** - * Override the default behavior of the Android back button. - * If overridden, when the back button is pressed, the "backKeyDown" JavaScript event will be fired. - * - * Note: The user should not have to call this method. Instead, when the user - * registers for the "backbutton" event, this is automatically done. - * - * @param override T=override, F=cancel override - */ - overrideBackbutton: function (override) { - exec(null, null, APP_PLUGIN_NAME, 'overrideBackbutton', [override]); - }, - - /** - * Override the default behavior of the Android volume button. - * If overridden, when the volume button is pressed, the "volume[up|down]button" - * JavaScript event will be fired. - * - * Note: The user should not have to call this method. Instead, when the user - * registers for the "volume[up|down]button" event, this is automatically done. - * - * @param button volumeup, volumedown - * @param override T=override, F=cancel override - */ - overrideButton: function (button, override) { - exec(null, null, APP_PLUGIN_NAME, 'overrideButton', [button, override]); - }, - - /** - * Exit and terminate the application. - */ - exitApp: function () { - return exec(null, null, APP_PLUGIN_NAME, 'exitApp', []); - } -}; diff --git a/ionic/platforms/android/platform_www/cordova.js b/ionic/platforms/android/platform_www/cordova.js deleted file mode 100644 index 3d71792ddbdbfa1eda6b681d412729c7cc5ffef1..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/platform_www/cordova.js +++ /dev/null @@ -1,1904 +0,0 @@ -// Platform: android -// 538a985db128858c0a0eb4dd40fb9c8e5433fc94 -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*/ -;(function() { -var PLATFORM_VERSION_BUILD_LABEL = '9.0.0'; -// file: src/scripts/require.js -var require; -var define; - -(function () { - var modules = {}; - // Stack of moduleIds currently being built. - var requireStack = []; - // Map of module ID -> index into requireStack of modules currently being built. - var inProgressModules = {}; - var SEPARATOR = '.'; - - function build (module) { - var factory = module.factory; - var localRequire = function (id) { - var resultantId = id; - // Its a relative path, so lop off the last portion and add the id (minus "./") - if (id.charAt(0) === '.') { - resultantId = module.id.slice(0, module.id.lastIndexOf(SEPARATOR)) + SEPARATOR + id.slice(2); - } - return require(resultantId); - }; - module.exports = {}; - delete module.factory; - factory(localRequire, module.exports, module); - return module.exports; - } - - require = function (id) { - if (!modules[id]) { - throw new Error('module ' + id + ' not found'); - } else if (id in inProgressModules) { - var cycle = requireStack.slice(inProgressModules[id]).join('->') + '->' + id; - throw new Error('Cycle in require graph: ' + cycle); - } - if (modules[id].factory) { - try { - inProgressModules[id] = requireStack.length; - requireStack.push(id); - return build(modules[id]); - } finally { - delete inProgressModules[id]; - requireStack.pop(); - } - } - return modules[id].exports; - }; - - define = function (id, factory) { - if (Object.prototype.hasOwnProperty.call(modules, id)) { - throw new Error('module ' + id + ' already defined'); - } - - modules[id] = { - id: id, - factory: factory - }; - }; - - define.remove = function (id) { - delete modules[id]; - }; - - define.moduleMap = modules; -})(); - -// Export for use in node -if (typeof module === 'object' && typeof require === 'function') { - module.exports.require = require; - module.exports.define = define; -} - -// file: src/cordova.js -define("cordova", function(require, exports, module) { - -// Workaround for Windows 10 in hosted environment case -// http://www.w3.org/html/wg/drafts/html/master/browsers.html#named-access-on-the-window-object -if (window.cordova && !(window.cordova instanceof HTMLElement)) { - throw new Error('cordova already defined'); -} - -var channel = require('cordova/channel'); -var platform = require('cordova/platform'); - -/** - * Intercept calls to addEventListener + removeEventListener and handle deviceready, - * resume, and pause events. - */ -var m_document_addEventListener = document.addEventListener; -var m_document_removeEventListener = document.removeEventListener; -var m_window_addEventListener = window.addEventListener; -var m_window_removeEventListener = window.removeEventListener; - -/** - * Houses custom event handlers to intercept on document + window event listeners. - */ -var documentEventHandlers = {}; -var windowEventHandlers = {}; - -document.addEventListener = function (evt, handler, capture) { - var e = evt.toLowerCase(); - if (typeof documentEventHandlers[e] !== 'undefined') { - documentEventHandlers[e].subscribe(handler); - } else { - m_document_addEventListener.call(document, evt, handler, capture); - } -}; - -window.addEventListener = function (evt, handler, capture) { - var e = evt.toLowerCase(); - if (typeof windowEventHandlers[e] !== 'undefined') { - windowEventHandlers[e].subscribe(handler); - } else { - m_window_addEventListener.call(window, evt, handler, capture); - } -}; - -document.removeEventListener = function (evt, handler, capture) { - var e = evt.toLowerCase(); - // If unsubscribing from an event that is handled by a plugin - if (typeof documentEventHandlers[e] !== 'undefined') { - documentEventHandlers[e].unsubscribe(handler); - } else { - m_document_removeEventListener.call(document, evt, handler, capture); - } -}; - -window.removeEventListener = function (evt, handler, capture) { - var e = evt.toLowerCase(); - // If unsubscribing from an event that is handled by a plugin - if (typeof windowEventHandlers[e] !== 'undefined') { - windowEventHandlers[e].unsubscribe(handler); - } else { - m_window_removeEventListener.call(window, evt, handler, capture); - } -}; - -function createEvent (type, data) { - var event = document.createEvent('Events'); - event.initEvent(type, false, false); - if (data) { - for (var i in data) { - if (Object.prototype.hasOwnProperty.call(data, i)) { - event[i] = data[i]; - } - } - } - return event; -} - -var cordova = { - define: define, - require: require, - version: PLATFORM_VERSION_BUILD_LABEL, - platformVersion: PLATFORM_VERSION_BUILD_LABEL, - platformId: platform.id, - - /** - * Methods to add/remove your own addEventListener hijacking on document + window. - */ - addWindowEventHandler: function (event) { - return (windowEventHandlers[event] = channel.create(event)); - }, - addStickyDocumentEventHandler: function (event) { - return (documentEventHandlers[event] = channel.createSticky(event)); - }, - addDocumentEventHandler: function (event) { - return (documentEventHandlers[event] = channel.create(event)); - }, - removeWindowEventHandler: function (event) { - delete windowEventHandlers[event]; - }, - removeDocumentEventHandler: function (event) { - delete documentEventHandlers[event]; - }, - - /** - * Retrieve original event handlers that were replaced by Cordova - * - * @return object - */ - getOriginalHandlers: function () { - return { - document: { - addEventListener: m_document_addEventListener, - removeEventListener: m_document_removeEventListener - }, - window: { - addEventListener: m_window_addEventListener, - removeEventListener: m_window_removeEventListener - } - }; - }, - - /** - * Method to fire event from native code - * bNoDetach is required for events which cause an exception which needs to be caught in native code - */ - fireDocumentEvent: function (type, data, bNoDetach) { - var evt = createEvent(type, data); - if (typeof documentEventHandlers[type] !== 'undefined') { - if (bNoDetach) { - documentEventHandlers[type].fire(evt); - } else { - setTimeout(function () { - // Fire deviceready on listeners that were registered before cordova.js was loaded. - if (type === 'deviceready') { - document.dispatchEvent(evt); - } - documentEventHandlers[type].fire(evt); - }, 0); - } - } else { - document.dispatchEvent(evt); - } - }, - - fireWindowEvent: function (type, data) { - var evt = createEvent(type, data); - if (typeof windowEventHandlers[type] !== 'undefined') { - setTimeout(function () { - windowEventHandlers[type].fire(evt); - }, 0); - } else { - window.dispatchEvent(evt); - } - }, - - /** - * Plugin callback mechanism. - */ - // Randomize the starting callbackId to avoid collisions after refreshing or navigating. - // This way, it's very unlikely that any new callback would get the same callbackId as an old callback. - callbackId: Math.floor(Math.random() * 2000000000), - callbacks: {}, - callbackStatus: { - NO_RESULT: 0, - OK: 1, - CLASS_NOT_FOUND_EXCEPTION: 2, - ILLEGAL_ACCESS_EXCEPTION: 3, - INSTANTIATION_EXCEPTION: 4, - MALFORMED_URL_EXCEPTION: 5, - IO_EXCEPTION: 6, - INVALID_ACTION: 7, - JSON_EXCEPTION: 8, - ERROR: 9 - }, - - /** - * Called by native code when returning successful result from an action. - */ - callbackSuccess: function (callbackId, args) { - cordova.callbackFromNative(callbackId, true, args.status, [args.message], args.keepCallback); - }, - - /** - * Called by native code when returning error result from an action. - */ - callbackError: function (callbackId, args) { - // TODO: Deprecate callbackSuccess and callbackError in favour of callbackFromNative. - // Derive success from status. - cordova.callbackFromNative(callbackId, false, args.status, [args.message], args.keepCallback); - }, - - /** - * Called by native code when returning the result from an action. - */ - callbackFromNative: function (callbackId, isSuccess, status, args, keepCallback) { - try { - var callback = cordova.callbacks[callbackId]; - if (callback) { - if (isSuccess && status === cordova.callbackStatus.OK) { - callback.success && callback.success.apply(null, args); - } else if (!isSuccess) { - callback.fail && callback.fail.apply(null, args); - } - /* - else - Note, this case is intentionally not caught. - this can happen if isSuccess is true, but callbackStatus is NO_RESULT - which is used to remove a callback from the list without calling the callbacks - typically keepCallback is false in this case - */ - // Clear callback if not expecting any more results - if (!keepCallback) { - delete cordova.callbacks[callbackId]; - } - } - } catch (err) { - var msg = 'Error in ' + (isSuccess ? 'Success' : 'Error') + ' callbackId: ' + callbackId + ' : ' + err; - cordova.fireWindowEvent('cordovacallbackerror', { message: msg, error: err }); - throw err; - } - }, - - addConstructor: function (func) { - channel.onCordovaReady.subscribe(function () { - try { - func(); - } catch (e) { - console.log('Failed to run constructor: ' + e); - } - }); - } -}; - -module.exports = cordova; - -}); - -// file: ../cordova-android/cordova-js-src/android/nativeapiprovider.js -define("cordova/android/nativeapiprovider", function(require, exports, module) { - -/** - * Exports the ExposedJsApi.java object if available, otherwise exports the PromptBasedNativeApi. - */ - -var nativeApi = this._cordovaNative || require('cordova/android/promptbasednativeapi'); -var currentApi = nativeApi; - -module.exports = { - get: function () { return currentApi; }, - setPreferPrompt: function (value) { - currentApi = value ? require('cordova/android/promptbasednativeapi') : nativeApi; - }, - // Used only by tests. - set: function (value) { - currentApi = value; - } -}; - -}); - -// file: ../cordova-android/cordova-js-src/android/promptbasednativeapi.js -define("cordova/android/promptbasednativeapi", function(require, exports, module) { - -/** - * Implements the API of ExposedJsApi.java, but uses prompt() to communicate. - * This is used pre-JellyBean, where addJavascriptInterface() is disabled. - */ - -module.exports = { - exec: function (bridgeSecret, service, action, callbackId, argsJson) { - return prompt(argsJson, 'gap:' + JSON.stringify([bridgeSecret, service, action, callbackId])); - }, - setNativeToJsBridgeMode: function (bridgeSecret, value) { - prompt(value, 'gap_bridge_mode:' + bridgeSecret); - }, - retrieveJsMessages: function (bridgeSecret, fromOnlineEvent) { - return prompt(+fromOnlineEvent, 'gap_poll:' + bridgeSecret); - } -}; - -}); - -// file: src/common/argscheck.js -define("cordova/argscheck", function(require, exports, module) { - -var utils = require('cordova/utils'); - -var moduleExports = module.exports; - -var typeMap = { - A: 'Array', - D: 'Date', - N: 'Number', - S: 'String', - F: 'Function', - O: 'Object' -}; - -function extractParamName (callee, argIndex) { - return (/\(\s*([^)]*?)\s*\)/).exec(callee)[1].split(/\s*,\s*/)[argIndex]; -} - -/** - * Checks the given arguments' types and throws if they are not as expected. - * - * `spec` is a string where each character stands for the required type of the - * argument at the same position. In other words: the character at `spec[i]` - * specifies the required type for `args[i]`. The characters in `spec` are the - * first letter of the required type's name. The supported types are: - * - * Array, Date, Number, String, Function, Object - * - * Lowercase characters specify arguments that must not be `null` or `undefined` - * while uppercase characters allow those values to be passed. - * - * Finally, `*` can be used to allow any type at the corresponding position. - * - * @example - * function foo (arr, opts) { - * // require `arr` to be an Array and `opts` an Object, null or undefined - * checkArgs('aO', 'my.package.foo', arguments); - * // ... - * } - * @param {String} spec - the type specification for `args` as described above - * @param {String} functionName - full name of the callee. - * Used in the error message - * @param {Array|arguments} args - the arguments to be checked against `spec` - * @param {Function} [opt_callee=args.callee] - the recipient of `args`. - * Used to extract parameter names for the error message - * @throws {TypeError} if args do not satisfy spec - */ -function checkArgs (spec, functionName, args, opt_callee) { - if (!moduleExports.enableChecks) { - return; - } - var errMsg = null; - var typeName; - for (var i = 0; i < spec.length; ++i) { - var c = spec.charAt(i); - var cUpper = c.toUpperCase(); - var arg = args[i]; - // Asterix means allow anything. - if (c === '*') { - continue; - } - typeName = utils.typeName(arg); - if ((arg === null || arg === undefined) && c === cUpper) { - continue; - } - if (typeName !== typeMap[cUpper]) { - errMsg = 'Expected ' + typeMap[cUpper]; - break; - } - } - if (errMsg) { - errMsg += ', but got ' + typeName + '.'; - errMsg = 'Wrong type for parameter "' + extractParamName(opt_callee || args.callee, i) + '" of ' + functionName + ': ' + errMsg; - // Don't log when running unit tests. - if (typeof jasmine === 'undefined') { - console.error(errMsg); - } - throw TypeError(errMsg); - } -} - -function getValue (value, defaultValue) { - return value === undefined ? defaultValue : value; -} - -moduleExports.checkArgs = checkArgs; -moduleExports.getValue = getValue; -moduleExports.enableChecks = true; - -}); - -// file: src/common/base64.js -define("cordova/base64", function(require, exports, module) { - -var base64 = exports; - -base64.fromArrayBuffer = function (arrayBuffer) { - var array = new Uint8Array(arrayBuffer); - return uint8ToBase64(array); -}; - -base64.toArrayBuffer = function (str) { - var decodedStr = atob(str); - var arrayBuffer = new ArrayBuffer(decodedStr.length); - var array = new Uint8Array(arrayBuffer); - for (var i = 0, len = decodedStr.length; i < len; i++) { - array[i] = decodedStr.charCodeAt(i); - } - return arrayBuffer; -}; - -// ------------------------------------------------------------------------------ - -/* This code is based on the performance tests at http://jsperf.com/b64tests - * This 12-bit-at-a-time algorithm was the best performing version on all - * platforms tested. - */ - -var b64_6bit = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; -var b64_12bit; - -var b64_12bitTable = function () { - b64_12bit = []; - for (var i = 0; i < 64; i++) { - for (var j = 0; j < 64; j++) { - b64_12bit[i * 64 + j] = b64_6bit[i] + b64_6bit[j]; - } - } - b64_12bitTable = function () { return b64_12bit; }; - return b64_12bit; -}; - -function uint8ToBase64 (rawData) { - var numBytes = rawData.byteLength; - var output = ''; - var segment; - var table = b64_12bitTable(); - for (var i = 0; i < numBytes - 2; i += 3) { - segment = (rawData[i] << 16) + (rawData[i + 1] << 8) + rawData[i + 2]; - output += table[segment >> 12]; - output += table[segment & 0xfff]; - } - if (numBytes - i === 2) { - segment = (rawData[i] << 16) + (rawData[i + 1] << 8); - output += table[segment >> 12]; - output += b64_6bit[(segment & 0xfff) >> 6]; - output += '='; - } else if (numBytes - i === 1) { - segment = (rawData[i] << 16); - output += table[segment >> 12]; - output += '=='; - } - return output; -} - -}); - -// file: src/common/builder.js -define("cordova/builder", function(require, exports, module) { - -var utils = require('cordova/utils'); - -function each (objects, func, context) { - for (var prop in objects) { - if (Object.prototype.hasOwnProperty.call(objects, prop)) { - func.apply(context, [objects[prop], prop]); - } - } -} - -function clobber (obj, key, value) { - var needsProperty = false; - try { - obj[key] = value; - } catch (e) { - needsProperty = true; - } - // Getters can only be overridden by getters. - if (needsProperty || obj[key] !== value) { - utils.defineGetter(obj, key, function () { - return value; - }); - } -} - -function assignOrWrapInDeprecateGetter (obj, key, value, message) { - if (message) { - utils.defineGetter(obj, key, function () { - console.log(message); - delete obj[key]; - clobber(obj, key, value); - return value; - }); - } else { - clobber(obj, key, value); - } -} - -function include (parent, objects, clobber, merge) { - each(objects, function (obj, key) { - try { - var result = obj.path ? require(obj.path) : {}; - - if (clobber) { - // Clobber if it doesn't exist. - if (typeof parent[key] === 'undefined') { - assignOrWrapInDeprecateGetter(parent, key, result, obj.deprecated); - } else if (typeof obj.path !== 'undefined') { - // If merging, merge properties onto parent, otherwise, clobber. - if (merge) { - recursiveMerge(parent[key], result); - } else { - assignOrWrapInDeprecateGetter(parent, key, result, obj.deprecated); - } - } - result = parent[key]; - } else { - // Overwrite if not currently defined. - if (typeof parent[key] === 'undefined') { - assignOrWrapInDeprecateGetter(parent, key, result, obj.deprecated); - } else { - // Set result to what already exists, so we can build children into it if they exist. - result = parent[key]; - } - } - - if (obj.children) { - include(result, obj.children, clobber, merge); - } - } catch (e) { - utils.alert('Exception building Cordova JS globals: ' + e + ' for key "' + key + '"'); - } - }); -} - -/** - * Merge properties from one object onto another recursively. Properties from - * the src object will overwrite existing target property. - * - * @param target Object to merge properties into. - * @param src Object to merge properties from. - */ -function recursiveMerge (target, src) { - for (var prop in src) { - if (Object.prototype.hasOwnProperty.call(src, prop)) { - if (target.prototype && target.prototype.constructor === target) { - // If the target object is a constructor override off prototype. - clobber(target.prototype, prop, src[prop]); - } else { - if (typeof src[prop] === 'object' && typeof target[prop] === 'object') { - recursiveMerge(target[prop], src[prop]); - } else { - clobber(target, prop, src[prop]); - } - } - } - } -} - -exports.buildIntoButDoNotClobber = function (objects, target) { - include(target, objects, false, false); -}; -exports.buildIntoAndClobber = function (objects, target) { - include(target, objects, true, false); -}; -exports.buildIntoAndMerge = function (objects, target) { - include(target, objects, true, true); -}; -exports.recursiveMerge = recursiveMerge; -exports.assignOrWrapInDeprecateGetter = assignOrWrapInDeprecateGetter; - -}); - -// file: src/common/channel.js -define("cordova/channel", function(require, exports, module) { - -var utils = require('cordova/utils'); -var nextGuid = 1; - -/** - * Custom pub-sub "channel" that can have functions subscribed to it - * This object is used to define and control firing of events for - * cordova initialization, as well as for custom events thereafter. - * - * The order of events during page load and Cordova startup is as follows: - * - * onDOMContentLoaded* Internal event that is received when the web page is loaded and parsed. - * onNativeReady* Internal event that indicates the Cordova native side is ready. - * onCordovaReady* Internal event fired when all Cordova JavaScript objects have been created. - * onDeviceReady* User event fired to indicate that Cordova is ready - * onResume User event fired to indicate a start/resume lifecycle event - * onPause User event fired to indicate a pause lifecycle event - * - * The events marked with an * are sticky. Once they have fired, they will stay in the fired state. - * All listeners that subscribe after the event is fired will be executed right away. - * - * The only Cordova events that user code should register for are: - * deviceready Cordova native code is initialized and Cordova APIs can be called from JavaScript - * pause App has moved to background - * resume App has returned to foreground - * - * Listeners can be registered as: - * document.addEventListener("deviceready", myDeviceReadyListener, false); - * document.addEventListener("resume", myResumeListener, false); - * document.addEventListener("pause", myPauseListener, false); - * - * The DOM lifecycle events should be used for saving and restoring state - * window.onload - * window.onunload - * - */ - -/** - * Channel - * @constructor - * @param type String the channel name - */ -var Channel = function (type, sticky) { - this.type = type; - // Map of guid -> function. - this.handlers = {}; - // 0 = Non-sticky, 1 = Sticky non-fired, 2 = Sticky fired. - this.state = sticky ? 1 : 0; - // Used in sticky mode to remember args passed to fire(). - this.fireArgs = null; - // Used by onHasSubscribersChange to know if there are any listeners. - this.numHandlers = 0; - // Function that is called when the first listener is subscribed, or when - // the last listener is unsubscribed. - this.onHasSubscribersChange = null; -}; -var channel = { - /** - * Calls the provided function only after all of the channels specified - * have been fired. All channels must be sticky channels. - */ - join: function (h, c) { - var len = c.length; - var i = len; - var f = function () { - if (!(--i)) h(); - }; - for (var j = 0; j < len; j++) { - if (c[j].state === 0) { - throw Error('Can only use join with sticky channels.'); - } - c[j].subscribe(f); - } - if (!len) h(); - }, - - create: function (type) { - return (channel[type] = new Channel(type, false)); - }, - createSticky: function (type) { - return (channel[type] = new Channel(type, true)); - }, - - /** - * cordova Channels that must fire before "deviceready" is fired. - */ - deviceReadyChannelsArray: [], - deviceReadyChannelsMap: {}, - - /** - * Indicate that a feature needs to be initialized before it is ready to be used. - * This holds up Cordova's "deviceready" event until the feature has been initialized - * and Cordova.initComplete(feature) is called. - * - * @param feature {String} The unique feature name - */ - waitForInitialization: function (feature) { - if (feature) { - var c = channel[feature] || this.createSticky(feature); - this.deviceReadyChannelsMap[feature] = c; - this.deviceReadyChannelsArray.push(c); - } - }, - - /** - * Indicate that initialization code has completed and the feature is ready to be used. - * - * @param feature {String} The unique feature name - */ - initializationComplete: function (feature) { - var c = this.deviceReadyChannelsMap[feature]; - if (c) { - c.fire(); - } - } -}; - -function checkSubscriptionArgument (argument) { - if (typeof argument !== 'function' && typeof argument.handleEvent !== 'function') { - throw new Error( - 'Must provide a function or an EventListener object ' + - 'implementing the handleEvent interface.' - ); - } -} - -/** - * Subscribes the given function to the channel. Any time that - * Channel.fire is called so too will the function. - * Optionally specify an execution context for the function - * and a guid that can be used to stop subscribing to the channel. - * Returns the guid. - */ -Channel.prototype.subscribe = function (eventListenerOrFunction, eventListener) { - checkSubscriptionArgument(eventListenerOrFunction); - var handleEvent, guid; - - if (eventListenerOrFunction && typeof eventListenerOrFunction === 'object') { - // Received an EventListener object implementing the handleEvent interface - handleEvent = eventListenerOrFunction.handleEvent; - eventListener = eventListenerOrFunction; - } else { - // Received a function to handle event - handleEvent = eventListenerOrFunction; - } - - if (this.state === 2) { - handleEvent.apply(eventListener || this, this.fireArgs); - return; - } - - guid = eventListenerOrFunction.observer_guid; - if (typeof eventListener === 'object') { - handleEvent = utils.close(eventListener, handleEvent); - } - - if (!guid) { - // First time any channel has seen this subscriber - guid = '' + nextGuid++; - } - handleEvent.observer_guid = guid; - eventListenerOrFunction.observer_guid = guid; - - // Don't add the same handler more than once. - if (!this.handlers[guid]) { - this.handlers[guid] = handleEvent; - this.numHandlers++; - if (this.numHandlers === 1) { - this.onHasSubscribersChange && this.onHasSubscribersChange(); - } - } -}; - -/** - * Unsubscribes the function with the given guid from the channel. - */ -Channel.prototype.unsubscribe = function (eventListenerOrFunction) { - checkSubscriptionArgument(eventListenerOrFunction); - var handleEvent, guid, handler; - - if (eventListenerOrFunction && typeof eventListenerOrFunction === 'object') { - // Received an EventListener object implementing the handleEvent interface - handleEvent = eventListenerOrFunction.handleEvent; - } else { - // Received a function to handle event - handleEvent = eventListenerOrFunction; - } - - guid = handleEvent.observer_guid; - handler = this.handlers[guid]; - if (handler) { - delete this.handlers[guid]; - this.numHandlers--; - if (this.numHandlers === 0) { - this.onHasSubscribersChange && this.onHasSubscribersChange(); - } - } -}; - -/** - * Calls all functions subscribed to this channel. - */ -Channel.prototype.fire = function (e) { - var fireArgs = Array.prototype.slice.call(arguments); - // Apply stickiness. - if (this.state === 1) { - this.state = 2; - this.fireArgs = fireArgs; - } - if (this.numHandlers) { - // Copy the values first so that it is safe to modify it from within - // callbacks. - var toCall = []; - for (var item in this.handlers) { - toCall.push(this.handlers[item]); - } - for (var i = 0; i < toCall.length; ++i) { - toCall[i].apply(this, fireArgs); - } - if (this.state === 2 && this.numHandlers) { - this.numHandlers = 0; - this.handlers = {}; - this.onHasSubscribersChange && this.onHasSubscribersChange(); - } - } -}; - -// defining them here so they are ready super fast! -// DOM event that is received when the web page is loaded and parsed. -channel.createSticky('onDOMContentLoaded'); - -// Event to indicate the Cordova native side is ready. -channel.createSticky('onNativeReady'); - -// Event to indicate that all Cordova JavaScript objects have been created -// and it's time to run plugin constructors. -channel.createSticky('onCordovaReady'); - -// Event to indicate that all automatically loaded JS plugins are loaded and ready. -// FIXME remove this -channel.createSticky('onPluginsReady'); - -// Event to indicate that Cordova is ready -channel.createSticky('onDeviceReady'); - -// Event to indicate a resume lifecycle event -channel.create('onResume'); - -// Event to indicate a pause lifecycle event -channel.create('onPause'); - -// Channels that must fire before "deviceready" is fired. -channel.waitForInitialization('onCordovaReady'); -channel.waitForInitialization('onDOMContentLoaded'); - -module.exports = channel; - -}); - -// file: ../cordova-android/cordova-js-src/exec.js -define("cordova/exec", function(require, exports, module) { - -/** - * Execute a cordova command. It is up to the native side whether this action - * is synchronous or asynchronous. The native side can return: - * Synchronous: PluginResult object as a JSON string - * Asynchronous: Empty string "" - * If async, the native side will cordova.callbackSuccess or cordova.callbackError, - * depending upon the result of the action. - * - * @param {Function} success The success callback - * @param {Function} fail The fail callback - * @param {String} service The name of the service to use - * @param {String} action Action to be run in cordova - * @param {String[]} [args] Zero or more arguments to pass to the method - */ -var cordova = require('cordova'); -var nativeApiProvider = require('cordova/android/nativeapiprovider'); -var utils = require('cordova/utils'); -var base64 = require('cordova/base64'); -var channel = require('cordova/channel'); -var jsToNativeModes = { - PROMPT: 0, - JS_OBJECT: 1 -}; -var nativeToJsModes = { - // Polls for messages using the JS->Native bridge. - POLLING: 0, - // For LOAD_URL to be viable, it would need to have a work-around for - // the bug where the soft-keyboard gets dismissed when a message is sent. - LOAD_URL: 1, - // For the ONLINE_EVENT to be viable, it would need to intercept all event - // listeners (both through addEventListener and window.ononline) as well - // as set the navigator property itself. - ONLINE_EVENT: 2, - EVAL_BRIDGE: 3 -}; -var jsToNativeBridgeMode; // Set lazily. -var nativeToJsBridgeMode = nativeToJsModes.EVAL_BRIDGE; -var pollEnabled = false; -var bridgeSecret = -1; - -var messagesFromNative = []; -var isProcessing = false; -var resolvedPromise = typeof Promise === 'undefined' ? null : Promise.resolve(); -var nextTick = resolvedPromise ? function (fn) { resolvedPromise.then(fn); } : function (fn) { setTimeout(fn); }; - -function androidExec (success, fail, service, action, args) { - if (bridgeSecret < 0) { - // If we ever catch this firing, we'll need to queue up exec()s - // and fire them once we get a secret. For now, I don't think - // it's possible for exec() to be called since plugins are parsed but - // not run until until after onNativeReady. - throw new Error('exec() called without bridgeSecret'); - } - // Set default bridge modes if they have not already been set. - // By default, we use the failsafe, since addJavascriptInterface breaks too often - if (jsToNativeBridgeMode === undefined) { - androidExec.setJsToNativeBridgeMode(jsToNativeModes.JS_OBJECT); - } - - // If args is not provided, default to an empty array - args = args || []; - - // Process any ArrayBuffers in the args into a string. - for (var i = 0; i < args.length; i++) { - if (utils.typeName(args[i]) === 'ArrayBuffer') { - args[i] = base64.fromArrayBuffer(args[i]); - } - } - - var callbackId = service + cordova.callbackId++; - var argsJson = JSON.stringify(args); - if (success || fail) { - cordova.callbacks[callbackId] = { success: success, fail: fail }; - } - - var msgs = nativeApiProvider.get().exec(bridgeSecret, service, action, callbackId, argsJson); - // If argsJson was received by Java as null, try again with the PROMPT bridge mode. - // This happens in rare circumstances, such as when certain Unicode characters are passed over the bridge on a Galaxy S2. See CB-2666. - if (jsToNativeBridgeMode === jsToNativeModes.JS_OBJECT && msgs === '@Null arguments.') { - androidExec.setJsToNativeBridgeMode(jsToNativeModes.PROMPT); - androidExec(success, fail, service, action, args); - androidExec.setJsToNativeBridgeMode(jsToNativeModes.JS_OBJECT); - } else if (msgs) { - messagesFromNative.push(msgs); - // Always process async to avoid exceptions messing up stack. - nextTick(processMessages); - } -} - -androidExec.init = function () { - bridgeSecret = +prompt('', 'gap_init:' + nativeToJsBridgeMode); - channel.onNativeReady.fire(); -}; - -function pollOnceFromOnlineEvent () { - pollOnce(true); -} - -function pollOnce (opt_fromOnlineEvent) { - if (bridgeSecret < 0) { - // This can happen when the NativeToJsMessageQueue resets the online state on page transitions. - // We know there's nothing to retrieve, so no need to poll. - return; - } - var msgs = nativeApiProvider.get().retrieveJsMessages(bridgeSecret, !!opt_fromOnlineEvent); - if (msgs) { - messagesFromNative.push(msgs); - // Process sync since we know we're already top-of-stack. - processMessages(); - } -} - -function pollingTimerFunc () { - if (pollEnabled) { - pollOnce(); - setTimeout(pollingTimerFunc, 50); - } -} - -function hookOnlineApis () { - function proxyEvent (e) { - cordova.fireWindowEvent(e.type); - } - // The network module takes care of firing online and offline events. - // It currently fires them only on document though, so we bridge them - // to window here (while first listening for exec()-releated online/offline - // events). - window.addEventListener('online', pollOnceFromOnlineEvent, false); - window.addEventListener('offline', pollOnceFromOnlineEvent, false); - cordova.addWindowEventHandler('online'); - cordova.addWindowEventHandler('offline'); - document.addEventListener('online', proxyEvent, false); - document.addEventListener('offline', proxyEvent, false); -} - -hookOnlineApis(); - -androidExec.jsToNativeModes = jsToNativeModes; -androidExec.nativeToJsModes = nativeToJsModes; - -androidExec.setJsToNativeBridgeMode = function (mode) { - if (mode === jsToNativeModes.JS_OBJECT && !window._cordovaNative) { - mode = jsToNativeModes.PROMPT; - } - nativeApiProvider.setPreferPrompt(mode === jsToNativeModes.PROMPT); - jsToNativeBridgeMode = mode; -}; - -androidExec.setNativeToJsBridgeMode = function (mode) { - if (mode === nativeToJsBridgeMode) { - return; - } - if (nativeToJsBridgeMode === nativeToJsModes.POLLING) { - pollEnabled = false; - } - - nativeToJsBridgeMode = mode; - // Tell the native side to switch modes. - // Otherwise, it will be set by androidExec.init() - if (bridgeSecret >= 0) { - nativeApiProvider.get().setNativeToJsBridgeMode(bridgeSecret, mode); - } - - if (mode === nativeToJsModes.POLLING) { - pollEnabled = true; - setTimeout(pollingTimerFunc, 1); - } -}; - -function buildPayload (payload, message) { - var payloadKind = message.charAt(0); - if (payloadKind === 's') { - payload.push(message.slice(1)); - } else if (payloadKind === 't') { - payload.push(true); - } else if (payloadKind === 'f') { - payload.push(false); - } else if (payloadKind === 'N') { - payload.push(null); - } else if (payloadKind === 'n') { - payload.push(+message.slice(1)); - } else if (payloadKind === 'A') { - var data = message.slice(1); - payload.push(base64.toArrayBuffer(data)); - } else if (payloadKind === 'S') { - payload.push(window.atob(message.slice(1))); - } else if (payloadKind === 'M') { - var multipartMessages = message.slice(1); - while (multipartMessages !== '') { - var spaceIdx = multipartMessages.indexOf(' '); - var msgLen = +multipartMessages.slice(0, spaceIdx); - var multipartMessage = multipartMessages.substr(spaceIdx + 1, msgLen); - multipartMessages = multipartMessages.slice(spaceIdx + msgLen + 1); - buildPayload(payload, multipartMessage); - } - } else { - payload.push(JSON.parse(message)); - } -} - -// Processes a single message, as encoded by NativeToJsMessageQueue.java. -function processMessage (message) { - var firstChar = message.charAt(0); - if (firstChar === 'J') { - // This is deprecated on the .java side. It doesn't work with CSP enabled. - // eslint-disable-next-line no-eval - eval(message.slice(1)); - } else if (firstChar === 'S' || firstChar === 'F') { - var success = firstChar === 'S'; - var keepCallback = message.charAt(1) === '1'; - var spaceIdx = message.indexOf(' ', 2); - var status = +message.slice(2, spaceIdx); - var nextSpaceIdx = message.indexOf(' ', spaceIdx + 1); - var callbackId = message.slice(spaceIdx + 1, nextSpaceIdx); - var payloadMessage = message.slice(nextSpaceIdx + 1); - var payload = []; - buildPayload(payload, payloadMessage); - cordova.callbackFromNative(callbackId, success, status, payload, keepCallback); - } else { - console.log('processMessage failed: invalid message: ' + JSON.stringify(message)); - } -} - -function processMessages () { - // Check for the reentrant case. - if (isProcessing) { - return; - } - if (messagesFromNative.length === 0) { - return; - } - isProcessing = true; - try { - var msg = popMessageFromQueue(); - // The Java side can send a * message to indicate that it - // still has messages waiting to be retrieved. - if (msg === '*' && messagesFromNative.length === 0) { - nextTick(pollOnce); - return; - } - processMessage(msg); - } finally { - isProcessing = false; - if (messagesFromNative.length > 0) { - nextTick(processMessages); - } - } -} - -function popMessageFromQueue () { - var messageBatch = messagesFromNative.shift(); - if (messageBatch === '*') { - return '*'; - } - - var spaceIdx = messageBatch.indexOf(' '); - var msgLen = +messageBatch.slice(0, spaceIdx); - var message = messageBatch.substr(spaceIdx + 1, msgLen); - messageBatch = messageBatch.slice(spaceIdx + msgLen + 1); - if (messageBatch) { - messagesFromNative.unshift(messageBatch); - } - return message; -} - -module.exports = androidExec; - -}); - -// file: src/common/exec/proxy.js -define("cordova/exec/proxy", function(require, exports, module) { - -// internal map of proxy function -var CommandProxyMap = {}; - -module.exports = { - - // example: cordova.commandProxy.add("Accelerometer",{getCurrentAcceleration: function(successCallback, errorCallback, options) {...},...); - add: function (id, proxyObj) { - console.log('adding proxy for ' + id); - CommandProxyMap[id] = proxyObj; - return proxyObj; - }, - - // cordova.commandProxy.remove("Accelerometer"); - remove: function (id) { - var proxy = CommandProxyMap[id]; - delete CommandProxyMap[id]; - CommandProxyMap[id] = null; - return proxy; - }, - - get: function (service, action) { - return (CommandProxyMap[service] ? CommandProxyMap[service][action] : null); - } -}; - -}); - -// file: src/common/init.js -define("cordova/init", function(require, exports, module) { - -var channel = require('cordova/channel'); -var cordova = require('cordova'); -var modulemapper = require('cordova/modulemapper'); -var platform = require('cordova/platform'); -var pluginloader = require('cordova/pluginloader'); - -var platformInitChannelsArray = [channel.onNativeReady, channel.onPluginsReady]; - -function logUnfiredChannels (arr) { - for (var i = 0; i < arr.length; ++i) { - if (arr[i].state !== 2) { - console.log('Channel not fired: ' + arr[i].type); - } - } -} - -window.setTimeout(function () { - if (channel.onDeviceReady.state !== 2) { - console.log('deviceready has not fired after 5 seconds.'); - logUnfiredChannels(platformInitChannelsArray); - logUnfiredChannels(channel.deviceReadyChannelsArray); - } -}, 5000); - -if (!window.console) { - window.console = { - log: function () {} - }; -} -if (!window.console.warn) { - window.console.warn = function (msg) { - this.log('warn: ' + msg); - }; -} - -// Register pause, resume and deviceready channels as events on document. -channel.onPause = cordova.addDocumentEventHandler('pause'); -channel.onResume = cordova.addDocumentEventHandler('resume'); -channel.onActivated = cordova.addDocumentEventHandler('activated'); -channel.onDeviceReady = cordova.addStickyDocumentEventHandler('deviceready'); - -// Listen for DOMContentLoaded and notify our channel subscribers. -if (document.readyState === 'complete' || document.readyState === 'interactive') { - channel.onDOMContentLoaded.fire(); -} else { - document.addEventListener('DOMContentLoaded', function () { - channel.onDOMContentLoaded.fire(); - }, false); -} - -// _nativeReady is global variable that the native side can set -// to signify that the native code is ready. It is a global since -// it may be called before any cordova JS is ready. -if (window._nativeReady) { - channel.onNativeReady.fire(); -} - -modulemapper.clobbers('cordova', 'cordova'); -modulemapper.clobbers('cordova/exec', 'cordova.exec'); -modulemapper.clobbers('cordova/exec', 'Cordova.exec'); - -// Call the platform-specific initialization. -platform.bootstrap && platform.bootstrap(); - -// Wrap in a setTimeout to support the use-case of having plugin JS appended to cordova.js. -// The delay allows the attached modules to be defined before the plugin loader looks for them. -setTimeout(function () { - pluginloader.load(function () { - channel.onPluginsReady.fire(); - }); -}, 0); - -/** - * Create all cordova objects once native side is ready. - */ -channel.join(function () { - modulemapper.mapModules(window); - - platform.initialize && platform.initialize(); - - // Fire event to notify that all objects are created - channel.onCordovaReady.fire(); - - // Fire onDeviceReady event once page has fully loaded, all - // constructors have run and cordova info has been received from native - // side. - channel.join(function () { - require('cordova').fireDocumentEvent('deviceready'); - }, channel.deviceReadyChannelsArray); -}, platformInitChannelsArray); - -}); - -// file: src/common/modulemapper.js -define("cordova/modulemapper", function(require, exports, module) { - -var builder = require('cordova/builder'); -var moduleMap = define.moduleMap; -var symbolList; -var deprecationMap; - -exports.reset = function () { - symbolList = []; - deprecationMap = {}; -}; - -function addEntry (strategy, moduleName, symbolPath, opt_deprecationMessage) { - if (!(moduleName in moduleMap)) { - throw new Error('Module ' + moduleName + ' does not exist.'); - } - symbolList.push(strategy, moduleName, symbolPath); - if (opt_deprecationMessage) { - deprecationMap[symbolPath] = opt_deprecationMessage; - } -} - -// Note: Android 2.3 does have Function.bind(). -exports.clobbers = function (moduleName, symbolPath, opt_deprecationMessage) { - addEntry('c', moduleName, symbolPath, opt_deprecationMessage); -}; - -exports.merges = function (moduleName, symbolPath, opt_deprecationMessage) { - addEntry('m', moduleName, symbolPath, opt_deprecationMessage); -}; - -exports.defaults = function (moduleName, symbolPath, opt_deprecationMessage) { - addEntry('d', moduleName, symbolPath, opt_deprecationMessage); -}; - -exports.runs = function (moduleName) { - addEntry('r', moduleName, null); -}; - -function prepareNamespace (symbolPath, context) { - if (!symbolPath) { - return context; - } - return symbolPath.split('.').reduce(function (cur, part) { - return (cur[part] = cur[part] || {}); - }, context); -} - -exports.mapModules = function (context) { - var origSymbols = {}; - context.CDV_origSymbols = origSymbols; - for (var i = 0, len = symbolList.length; i < len; i += 3) { - var strategy = symbolList[i]; - var moduleName = symbolList[i + 1]; - var module = require(moduleName); - // <runs/> - if (strategy === 'r') { - continue; - } - var symbolPath = symbolList[i + 2]; - var lastDot = symbolPath.lastIndexOf('.'); - var namespace = symbolPath.substr(0, lastDot); - var lastName = symbolPath.substr(lastDot + 1); - - var deprecationMsg = symbolPath in deprecationMap ? 'Access made to deprecated symbol: ' + symbolPath + '. ' + deprecationMsg : null; - var parentObj = prepareNamespace(namespace, context); - var target = parentObj[lastName]; - - if (strategy === 'm' && target) { - builder.recursiveMerge(target, module); - } else if ((strategy === 'd' && !target) || (strategy !== 'd')) { - if (!(symbolPath in origSymbols)) { - origSymbols[symbolPath] = target; - } - builder.assignOrWrapInDeprecateGetter(parentObj, lastName, module, deprecationMsg); - } - } -}; - -exports.getOriginalSymbol = function (context, symbolPath) { - var origSymbols = context.CDV_origSymbols; - if (origSymbols && (symbolPath in origSymbols)) { - return origSymbols[symbolPath]; - } - var parts = symbolPath.split('.'); - var obj = context; - for (var i = 0; i < parts.length; ++i) { - obj = obj && obj[parts[i]]; - } - return obj; -}; - -exports.reset(); - -}); - -// file: ../cordova-android/cordova-js-src/platform.js -define("cordova/platform", function(require, exports, module) { - -// The last resume event that was received that had the result of a plugin call. -var lastResumeEvent = null; - -module.exports = { - id: 'android', - bootstrap: function () { - var channel = require('cordova/channel'); - var cordova = require('cordova'); - var exec = require('cordova/exec'); - var modulemapper = require('cordova/modulemapper'); - - // Get the shared secret needed to use the bridge. - exec.init(); - - // TODO: Extract this as a proper plugin. - modulemapper.clobbers('cordova/plugin/android/app', 'navigator.app'); - - var APP_PLUGIN_NAME = Number(cordova.platformVersion.split('.')[0]) >= 4 ? 'CoreAndroid' : 'App'; - - // Inject a listener for the backbutton on the document. - var backButtonChannel = cordova.addDocumentEventHandler('backbutton'); - backButtonChannel.onHasSubscribersChange = function () { - // If we just attached the first handler or detached the last handler, - // let native know we need to override the back button. - exec(null, null, APP_PLUGIN_NAME, 'overrideBackbutton', [this.numHandlers === 1]); - }; - - // Add hardware MENU and SEARCH button handlers - cordova.addDocumentEventHandler('menubutton'); - cordova.addDocumentEventHandler('searchbutton'); - - function bindButtonChannel (buttonName) { - // generic button bind used for volumeup/volumedown buttons - var volumeButtonChannel = cordova.addDocumentEventHandler(buttonName + 'button'); - volumeButtonChannel.onHasSubscribersChange = function () { - exec(null, null, APP_PLUGIN_NAME, 'overrideButton', [buttonName, this.numHandlers === 1]); - }; - } - // Inject a listener for the volume buttons on the document. - bindButtonChannel('volumeup'); - bindButtonChannel('volumedown'); - - // The resume event is not "sticky", but it is possible that the event - // will contain the result of a plugin call. We need to ensure that the - // plugin result is delivered even after the event is fired (CB-10498) - var cordovaAddEventListener = document.addEventListener; - - document.addEventListener = function (evt, handler, capture) { - cordovaAddEventListener(evt, handler, capture); - - if (evt === 'resume' && lastResumeEvent) { - handler(lastResumeEvent); - } - }; - - // Let native code know we are all done on the JS side. - // Native code will then un-hide the WebView. - channel.onCordovaReady.subscribe(function () { - exec(onMessageFromNative, null, APP_PLUGIN_NAME, 'messageChannel', []); - exec(null, null, APP_PLUGIN_NAME, 'show', []); - }); - } -}; - -function onMessageFromNative (msg) { - var cordova = require('cordova'); - var action = msg.action; - - switch (action) { - // pause and resume are Android app life cycle events - case 'backbutton': - case 'menubutton': - case 'searchbutton': - case 'pause': - case 'volumedownbutton': - case 'volumeupbutton': - cordova.fireDocumentEvent(action); - break; - case 'resume': - if (arguments.length > 1 && msg.pendingResult) { - if (arguments.length === 2) { - msg.pendingResult.result = arguments[1]; - } else { - // The plugin returned a multipart message - var res = []; - for (var i = 1; i < arguments.length; i++) { - res.push(arguments[i]); - } - msg.pendingResult.result = res; - } - - // Save the plugin result so that it can be delivered to the js - // even if they miss the initial firing of the event - lastResumeEvent = msg; - } - cordova.fireDocumentEvent(action, msg); - break; - default: - throw new Error('Unknown event action ' + action); - } -} - -}); - -// file: ../cordova-android/cordova-js-src/plugin/android/app.js -define("cordova/plugin/android/app", function(require, exports, module) { - -var exec = require('cordova/exec'); -var APP_PLUGIN_NAME = Number(require('cordova').platformVersion.split('.')[0]) >= 4 ? 'CoreAndroid' : 'App'; - -module.exports = { - /** - * Clear the resource cache. - */ - clearCache: function () { - exec(null, null, APP_PLUGIN_NAME, 'clearCache', []); - }, - - /** - * Load the url into the webview or into new browser instance. - * - * @param url The URL to load - * @param props Properties that can be passed in to the activity: - * wait: int => wait msec before loading URL - * loadingDialog: "Title,Message" => display a native loading dialog - * loadUrlTimeoutValue: int => time in msec to wait before triggering a timeout error - * clearHistory: boolean => clear webview history (default=false) - * openExternal: boolean => open in a new browser (default=false) - * - * Example: - * navigator.app.loadUrl("http://server/myapp/index.html", {wait:2000, loadingDialog:"Wait,Loading App", loadUrlTimeoutValue: 60000}); - */ - loadUrl: function (url, props) { - exec(null, null, APP_PLUGIN_NAME, 'loadUrl', [url, props]); - }, - - /** - * Cancel loadUrl that is waiting to be loaded. - */ - cancelLoadUrl: function () { - exec(null, null, APP_PLUGIN_NAME, 'cancelLoadUrl', []); - }, - - /** - * Clear web history in this web view. - * Instead of BACK button loading the previous web page, it will exit the app. - */ - clearHistory: function () { - exec(null, null, APP_PLUGIN_NAME, 'clearHistory', []); - }, - - /** - * Go to previous page displayed. - * This is the same as pressing the backbutton on Android device. - */ - backHistory: function () { - exec(null, null, APP_PLUGIN_NAME, 'backHistory', []); - }, - - /** - * Override the default behavior of the Android back button. - * If overridden, when the back button is pressed, the "backKeyDown" JavaScript event will be fired. - * - * Note: The user should not have to call this method. Instead, when the user - * registers for the "backbutton" event, this is automatically done. - * - * @param override T=override, F=cancel override - */ - overrideBackbutton: function (override) { - exec(null, null, APP_PLUGIN_NAME, 'overrideBackbutton', [override]); - }, - - /** - * Override the default behavior of the Android volume button. - * If overridden, when the volume button is pressed, the "volume[up|down]button" - * JavaScript event will be fired. - * - * Note: The user should not have to call this method. Instead, when the user - * registers for the "volume[up|down]button" event, this is automatically done. - * - * @param button volumeup, volumedown - * @param override T=override, F=cancel override - */ - overrideButton: function (button, override) { - exec(null, null, APP_PLUGIN_NAME, 'overrideButton', [button, override]); - }, - - /** - * Exit and terminate the application. - */ - exitApp: function () { - return exec(null, null, APP_PLUGIN_NAME, 'exitApp', []); - } -}; - -}); - -// file: src/common/pluginloader.js -define("cordova/pluginloader", function(require, exports, module) { - -var modulemapper = require('cordova/modulemapper'); - -// Helper function to inject a <script> tag. -// Exported for testing. -exports.injectScript = function (url, onload, onerror) { - var script = document.createElement('script'); - // onload fires even when script fails loads with an error. - script.onload = onload; - // onerror fires for malformed URLs. - script.onerror = onerror; - script.src = url; - document.head.appendChild(script); -}; - -function injectIfNecessary (id, url, onload, onerror) { - onerror = onerror || onload; - if (id in define.moduleMap) { - onload(); - } else { - exports.injectScript(url, function () { - if (id in define.moduleMap) { - onload(); - } else { - onerror(); - } - }, onerror); - } -} - -function onScriptLoadingComplete (moduleList, finishPluginLoading) { - // Loop through all the plugins and then through their clobbers and merges. - for (var i = 0, module; (module = moduleList[i]); i++) { - if (module.clobbers && module.clobbers.length) { - for (var j = 0; j < module.clobbers.length; j++) { - modulemapper.clobbers(module.id, module.clobbers[j]); - } - } - - if (module.merges && module.merges.length) { - for (var k = 0; k < module.merges.length; k++) { - modulemapper.merges(module.id, module.merges[k]); - } - } - - // Finally, if runs is truthy we want to simply require() the module. - if (module.runs) { - modulemapper.runs(module.id); - } - } - - finishPluginLoading(); -} - -// Handler for the cordova_plugins.js content. -// See plugman's plugin_loader.js for the details of this object. -// This function is only called if the really is a plugins array that isn't empty. -// Otherwise the onerror response handler will just call finishPluginLoading(). -function handlePluginsObject (path, moduleList, finishPluginLoading) { - // Now inject the scripts. - var scriptCounter = moduleList.length; - - if (!scriptCounter) { - finishPluginLoading(); - return; - } - function scriptLoadedCallback () { - if (!--scriptCounter) { - onScriptLoadingComplete(moduleList, finishPluginLoading); - } - } - - for (var i = 0; i < moduleList.length; i++) { - injectIfNecessary(moduleList[i].id, path + moduleList[i].file, scriptLoadedCallback); - } -} - -function findCordovaPath () { - var path = null; - var scripts = document.getElementsByTagName('script'); - var term = '/cordova.js'; - for (var n = scripts.length - 1; n > -1; n--) { - var src = scripts[n].src.replace(/\?.*$/, ''); // Strip any query param (CB-6007). - if (src.indexOf(term) === (src.length - term.length)) { - path = src.substring(0, src.length - term.length) + '/'; - break; - } - } - return path; -} - -// Tries to load all plugins' js-modules. -// This is an async process, but onDeviceReady is blocked on onPluginsReady. -// onPluginsReady is fired when there are no plugins to load, or they are all done. -exports.load = function (callback) { - var pathPrefix = findCordovaPath(); - if (pathPrefix === null) { - console.log('Could not find cordova.js script tag. Plugin loading may fail.'); - pathPrefix = ''; - } - injectIfNecessary('cordova/plugin_list', pathPrefix + 'cordova_plugins.js', function () { - var moduleList = require('cordova/plugin_list'); - handlePluginsObject(pathPrefix, moduleList, callback); - }, callback); -}; - -}); - -// file: src/common/urlutil.js -define("cordova/urlutil", function(require, exports, module) { - -/** - * For already absolute URLs, returns what is passed in. - * For relative URLs, converts them to absolute ones. - */ -exports.makeAbsolute = function makeAbsolute (url) { - var anchorEl = document.createElement('a'); - anchorEl.href = url; - return anchorEl.href; -}; - -}); - -// file: src/common/utils.js -define("cordova/utils", function(require, exports, module) { - -var utils = exports; - -/** - * Defines a property getter / setter for obj[key]. - */ -utils.defineGetterSetter = function (obj, key, getFunc, opt_setFunc) { - if (Object.defineProperty) { - var desc = { - get: getFunc, - configurable: true - }; - if (opt_setFunc) { - desc.set = opt_setFunc; - } - Object.defineProperty(obj, key, desc); - } else { - obj.__defineGetter__(key, getFunc); - if (opt_setFunc) { - obj.__defineSetter__(key, opt_setFunc); - } - } -}; - -/** - * Defines a property getter for obj[key]. - */ -utils.defineGetter = utils.defineGetterSetter; - -utils.arrayIndexOf = function (a, item) { - if (a.indexOf) { - return a.indexOf(item); - } - var len = a.length; - for (var i = 0; i < len; ++i) { - if (a[i] === item) { - return i; - } - } - return -1; -}; - -/** - * Returns whether the item was found in the array. - */ -utils.arrayRemove = function (a, item) { - var index = utils.arrayIndexOf(a, item); - if (index !== -1) { - a.splice(index, 1); - } - return index !== -1; -}; - -utils.typeName = function (val) { - return Object.prototype.toString.call(val).slice(8, -1); -}; - -/** - * Returns an indication of whether the argument is an array or not - */ -utils.isArray = Array.isArray || - function (a) { return utils.typeName(a) === 'Array'; }; - -/** - * Returns an indication of whether the argument is a Date or not - */ -utils.isDate = function (d) { - return (d instanceof Date); -}; - -/** - * Does a deep clone of the object. - */ -utils.clone = function (obj) { - if (!obj || typeof obj === 'function' || utils.isDate(obj) || typeof obj !== 'object') { - return obj; - } - - var retVal, i; - - if (utils.isArray(obj)) { - retVal = []; - for (i = 0; i < obj.length; ++i) { - retVal.push(utils.clone(obj[i])); - } - return retVal; - } - - retVal = {}; - for (i in obj) { - // 'unknown' type may be returned in custom protocol activation case on - // Windows Phone 8.1 causing "No such interface supported" exception on - // cloning (https://issues.apache.org/jira/browse/CB-11522) - // eslint-disable-next-line valid-typeof - if ((!(i in retVal) || retVal[i] !== obj[i]) && typeof obj[i] !== 'undefined' && typeof obj[i] !== 'unknown') { - retVal[i] = utils.clone(obj[i]); - } - } - return retVal; -}; - -/** - * Returns a wrapped version of the function - */ -utils.close = function (context, func, params) { - return function () { - var args = params || arguments; - return func.apply(context, args); - }; -}; - -// ------------------------------------------------------------------------------ -function UUIDcreatePart (length) { - var uuidpart = ''; - for (var i = 0; i < length; i++) { - var uuidchar = parseInt((Math.random() * 256), 10).toString(16); - if (uuidchar.length === 1) { - uuidchar = '0' + uuidchar; - } - uuidpart += uuidchar; - } - return uuidpart; -} - -/** - * Create a UUID - */ -utils.createUUID = function () { - return UUIDcreatePart(4) + '-' + - UUIDcreatePart(2) + '-' + - UUIDcreatePart(2) + '-' + - UUIDcreatePart(2) + '-' + - UUIDcreatePart(6); -}; - -/** - * Extends a child object from a parent object using classical inheritance - * pattern. - */ -utils.extend = (function () { - // proxy used to establish prototype chain - var F = function () {}; - // extend Child from Parent - return function (Child, Parent) { - F.prototype = Parent.prototype; - Child.prototype = new F(); - Child.__super__ = Parent.prototype; - Child.prototype.constructor = Child; - }; -}()); - -/** - * Alerts a message in any available way: alert or console.log. - */ -utils.alert = function (msg) { - if (window.alert) { - window.alert(msg); - } else if (console && console.log) { - console.log(msg); - } -}; - -}); - -window.cordova = require('cordova'); -// file: src/scripts/bootstrap.js -require('cordova/init'); - -})(); diff --git a/ionic/platforms/android/platform_www/cordova_plugins.js b/ionic/platforms/android/platform_www/cordova_plugins.js deleted file mode 100644 index ac1888f6fb97e9a2603e2e909eec8fe5bc8e6266..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/platform_www/cordova_plugins.js +++ /dev/null @@ -1,52 +0,0 @@ -cordova.define('cordova/plugin_list', function(require, exports, module) { - module.exports = [ - { - "id": "cordova-plugin-statusbar.statusbar", - "file": "plugins/cordova-plugin-statusbar/www/statusbar.js", - "pluginId": "cordova-plugin-statusbar", - "clobbers": [ - "window.StatusBar" - ] - }, - { - "id": "cordova-plugin-device.device", - "file": "plugins/cordova-plugin-device/www/device.js", - "pluginId": "cordova-plugin-device", - "clobbers": [ - "device" - ] - }, - { - "id": "cordova-plugin-splashscreen.SplashScreen", - "file": "plugins/cordova-plugin-splashscreen/www/splashscreen.js", - "pluginId": "cordova-plugin-splashscreen", - "clobbers": [ - "navigator.splashscreen" - ] - }, - { - "id": "cordova-plugin-ionic-webview.IonicWebView", - "file": "plugins/cordova-plugin-ionic-webview/src/www/util.js", - "pluginId": "cordova-plugin-ionic-webview", - "clobbers": [ - "Ionic.WebView" - ] - }, - { - "id": "cordova-plugin-ionic-keyboard.keyboard", - "file": "plugins/cordova-plugin-ionic-keyboard/www/android/keyboard.js", - "pluginId": "cordova-plugin-ionic-keyboard", - "clobbers": [ - "window.Keyboard" - ] - } - ]; - module.exports.metadata = { - "cordova-plugin-whitelist": "1.3.3", - "cordova-plugin-statusbar": "2.4.2", - "cordova-plugin-device": "2.0.2", - "cordova-plugin-splashscreen": "5.0.2", - "cordova-plugin-ionic-webview": "4.2.1", - "cordova-plugin-ionic-keyboard": "2.2.0" - }; -}); \ No newline at end of file diff --git a/ionic/platforms/android/platform_www/plugins/cordova-plugin-device/www/device.js b/ionic/platforms/android/platform_www/plugins/cordova-plugin-device/www/device.js deleted file mode 100644 index ae48e354655088c859a95f06d1ed46de0c42bb46..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/platform_www/plugins/cordova-plugin-device/www/device.js +++ /dev/null @@ -1,86 +0,0 @@ -cordova.define("cordova-plugin-device.device", function(require, exports, module) { -/* - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - * -*/ - -var argscheck = require('cordova/argscheck'); -var channel = require('cordova/channel'); -var utils = require('cordova/utils'); -var exec = require('cordova/exec'); -var cordova = require('cordova'); - -channel.createSticky('onCordovaInfoReady'); -// Tell cordova channel to wait on the CordovaInfoReady event -channel.waitForInitialization('onCordovaInfoReady'); - -/** - * This represents the mobile device, and provides properties for inspecting the model, version, UUID of the - * phone, etc. - * @constructor - */ -function Device () { - this.available = false; - this.platform = null; - this.version = null; - this.uuid = null; - this.cordova = null; - this.model = null; - this.manufacturer = null; - this.isVirtual = null; - this.serial = null; - - var me = this; - - channel.onCordovaReady.subscribe(function () { - me.getInfo(function (info) { - // ignoring info.cordova returning from native, we should use value from cordova.version defined in cordova.js - // TODO: CB-5105 native implementations should not return info.cordova - var buildLabel = cordova.version; - me.available = true; - me.platform = info.platform; - me.version = info.version; - me.uuid = info.uuid; - me.cordova = buildLabel; - me.model = info.model; - me.isVirtual = info.isVirtual; - me.manufacturer = info.manufacturer || 'unknown'; - me.serial = info.serial || 'unknown'; - channel.onCordovaInfoReady.fire(); - }, function (e) { - me.available = false; - utils.alert('[ERROR] Error initializing Cordova: ' + e); - }); - }); -} - -/** - * Get device info - * - * @param {Function} successCallback The function to call when the heading data is available - * @param {Function} errorCallback The function to call when there is an error getting the heading data. (OPTIONAL) - */ -Device.prototype.getInfo = function (successCallback, errorCallback) { - argscheck.checkArgs('fF', 'Device.getInfo', arguments); - exec(successCallback, errorCallback, 'Device', 'getDeviceInfo', []); -}; - -module.exports = new Device(); - -}); diff --git a/ionic/platforms/android/platform_www/plugins/cordova-plugin-ionic-keyboard/www/android/keyboard.js b/ionic/platforms/android/platform_www/plugins/cordova-plugin-ionic-keyboard/www/android/keyboard.js deleted file mode 100644 index 19062bf15874ad66e03019743e8d3678738d8d39..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/platform_www/plugins/cordova-plugin-ionic-keyboard/www/android/keyboard.js +++ /dev/null @@ -1,87 +0,0 @@ -cordova.define("cordova-plugin-ionic-keyboard.keyboard", function(require, exports, module) { -var argscheck = require('cordova/argscheck'), - utils = require('cordova/utils'), - exec = require('cordova/exec'), - channel = require('cordova/channel'); - -var Keyboard = function () {}; - -Keyboard.fireOnShow = function (height) { - Keyboard.isVisible = true; - cordova.fireWindowEvent('keyboardDidShow', { - 'keyboardHeight': height - }); - - // To support the keyboardAttach directive listening events - // inside Ionic's main bundle - cordova.fireWindowEvent('native.keyboardshow', { - 'keyboardHeight': height - }); -}; - -Keyboard.fireOnHide = function () { - Keyboard.isVisible = false; - cordova.fireWindowEvent('keyboardDidHide'); - - // To support the keyboardAttach directive listening events - // inside Ionic's main bundle - cordova.fireWindowEvent('native.keyboardhide'); -}; - -Keyboard.fireOnHiding = function () { - cordova.fireWindowEvent('keyboardWillHide'); -}; - -Keyboard.fireOnShowing = function (height) { - cordova.fireWindowEvent('keyboardWillShow', { - 'keyboardHeight': height - }); -}; - -Keyboard.hideFormAccessoryBar = Keyboard.hideKeyboardAccessoryBar = function (hide) { - console.warn("Keyboard.hideKeyboardAccessoryBar() not supported in Android"); -}; - -Keyboard.hide = function () { - exec(null, null, "CDVIonicKeyboard", "hide", []); -}; - -Keyboard.show = function () { - exec(null, null, "CDVIonicKeyboard", "show", []); -}; - -Keyboard.disableScroll = function (disable) { - console.warn("Keyboard.disableScroll() not supported in Android"); -}; - -Keyboard.setResizeMode = function (mode) { - console.warn("Keyboard.setResizeMode() not supported in Android"); -} - -Keyboard.setKeyboardStyle = function(style) { - console.warn("Keyboard.setKeyboardStyle() not supported in Android"); -}; - -channel.onCordovaReady.subscribe(function () { - exec(success, null, 'CDVIonicKeyboard', 'init', []); - - function success(msg) { - var action = msg.charAt(0); - if (action === 'S') { - var keyboardHeight = parseInt(msg.substr(1)); - Keyboard.fireOnShowing(keyboardHeight); - Keyboard.fireOnShow(keyboardHeight); - - } else if (action === 'H') { - Keyboard.fireOnHiding(); - Keyboard.fireOnHide(); - } - } -}); - - -Keyboard.isVisible = false; - -module.exports = Keyboard; - -}); diff --git a/ionic/platforms/android/platform_www/plugins/cordova-plugin-ionic-webview/src/www/util.js b/ionic/platforms/android/platform_www/plugins/cordova-plugin-ionic-webview/src/www/util.js deleted file mode 100644 index 0795894a222a2bbe6a144fee9b9c90ff351491fa..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/platform_www/plugins/cordova-plugin-ionic-webview/src/www/util.js +++ /dev/null @@ -1,33 +0,0 @@ -cordova.define("cordova-plugin-ionic-webview.IonicWebView", function(require, exports, module) { -var exec = require('cordova/exec'); - -var WebView = { - convertFileSrc: function(url) { - if (!url) { - return url; - } - if (url.indexOf('/')===0) { - return window.WEBVIEW_SERVER_URL + '/_app_file_' + url; - } - if (url.indexOf('file://')===0) { - return window.WEBVIEW_SERVER_URL + url.replace('file://', '/_app_file_'); - } - if (url.indexOf('content://')===0) { - return window.WEBVIEW_SERVER_URL + url.replace('content:/', '/_app_content_'); - } - return url; - }, - setServerBasePath: function(path) { - exec(null, null, 'IonicWebView', 'setServerBasePath', [path]); - }, - getServerBasePath: function(callback) { - exec(callback, null, 'IonicWebView', 'getServerBasePath', []); - }, - persistServerBasePath: function() { - exec(null, null, 'IonicWebView', 'persistServerBasePath', []); - } -} - -module.exports = WebView; - -}); diff --git a/ionic/platforms/android/platform_www/plugins/cordova-plugin-splashscreen/www/splashscreen.js b/ionic/platforms/android/platform_www/plugins/cordova-plugin-splashscreen/www/splashscreen.js deleted file mode 100644 index 5beaa5fd21df9edd81c94f62ce2769395bc72e66..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/platform_www/plugins/cordova-plugin-splashscreen/www/splashscreen.js +++ /dev/null @@ -1,36 +0,0 @@ -cordova.define("cordova-plugin-splashscreen.SplashScreen", function(require, exports, module) { -/* - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - * -*/ - -var exec = require('cordova/exec'); - -var splashscreen = { - show:function() { - exec(null, null, "SplashScreen", "show", []); - }, - hide:function() { - exec(null, null, "SplashScreen", "hide", []); - } -}; - -module.exports = splashscreen; - -}); diff --git a/ionic/platforms/android/platform_www/plugins/cordova-plugin-statusbar/www/statusbar.js b/ionic/platforms/android/platform_www/plugins/cordova-plugin-statusbar/www/statusbar.js deleted file mode 100644 index 708186f9e22102d93e5787bb855811e1cc86b69d..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/platform_www/plugins/cordova-plugin-statusbar/www/statusbar.js +++ /dev/null @@ -1,116 +0,0 @@ -cordova.define("cordova-plugin-statusbar.statusbar", function(require, exports, module) { -/* - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - * -*/ - -/* global cordova */ - -var exec = require('cordova/exec'); - -var namedColors = { - "black": "#000000", - "darkGray": "#A9A9A9", - "lightGray": "#D3D3D3", - "white": "#FFFFFF", - "gray": "#808080", - "red": "#FF0000", - "green": "#00FF00", - "blue": "#0000FF", - "cyan": "#00FFFF", - "yellow": "#FFFF00", - "magenta": "#FF00FF", - "orange": "#FFA500", - "purple": "#800080", - "brown": "#A52A2A" -}; - -var StatusBar = { - - isVisible: true, - - overlaysWebView: function (doOverlay) { - exec(null, null, "StatusBar", "overlaysWebView", [doOverlay]); - }, - - styleDefault: function () { - // dark text ( to be used on a light background ) - exec(null, null, "StatusBar", "styleDefault", []); - }, - - styleLightContent: function () { - // light text ( to be used on a dark background ) - exec(null, null, "StatusBar", "styleLightContent", []); - }, - - styleBlackTranslucent: function () { - // #88000000 ? Apple says to use lightContent instead - exec(null, null, "StatusBar", "styleBlackTranslucent", []); - }, - - styleBlackOpaque: function () { - // #FF000000 ? Apple says to use lightContent instead - exec(null, null, "StatusBar", "styleBlackOpaque", []); - }, - - backgroundColorByName: function (colorname) { - return StatusBar.backgroundColorByHexString(namedColors[colorname]); - }, - - backgroundColorByHexString: function (hexString) { - if (hexString.charAt(0) !== "#") { - hexString = "#" + hexString; - } - - if (hexString.length === 4) { - var split = hexString.split(""); - hexString = "#" + split[1] + split[1] + split[2] + split[2] + split[3] + split[3]; - } - - exec(null, null, "StatusBar", "backgroundColorByHexString", [hexString]); - }, - - hide: function () { - exec(null, null, "StatusBar", "hide", []); - StatusBar.isVisible = false; - }, - - show: function () { - exec(null, null, "StatusBar", "show", []); - StatusBar.isVisible = true; - } - -}; - -// prime it. setTimeout so that proxy gets time to init -window.setTimeout(function () { - exec(function (res) { - if (typeof res == 'object') { - if (res.type == 'tap') { - cordova.fireWindowEvent('statusTap'); - } - } else { - StatusBar.isVisible = res; - } - }, null, "StatusBar", "_ready", []); -}, 0); - -module.exports = StatusBar; - -}); diff --git a/ionic/platforms/android/project.properties b/ionic/platforms/android/project.properties deleted file mode 100644 index 426d0376522f606170d8358b1692dbc0ebbef568..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/project.properties +++ /dev/null @@ -1,14 +0,0 @@ -# This file was originally created by the Android Tools, but is now -# used by cordova-android to manage the state of the various third party -# libraries used in your application - -# This is the Library Module that contains the Cordova Library, this is not -# required when using an AAR - -# This is the application project. This is only required for Android Studio Gradle projects - -# Project target. -target=android-29 -android.library.reference.1=CordovaLib -android.library.reference.2=app -cordova.system.library.1=com.android.support:support-annotations:27.+ \ No newline at end of file diff --git a/ionic/platforms/android/settings.gradle b/ionic/platforms/android/settings.gradle deleted file mode 100644 index dfb85579d52a69fa2e2b79904b598aecf6c0c79c..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/settings.gradle +++ /dev/null @@ -1,4 +0,0 @@ -// GENERATED FILE - DO NOT EDIT -include ":" -include ":CordovaLib" -include ":app" diff --git a/ionic/platforms/android/wrapper.gradle b/ionic/platforms/android/wrapper.gradle deleted file mode 100644 index d7ebabd72aebaecb63f98f0401642e89021ca20c..0000000000000000000000000000000000000000 --- a/ionic/platforms/android/wrapper.gradle +++ /dev/null @@ -1 +0,0 @@ -//This file is intentionally just a comment diff --git a/ionic/plugins/android.json b/ionic/plugins/android.json index 246ba824cd197069837033cad62b1dae1aa7431d..ca5e4a752262ae3c207f83eb5e1f966b8486705a 100644 --- a/ionic/plugins/android.json +++ b/ionic/plugins/android.json @@ -7,23 +7,23 @@ "files": {} }, "installed_plugins": { - "cordova-plugin-whitelist": { + "cordova-plugin-device": { "PACKAGE_NAME": "io.ionic.starter" }, - "cordova-plugin-statusbar": { + "cordova-plugin-ionic-keyboard": { "PACKAGE_NAME": "io.ionic.starter" }, - "cordova-plugin-device": { + "cordova-plugin-ionic-webview": { + "ANDROID_SUPPORT_ANNOTATIONS_VERSION": "27.+", "PACKAGE_NAME": "io.ionic.starter" }, "cordova-plugin-splashscreen": { "PACKAGE_NAME": "io.ionic.starter" }, - "cordova-plugin-ionic-webview": { - "ANDROID_SUPPORT_ANNOTATIONS_VERSION": "27.+", + "cordova-plugin-statusbar": { "PACKAGE_NAME": "io.ionic.starter" }, - "cordova-plugin-ionic-keyboard": { + "cordova-plugin-whitelist": { "PACKAGE_NAME": "io.ionic.starter" } }, diff --git a/ionic/resources/android/icon/drawable-hdpi-icon.png b/ionic/resources/android/icon/drawable-hdpi-icon.png index 3f84fc1b2b36263e0eef1f0a9d23269b873ab613..c1b57bca310764a37ae98578691c5f7f5aaa9188 100644 Binary files a/ionic/resources/android/icon/drawable-hdpi-icon.png and b/ionic/resources/android/icon/drawable-hdpi-icon.png differ diff --git a/ionic/resources/android/icon/drawable-ldpi-icon.png b/ionic/resources/android/icon/drawable-ldpi-icon.png index 3de9b4f79ba0742e8cca99c24289d8a62d8e74d4..e0f874f6c969914d60547704ddce8b1a04aedf9b 100644 Binary files a/ionic/resources/android/icon/drawable-ldpi-icon.png and b/ionic/resources/android/icon/drawable-ldpi-icon.png differ diff --git a/ionic/resources/android/icon/drawable-mdpi-icon.png b/ionic/resources/android/icon/drawable-mdpi-icon.png index 4b455d317a5be633643484260d0b46d393b13312..d4289493fd8a28b6fea771049f2f02e154beeafd 100644 Binary files a/ionic/resources/android/icon/drawable-mdpi-icon.png and b/ionic/resources/android/icon/drawable-mdpi-icon.png differ diff --git a/ionic/resources/android/icon/drawable-xhdpi-icon.png b/ionic/resources/android/icon/drawable-xhdpi-icon.png index fe47ccce8d00fe26b3bdf4656a64e1d6a1d6e764..bf3725ba7de637d314e4daa3b3a81eda2e938bea 100644 Binary files a/ionic/resources/android/icon/drawable-xhdpi-icon.png and b/ionic/resources/android/icon/drawable-xhdpi-icon.png differ diff --git a/ionic/resources/android/icon/drawable-xxhdpi-icon.png b/ionic/resources/android/icon/drawable-xxhdpi-icon.png index 391b4af13a2b8f878c1db28ff3cfc6ba708dfec0..cdc1340aec4a77c05d7a21767c85d911bc702727 100644 Binary files a/ionic/resources/android/icon/drawable-xxhdpi-icon.png and b/ionic/resources/android/icon/drawable-xxhdpi-icon.png differ diff --git a/ionic/resources/android/icon/drawable-xxxhdpi-icon.png b/ionic/resources/android/icon/drawable-xxxhdpi-icon.png index 09e50b7b356d1ab45939fb63515b5e3a77b0d802..b9183ea93edab2ecc609b580cdad9f590278248b 100644 Binary files a/ionic/resources/android/icon/drawable-xxxhdpi-icon.png and b/ionic/resources/android/icon/drawable-xxxhdpi-icon.png differ diff --git a/ionic/resources/android/splash/drawable-land-hdpi-screen.png b/ionic/resources/android/splash/drawable-land-hdpi-screen.png index 74abe28ea792c29b9b3f117a3fd4b5fed614dc69..444dc39ab82b1d74207c38b05f0d5be5987db05e 100644 Binary files a/ionic/resources/android/splash/drawable-land-hdpi-screen.png and b/ionic/resources/android/splash/drawable-land-hdpi-screen.png differ diff --git a/ionic/resources/android/splash/drawable-land-ldpi-screen.png b/ionic/resources/android/splash/drawable-land-ldpi-screen.png index b224ba8c8f80db7b0251689d5d521cace0dcb550..80409d7bd4de72b4811f8de449a1d6e12990726d 100644 Binary files a/ionic/resources/android/splash/drawable-land-ldpi-screen.png and b/ionic/resources/android/splash/drawable-land-ldpi-screen.png differ diff --git a/ionic/resources/android/splash/drawable-land-mdpi-screen.png b/ionic/resources/android/splash/drawable-land-mdpi-screen.png index f18770eb127263a957c4b22d115495fed1ab443f..f9342e83a0919efc200b89e0fc8b5a6c4a1ffe47 100644 Binary files a/ionic/resources/android/splash/drawable-land-mdpi-screen.png and b/ionic/resources/android/splash/drawable-land-mdpi-screen.png differ diff --git a/ionic/resources/android/splash/drawable-land-xhdpi-screen.png b/ionic/resources/android/splash/drawable-land-xhdpi-screen.png index 76eab0d7271e38f78d28f2e9369029ce2f53979c..d7936aa719de314703bf81785eef232d9c88cc49 100644 Binary files a/ionic/resources/android/splash/drawable-land-xhdpi-screen.png and b/ionic/resources/android/splash/drawable-land-xhdpi-screen.png differ diff --git a/ionic/resources/android/splash/drawable-land-xxhdpi-screen.png b/ionic/resources/android/splash/drawable-land-xxhdpi-screen.png index b15925df5b477a3abe24f3ae7f8ec34800d93bd7..63a3b921a02701be4349843d6bc3bc4f31580cae 100644 Binary files a/ionic/resources/android/splash/drawable-land-xxhdpi-screen.png and b/ionic/resources/android/splash/drawable-land-xxhdpi-screen.png differ diff --git a/ionic/resources/android/splash/drawable-land-xxxhdpi-screen.png b/ionic/resources/android/splash/drawable-land-xxxhdpi-screen.png index 4b22b8b59ac6abca0731ac281c4977ba2bb1213e..22ec1444a3a070d6a648963f0aadea981ef48492 100644 Binary files a/ionic/resources/android/splash/drawable-land-xxxhdpi-screen.png and b/ionic/resources/android/splash/drawable-land-xxxhdpi-screen.png differ diff --git a/ionic/resources/android/splash/drawable-port-hdpi-screen.png b/ionic/resources/android/splash/drawable-port-hdpi-screen.png index c0c981b971feaa8ae304b857bd8b69d38a040229..a6b455ddfd2dce4ac2487922c29e1abcd6de9374 100644 Binary files a/ionic/resources/android/splash/drawable-port-hdpi-screen.png and b/ionic/resources/android/splash/drawable-port-hdpi-screen.png differ diff --git a/ionic/resources/android/splash/drawable-port-ldpi-screen.png b/ionic/resources/android/splash/drawable-port-ldpi-screen.png index dfba932196d9e55729d7244f6bd22b10e2b9827a..e1f6c084ca96a44ee0449f9f71a48c2a22887a8d 100644 Binary files a/ionic/resources/android/splash/drawable-port-ldpi-screen.png and b/ionic/resources/android/splash/drawable-port-ldpi-screen.png differ diff --git a/ionic/resources/android/splash/drawable-port-mdpi-screen.png b/ionic/resources/android/splash/drawable-port-mdpi-screen.png index e5129fd04e48cef60717825136198e4f52e1664e..f65e1fb76590fe9a6dbaf087129108368e1c2c6d 100644 Binary files a/ionic/resources/android/splash/drawable-port-mdpi-screen.png and b/ionic/resources/android/splash/drawable-port-mdpi-screen.png differ diff --git a/ionic/resources/android/splash/drawable-port-xhdpi-screen.png b/ionic/resources/android/splash/drawable-port-xhdpi-screen.png index 14ec839e86b6cbd3ab5749ab6755af5e32168bf6..bee8331174d9dacbc6240305ecddf6920b4059f9 100644 Binary files a/ionic/resources/android/splash/drawable-port-xhdpi-screen.png and b/ionic/resources/android/splash/drawable-port-xhdpi-screen.png differ diff --git a/ionic/resources/android/splash/drawable-port-xxhdpi-screen.png b/ionic/resources/android/splash/drawable-port-xxhdpi-screen.png index 4df256fbf957f5ada583c28af15743792361e0ce..2f94216711a02ac193814a7750fd3870c3b5d371 100644 Binary files a/ionic/resources/android/splash/drawable-port-xxhdpi-screen.png and b/ionic/resources/android/splash/drawable-port-xxhdpi-screen.png differ diff --git a/ionic/resources/android/splash/drawable-port-xxxhdpi-screen.png b/ionic/resources/android/splash/drawable-port-xxxhdpi-screen.png index 53f97f9d936562a2755e7d6308430fb3d2e58b0e..0295c01388fadd31e17d87747e57b5f6ea5d2fb4 100644 Binary files a/ionic/resources/android/splash/drawable-port-xxxhdpi-screen.png and b/ionic/resources/android/splash/drawable-port-xxxhdpi-screen.png differ diff --git a/ionic/src/app/app-routing.module.ts b/ionic/src/app/app-routing.module.ts index 13053a8518cf88eddb037f07e617990e4d98de38..b837762983e48a26886d33c206e99d869616d677 100644 --- a/ionic/src/app/app-routing.module.ts +++ b/ionic/src/app/app-routing.module.ts @@ -17,6 +17,14 @@ const routes: Routes = [ { path: 'register', loadChildren: () => import('./auth/register/register.module').then( m => m.RegisterPageModule) + }, + { + path: 'new-groupe', + loadChildren: () => import('./new-groupe/new-groupe.module').then( m => m.NewGroupePageModule) + }, + { + path: 'gestion-groupe/:id', + loadChildren: () => import('./gestion-groupe/gestion-groupe.module').then( m => m.GestionGroupePageModule) } ]; @NgModule({ diff --git a/ionic/src/app/conversation/conversation.page.html b/ionic/src/app/conversation/conversation.page.html index ed2213537b7fb3b7d558033bfcd08bdb5756371a..c2288a62570f89219669a0f40c3be814dbecefea 100644 --- a/ionic/src/app/conversation/conversation.page.html +++ b/ionic/src/app/conversation/conversation.page.html @@ -1,21 +1,28 @@ <ion-header> <ion-toolbar> <ion-buttons slot="start"> - <ion-back-button text="Retour"></ion-back-button> + <ion-back-button text="Retour" defaultHref="/tabs/tab3"></ion-back-button> </ion-buttons> <ion-title>Messages</ion-title> - <ion-avatar slot="end"> - <img src="../../assets/icon/favicon.png"> + <ion-avatar slot="end" routerLink="/gestion-groupe/{{ id }}"> + <ion-icon name="cog"></ion-icon> </ion-avatar> </ion-toolbar> </ion-header> -<ion-content> +<ion-content #scrollElement padding> <div class="bg"></div> - <ion-item *ngFor="let message of messages" lines="none"> - <ion-badge *ngIf="message.author != idUser" color="warning" slot="end">{{message.body}}<ion-note color="medium">{{message.date}} <ion-icon name="done-all"></ion-icon></ion-note></ion-badge> - <ion-badge *ngIf="message.author == idUser" color="light" slot="start">{{message.body}} <ion-note color="medium">{{message.date}} </ion-note></ion-badge> + <ion-item *ngFor="let message of messages" lines="none" style="padding-bottom: 5px;"> + <div slot="end" *ngIf="message.author._id == idUser"> + <ion-badge color="warning" style="display:block; white-space:normal;text-align: left;">{{message.body}}</ion-badge> + <ion-note color="medium" style="float: right;">{{message.date | date: 'dd/MM/yyyy h:mm'}} <ion-icon name="done-all"></ion-icon></ion-note> + </div> + <div slot="start" *ngIf="message.author._id != idUser"> + <ion-note color="medium" style="display:block; padding-bottom: 2px;">{{message.author.username}}</ion-note> + <ion-badge color="light" style="display:block; white-space:normal;text-align: left;">{{message.body}}</ion-badge> + <ion-note color="medium" style="float: left;">{{message.date | date: 'dd/MM/yyyy h:mm'}} <ion-icon name="done-all"></ion-icon></ion-note> + </div> </ion-item> </ion-content> diff --git a/ionic/src/app/conversation/conversation.page.scss b/ionic/src/app/conversation/conversation.page.scss index 668b31ebcf74a9fa2e0fc5c6bc0e14ca9bad642d..8708cf725790778d68f77195e1b4301ac00c8e68 100644 --- a/ionic/src/app/conversation/conversation.page.scss +++ b/ionic/src/app/conversation/conversation.page.scss @@ -11,6 +11,13 @@ ion-footer ion-toolbar { ion-footer ion-button { font-weight: 600; } +ion-avatar > ion-icon { + width:100% !important; + height : 100% !important; + max-width: 80px !important; //any size + max-height: 80px !important; //any size + } + ion-input { background: white !important; height: 31px; diff --git a/ionic/src/app/conversation/conversation.page.ts b/ionic/src/app/conversation/conversation.page.ts index 18551b83db7d49b4076736e8265c9ab689e8d404..da09c2cec5270055a527193bd74c62e12e44dff7 100644 --- a/ionic/src/app/conversation/conversation.page.ts +++ b/ionic/src/app/conversation/conversation.page.ts @@ -1,5 +1,6 @@ -import { Component, OnInit } from '@angular/core'; +import { Component, OnInit, ViewChild } from '@angular/core'; import { ActivatedRoute } from '@angular/router'; +import { IonContent } from '@ionic/angular'; import { ConversationService } from '../services/conversation/conversation.service'; @@ -10,6 +11,7 @@ import { ConversationService } from '../services/conversation/conversation.servi styleUrls: ['./conversation.page.scss'], }) export class ConversationPage implements OnInit { + @ViewChild("scrollElement", {static: true}) content: IonContent; messages; id; @@ -24,17 +26,23 @@ export class ConversationPage implements OnInit { this.idUser = JSON.parse(localStorage.getItem('user')).id; } + updateScroll() { + console.log(this.content.scrollToBottom) + this.content.scrollToBottom(200); + } + getMessages(){ this.conversationService.messages(this.id).subscribe(data => { this.messages = data.reverse(); - console.log(this.messages); + setTimeout(()=>{this.updateScroll();},200); }); } sendMessage(){ this.conversationService.sendMessage(this.text , this.id).subscribe(data => { console.log(data); + this.text = ""; + this.getMessages(); }); - this.getMessages(); } } diff --git a/ionic/src/app/gestion-groupe/gestion-groupe-routing.module.ts b/ionic/src/app/gestion-groupe/gestion-groupe-routing.module.ts new file mode 100644 index 0000000000000000000000000000000000000000..bde2f5e64c2ae70700a0cb0b1bf7d8c9b3adf4a7 --- /dev/null +++ b/ionic/src/app/gestion-groupe/gestion-groupe-routing.module.ts @@ -0,0 +1,17 @@ +import { NgModule } from '@angular/core'; +import { Routes, RouterModule } from '@angular/router'; + +import { GestionGroupePage } from './gestion-groupe.page'; + +const routes: Routes = [ + { + path: '', + component: GestionGroupePage + } +]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule], +}) +export class GestionGroupePageRoutingModule {} diff --git a/ionic/src/app/gestion-groupe/gestion-groupe.module.ts b/ionic/src/app/gestion-groupe/gestion-groupe.module.ts new file mode 100644 index 0000000000000000000000000000000000000000..a00512999f9d1a4d650d834f0440bf7e9363c772 --- /dev/null +++ b/ionic/src/app/gestion-groupe/gestion-groupe.module.ts @@ -0,0 +1,20 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { FormsModule } from '@angular/forms'; + +import { IonicModule } from '@ionic/angular'; + +import { GestionGroupePageRoutingModule } from './gestion-groupe-routing.module'; + +import { GestionGroupePage } from './gestion-groupe.page'; + +@NgModule({ + imports: [ + CommonModule, + FormsModule, + IonicModule, + GestionGroupePageRoutingModule + ], + declarations: [GestionGroupePage] +}) +export class GestionGroupePageModule {} diff --git a/ionic/src/app/gestion-groupe/gestion-groupe.page.html b/ionic/src/app/gestion-groupe/gestion-groupe.page.html new file mode 100644 index 0000000000000000000000000000000000000000..fa194e63eda8bcf6dcd594429e831f22dea813cd --- /dev/null +++ b/ionic/src/app/gestion-groupe/gestion-groupe.page.html @@ -0,0 +1,38 @@ +<ion-header class="ion-margin-top ion-margin-bottom"> + <ion-toolbar> + <ion-title size="large">Gestion du groupe</ion-title> + </ion-toolbar> + <ion-toolbar> + <ion-buttons slot="start"> + <ion-back-button text="Retour" defaultHref="/conversation/{{ groupe._id }}"></ion-back-button> + </ion-buttons> + </ion-toolbar> +</ion-header> + +<ion-content padding> + <form class="form_login" #form="ngForm"> + <ion-grid> + <ion-row class="ion-justify-content-center"> + <ion-col class="align-self-center" size-md="6" size-lg="5" size-xs="12"> + <div class="ion-padding"> + <ion-item> + <ion-input name="name" type="text" placeholder="Nom du groupe" ngModel value="{{ groupe.name }}"></ion-input> + </ion-item> + <ion-item> + <ion-input name="description" type="text" placeholder="Description du groupe" ngModel value="{{ groupe.description }}"></ion-input> + </ion-item> + <ion-item> + <ion-label>Utilisateurs</ion-label> + <ion-select name="utilisateurs" multiple="true" [(ngModel)]="usersSelected" [value]="users"> + <ion-select-option *ngFor="let user of users" value="{{user._id}}">{{user.username}}</ion-select-option> + </ion-select> + </ion-item> + </div> + <div class="ion-padding"> + <ion-button size="large" type="submit" [disabled]="form.invalid" expand="block" (click)="modifGroupe(form)">Modifier</ion-button> + </div> + </ion-col> + </ion-row> + </ion-grid> + </form> +</ion-content> diff --git a/ionic/src/app/gestion-groupe/gestion-groupe.page.scss b/ionic/src/app/gestion-groupe/gestion-groupe.page.scss new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/ionic/src/app/gestion-groupe/gestion-groupe.page.spec.ts b/ionic/src/app/gestion-groupe/gestion-groupe.page.spec.ts new file mode 100644 index 0000000000000000000000000000000000000000..1b43d76af92f7a4cbd4afb627c15c30c77b8d802 --- /dev/null +++ b/ionic/src/app/gestion-groupe/gestion-groupe.page.spec.ts @@ -0,0 +1,24 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; +import { IonicModule } from '@ionic/angular'; + +import { GestionGroupePage } from './gestion-groupe.page'; + +describe('GestionGroupePage', () => { + let component: GestionGroupePage; + let fixture: ComponentFixture<GestionGroupePage>; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ GestionGroupePage ], + imports: [IonicModule.forRoot()] + }).compileComponents(); + + fixture = TestBed.createComponent(GestionGroupePage); + component = fixture.componentInstance; + fixture.detectChanges(); + })); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/ionic/src/app/gestion-groupe/gestion-groupe.page.ts b/ionic/src/app/gestion-groupe/gestion-groupe.page.ts new file mode 100644 index 0000000000000000000000000000000000000000..63b34d3c30f5fd2587a8b70acbab32550f2a5032 --- /dev/null +++ b/ionic/src/app/gestion-groupe/gestion-groupe.page.ts @@ -0,0 +1,128 @@ +import { Component, OnInit } from '@angular/core'; +import { ActivatedRoute } from '@angular/router'; +import { GestionGroupeService } from '../services/gestion-groupe.service'; +import { Router } from '@angular/router'; + +@Component({ + selector: 'app-gestion-groupe', + templateUrl: './gestion-groupe.page.html', + styleUrls: ['./gestion-groupe.page.scss'], +}) +export class GestionGroupePage implements OnInit { + + id; + groupe; + usersTempo; + users; + usersSelected; + idUser; + defaultusersSelected; + + + constructor(private activatedRoute: ActivatedRoute,private router: Router, private gestionGroupeService: GestionGroupeService) { + this.groupe = { + id: 0, + name: "", + description: "", + } + + this.users = []; + this.usersTempo; + this.usersSelected = []; + this.defaultusersSelected = []; + } + + ngOnInit() { + this.id = this.activatedRoute.snapshot.paramMap.get('id'); + this.idUser = JSON.parse(localStorage.getItem('user')).id; + this.getGroupe(); + this.getUsers(); + } + + modifGroupe(form){ + let addUser = []; + let removeUser = []; + let name = form.value.name; + let description = form.value.description; + + if(Array.isArray(this.usersSelected)){ + this.usersSelected.forEach((element) => { + addUser.push(element); + }) + } + + console.log("Add user : " + JSON.stringify(addUser)); + + if(Array.isArray(this.defaultusersSelected)){ + this.defaultusersSelected.forEach((element) => { + //On vérifie si les utilisateurs qui étaient selectionné le sont toujours + let stop = false; + let i = 0; + while(i < addUser.length && !stop){ + let aUser = addUser[i]; + if(aUser === element){ + stop = true; + } + i++; + } + if(!stop){ + removeUser.push(element); + } + }) + } + if(addUser.length > 0) this.gestionGroupeService.addUser(this.id,addUser).subscribe(data => this.router.navigate(['/conversation/' + this.id])); + if(removeUser.length > 0) this.gestionGroupeService.removeUser(this.id,removeUser).subscribe(data => this.router.navigate(['/conversation/' + this.id])); + + let body = { + "name": name, + "description": description, + "users": this.usersSelected + } + this.gestionGroupeService.updateGroupe(this.id,body).subscribe(data => this.router.navigate(['/conversation/' + this.id])); + } + + getGroupe(){ + this.gestionGroupeService.getGroupe(this.id).subscribe(data => { + let groups = data.reverse(); + if(Array.isArray(groups)){ + groups.forEach((groupe) => { + if(groupe._id === this.id){ + this.groupe = groupe; + } + }) + } + }); + } + + async getUsers(){ + await this.gestionGroupeService.getAllUsers().subscribe(data => { + this.usersTempo = data.reverse(); + }) + await this.gestionGroupeService.getUsers(this.id).subscribe(data => { + let currentUsers = data.reverse(); + if(Array.isArray(this.usersTempo)){ + this.usersTempo.forEach((element,index) => { + if(element._id !== this.idUser){ + if(Array.isArray(currentUsers)){ + let stop = false; + let i = 0; + while(i<currentUsers.length && !stop){ + let curUser = currentUsers[i]; + if(element._id === curUser._id){ + this.users.push(element); + this.usersSelected.push(element._id); + stop = true; + } + i++; + } + if(!stop){ + this.users.push(element); + } + } + } + }) + } + this.defaultusersSelected = this.usersSelected; + }) + } +} diff --git a/ionic/src/app/global.service.ts b/ionic/src/app/global.service.ts index 1eea1cc8963cbe25691cccd28d32cb7209b009e8..9e7e93a8a29cda8a2922e874b0753df65899a37d 100644 --- a/ionic/src/app/global.service.ts +++ b/ionic/src/app/global.service.ts @@ -10,7 +10,7 @@ export class GlobalService { public httpOptions; constructor() { - this.apiRoot = "http://localhost:3000"; + this.apiRoot = 'http://163.172.178.146:3000'; this.httpOptions = { headers: new HttpHeaders({ 'Content-Type': 'application/json', diff --git a/ionic/src/app/new-groupe/new-groupe-routing.module.ts b/ionic/src/app/new-groupe/new-groupe-routing.module.ts new file mode 100644 index 0000000000000000000000000000000000000000..9e8f779b742e8bfa67b533fa5c42ac4a45380752 --- /dev/null +++ b/ionic/src/app/new-groupe/new-groupe-routing.module.ts @@ -0,0 +1,17 @@ +import { NgModule } from '@angular/core'; +import { Routes, RouterModule } from '@angular/router'; + +import { NewGroupePage } from './new-groupe.page'; + +const routes: Routes = [ + { + path: '', + component: NewGroupePage + } +]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule], +}) +export class NewGroupePageRoutingModule {} diff --git a/ionic/src/app/new-groupe/new-groupe.module.ts b/ionic/src/app/new-groupe/new-groupe.module.ts new file mode 100644 index 0000000000000000000000000000000000000000..3da9970fc5dde538ee166c23d97593d437a82696 --- /dev/null +++ b/ionic/src/app/new-groupe/new-groupe.module.ts @@ -0,0 +1,20 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { FormsModule } from '@angular/forms'; + +import { IonicModule } from '@ionic/angular'; + +import { NewGroupePageRoutingModule } from './new-groupe-routing.module'; + +import { NewGroupePage } from './new-groupe.page'; + +@NgModule({ + imports: [ + CommonModule, + FormsModule, + IonicModule, + NewGroupePageRoutingModule + ], + declarations: [NewGroupePage] +}) +export class NewGroupePageModule {} diff --git a/ionic/src/app/new-groupe/new-groupe.page.html b/ionic/src/app/new-groupe/new-groupe.page.html new file mode 100644 index 0000000000000000000000000000000000000000..fe370b0a1e1beee0aade9ee44344687af8a8fcf9 --- /dev/null +++ b/ionic/src/app/new-groupe/new-groupe.page.html @@ -0,0 +1,30 @@ +<ion-header class="ion-margin-top ion-margin-bottom"> + <ion-toolbar> + <ion-buttons slot="start"> + <ion-back-button text="Retour" defaultHref="/tabs/tab3"></ion-back-button> + </ion-buttons> + <ion-title size="large">Création groupe</ion-title> + </ion-toolbar> +</ion-header> + +<ion-content padding> + <form class="form_login" #form="ngForm"> + <ion-grid> + <ion-row class="ion-justify-content-center"> + <ion-col class="align-self-center" size-md="6" size-lg="5" size-xs="12"> + <div class="ion-padding"> + <ion-item> + <ion-input name="name" type="text" placeholder="Nom du groupe" ngModel required></ion-input> + </ion-item> + <ion-item> + <ion-input name="description" type="text" placeholder="Description du groupe" ngModel required></ion-input> + </ion-item> + </div> + <div class="ion-padding"> + <ion-button size="large" type="submit" [disabled]="form.invalid" expand="block" (click)="createGroup(form)">Créer</ion-button> + </div> + </ion-col> + </ion-row> + </ion-grid> + </form> +</ion-content> diff --git a/ionic/src/app/new-groupe/new-groupe.page.scss b/ionic/src/app/new-groupe/new-groupe.page.scss new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/ionic/src/app/new-groupe/new-groupe.page.spec.ts b/ionic/src/app/new-groupe/new-groupe.page.spec.ts new file mode 100644 index 0000000000000000000000000000000000000000..1f81ac800c490fc6c64a119cd39dab1e341e685c --- /dev/null +++ b/ionic/src/app/new-groupe/new-groupe.page.spec.ts @@ -0,0 +1,24 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; +import { IonicModule } from '@ionic/angular'; + +import { NewGroupePage } from './new-groupe.page'; + +describe('NewGroupePage', () => { + let component: NewGroupePage; + let fixture: ComponentFixture<NewGroupePage>; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ NewGroupePage ], + imports: [IonicModule.forRoot()] + }).compileComponents(); + + fixture = TestBed.createComponent(NewGroupePage); + component = fixture.componentInstance; + fixture.detectChanges(); + })); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/ionic/src/app/new-groupe/new-groupe.page.ts b/ionic/src/app/new-groupe/new-groupe.page.ts new file mode 100644 index 0000000000000000000000000000000000000000..71a6152482f69397020345254b0698a210f37857 --- /dev/null +++ b/ionic/src/app/new-groupe/new-groupe.page.ts @@ -0,0 +1,45 @@ +import { Component, OnInit } from '@angular/core'; +import { NewGroupeService } from '../services/new-groupe.service'; +import { Router } from '@angular/router'; +import { AlertController } from '@ionic/angular'; + + +@Component({ + selector: 'app-new-groupe', + templateUrl: './new-groupe.page.html', + styleUrls: ['./new-groupe.page.scss'], +}) +export class NewGroupePage implements OnInit { + + constructor(private newGroupeService: NewGroupeService,private router: Router,private alertController: AlertController) { + + } + + ngOnInit() { + + } + + async createGroup(form){ + const groupe = await this.newGroupeService.createGroups(form.value.name,form.value.description); + groupe.subscribe(res => { + console.log('groupe crée : ' + JSON.stringify(res)); + if(res.name){ + this.router.navigate(['tabs/tab3']); + }else{ + this.alertGroup(); + } + }); + } + + async alertGroup(){ + const alert = await this.alertController.create({ + cssClass: 'my-custom-class', + header: 'Erreur', + subHeader: 'création groupe', + message: 'Une erreur s\'est produite durant la création du groupe', + buttons: ['OK'] + }); + + await alert.present(); + } +} diff --git a/ionic/src/app/services/gestion-groupe.service.spec.ts b/ionic/src/app/services/gestion-groupe.service.spec.ts new file mode 100644 index 0000000000000000000000000000000000000000..451daba1e422e6bbafe5edf2b97fc98f3bced938 --- /dev/null +++ b/ionic/src/app/services/gestion-groupe.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { GestionGroupeService } from './gestion-groupe.service'; + +describe('GestionGroupeService', () => { + let service: GestionGroupeService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(GestionGroupeService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/ionic/src/app/services/gestion-groupe.service.ts b/ionic/src/app/services/gestion-groupe.service.ts new file mode 100644 index 0000000000000000000000000000000000000000..302b2b0e2561e26e57a63d32fd26ab05c00b8490 --- /dev/null +++ b/ionic/src/app/services/gestion-groupe.service.ts @@ -0,0 +1,86 @@ +import { HttpClient } from '@angular/common/http'; +import { Injectable } from '@angular/core'; +import { Observable } from 'rxjs'; +import { map } from 'rxjs/operators'; +import { GlobalService } from "../global.service"; +import { catchError } from 'rxjs/operators'; +import { of } from 'rxjs'; +import { HttpHeaders } from '@angular/common/http'; + +@Injectable({ + providedIn: 'root' +}) +export class GestionGroupeService { + + constructor(private http: HttpClient, private global: GlobalService) { + } + + updateGroupe(id,body): Observable<any> { + return this.http.put(`${this.global.apiRoot}/rooms/` + id,body, this.global.getHeaderHttpPostConnected()).pipe( + map(results => { + console.log('get : ' + results); + return results; + }), + catchError(err => of(err)) + ); + } + + getGroupe(id): Observable<any> { + return this.http.get(`${this.global.apiRoot}/rooms`, this.global.getHeaderHttpPostConnected()).pipe( + map(results => { + console.log('get : ' + results); + return results; + }), + catchError(err => of(err)) + ); + } + + addUser(id,ids): Observable<any> { + let body = { + 'ids':ids, + } + return this.http.post(`${this.global.apiRoot}/rooms/` + id + "/add_users",body, this.global.getHeaderHttpPostConnected()).pipe( + map(results => { + console.log('post : ' + results); + return results; + }), + catchError((err) => { + return of(err); + }) + ); + } + + removeUser(id,ids): Observable<any> { + let body = { + 'ids':ids, + } + console.log(ids); + return this.http.post(`${this.global.apiRoot}/rooms/` + id + "/remove_users",body, this.global.getHeaderHttpPostConnected()).pipe( + map(results => { + console.log('post : ' + results); + return results; + }), + catchError(err => of(err)) + ); + } + + getUsers(id): Observable<any> { + return this.http.get(`${this.global.apiRoot}/rooms/` + id + "/users", this.global.getHeaderHttpPostConnected()).pipe( + map(results => { + console.log('get : ' + results); + return results; + }), + catchError(err => of(err)) + ); + } + + getAllUsers(): Observable<any> { + return this.http.get(`${this.global.apiRoot}/users`, this.global.getHeaderHttpPostConnected()).pipe( + map(results => { + console.log('get : ' + results); + return results; + }), + catchError(err => of(err)) + ); + } +} diff --git a/ionic/src/app/services/new-groupe.service.spec.ts b/ionic/src/app/services/new-groupe.service.spec.ts new file mode 100644 index 0000000000000000000000000000000000000000..c1979d476bcd213fae496652a91292f2660bcbcd --- /dev/null +++ b/ionic/src/app/services/new-groupe.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { NewGroupeService } from './new-groupe.service'; + +describe('NewGroupeService', () => { + let service: NewGroupeService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(NewGroupeService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/ionic/src/app/services/new-groupe.service.ts b/ionic/src/app/services/new-groupe.service.ts new file mode 100644 index 0000000000000000000000000000000000000000..58b26050fbfa44db9627e6e00b97b3ef20d07484 --- /dev/null +++ b/ionic/src/app/services/new-groupe.service.ts @@ -0,0 +1,33 @@ +import { HttpClient } from '@angular/common/http'; +import { Injectable } from '@angular/core'; +import { Observable } from 'rxjs'; +import { map } from 'rxjs/operators'; +import { GlobalService } from "../global.service"; +import { catchError } from 'rxjs/operators'; +import { of } from 'rxjs'; +import { HttpHeaders } from '@angular/common/http'; + +@Injectable({ + providedIn: 'root' +}) +export class NewGroupeService { + + private urlCreateRoom: string; + + constructor(private http: HttpClient, private global: GlobalService) { + this.urlCreateRoom= this.global.apiRoot + "/rooms" + } + + createGroups(name,description){ + let body = { + "name": name, + "description": description, + } + return this.http.post(this.urlCreateRoom,body,this.global.getHeaderHttpPostConnected()).pipe( + map(results => { + console.log('RAW : ' + results) + return results; + }), + catchError(err => of(err))) + } +} diff --git a/ionic/src/app/services/tab3.service.ts b/ionic/src/app/services/tab3.service.ts index 536ca16481e75401166e7c9a45a5140d48773421..1cda7c6c0fad64055346e00109b86bd60b9538e9 100644 --- a/ionic/src/app/services/tab3.service.ts +++ b/ionic/src/app/services/tab3.service.ts @@ -16,27 +16,12 @@ import { HttpHeaders } from '@angular/common/http'; export class Tab3Service { private urlRooms: string; - private urlCreateRoom: string; constructor(private http: HttpClient, private global: GlobalService) { this.urlRooms=this.global.apiRoot + "/rooms" - this.urlCreateRoom= this.global.apiRoot + "/rooms" } getGroups(){ return this.http.get(`${this.urlRooms}`,this.global.getHeaderHttpGetConnected()); } - - createGroups(){ - let body = { - "name": "ungroupe", - "description": "unedescription" - } - return this.http.post(this.urlCreateRoom,body,this.global.getHeaderHttpPostConnected()).pipe( - map(results => { - console.log('RAW : ' + results) - return results; - }), - catchError(err => of(err))) - } } diff --git a/ionic/src/app/tab1/tab1.page.ts b/ionic/src/app/tab1/tab1.page.ts index 78b7bfee81fd8fff2177ca82a67fe39094a07e7e..7aac82034cce0c8eee96090d06acc3201f2a112d 100644 --- a/ionic/src/app/tab1/tab1.page.ts +++ b/ionic/src/app/tab1/tab1.page.ts @@ -9,7 +9,7 @@ import { Router } from '@angular/router'; }) export class Tab1Page { - private username: String; + username: String; constructor(private router: Router) { this.username = JSON.parse(localStorage.getItem('user')).username; diff --git a/ionic/src/app/tab3/tab3.page.html b/ionic/src/app/tab3/tab3.page.html index b0a0f5ef3dbbc9bf3b04dbc94bff035b8581e9cd..cb99aa3dbc740c78999c4a378559b03f31f6e39d 100644 --- a/ionic/src/app/tab3/tab3.page.html +++ b/ionic/src/app/tab3/tab3.page.html @@ -3,7 +3,7 @@ <ion-title size="large">Discussions</ion-title> </ion-toolbar> <ion-toolbar> - <ion-button slot="end" size="small" fill="clear"> + <ion-button slot="end" size="small" fill="clear" routerLink="/new-groupe"> Nouveau groupe </ion-button> </ion-toolbar> diff --git a/ionic/src/app/tab3/tab3.page.ts b/ionic/src/app/tab3/tab3.page.ts index 18c9fc84996ac4e71bea3a815666bab2d88e6ba8..6ff556f190e864d7f0d1d694ca66b575209b0908 100644 --- a/ionic/src/app/tab3/tab3.page.ts +++ b/ionic/src/app/tab3/tab3.page.ts @@ -20,12 +20,4 @@ export class Tab3Page { this.results = data; }); } - - async createGroup(){ - const groupe = await this.tab3Service.createGroups(); - groupe.subscribe(res => { - console.log('groupe crée : ' + res); - }); - } - } diff --git a/ionic/www/auth-login-login-module-es2015.js b/ionic/www/auth-login-login-module-es2015.js index 2af6ab2d89768d3e376ccde24f1451d2e8a1ef38..0ad5a3fa43f13fa038a971ba4719f594e0bd8e90 100644 --- a/ionic/www/auth-login-login-module-es2015.js +++ b/ionic/www/auth-login-login-module-es2015.js @@ -9,7 +9,7 @@ "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony default export */ __webpack_exports__["default"] = ("<ion-content padding>\n <form class=\"form_login\" #form=\"ngForm\" (ngSubmit)=\"login(form)\">\n <ion-grid>\n <ion-row class=\"ion-justify-content-center\">\n <ion-col class=\"align-self-center\" size-md=\"6\" size-lg=\"5\" size-xs=\"12\">\n <div class=\"ion-text-center\">\n <h3>Se connecter</h3>\n </div>\n <div class=\"ion-padding\">\n <ion-item>\n <ion-input name=\"username\" type=\"utilisateur\" placeholder=\"Nom d'utilisateur\" ngModel required></ion-input>\n </ion-item>\n <ion-item>\n <ion-input name=\"password\" type=\"password\" placeholder=\"Mot de passe\" ngModel required></ion-input>\n </ion-item>\n </div>\n <div class=\"ion-padding\">\n <ion-button size=\"large\" type=\"submit\" [disabled]=\"form.invalid\" expand=\"block\">Se connecter</ion-button>\n </div>\n </ion-col>\n </ion-row>\n </ion-grid>\n </form>\n</ion-content>"); +/* harmony default export */ __webpack_exports__["default"] = ("<ion-content padding>\n <form class=\"form_login\" #form=\"ngForm\">\n <ion-grid>\n <ion-row class=\"ion-justify-content-center\">\n <ion-col class=\"align-self-center\" size-md=\"6\" size-lg=\"5\" size-xs=\"12\">\n <div class=\"ion-text-center\">\n <h3>Se connecter</h3>\n </div>\n <div class=\"ion-padding\">\n <ion-item>\n <ion-input name=\"username\" type=\"utilisateur\" placeholder=\"Nom d'utilisateur\" ngModel required></ion-input>\n </ion-item>\n <ion-item>\n <ion-input name=\"password\" type=\"password\" placeholder=\"Mot de passe\" ngModel required></ion-input>\n </ion-item>\n </div>\n <div class=\"ion-padding\">\n <ion-button size=\"large\" type=\"submit\" [disabled]=\"form.invalid\" expand=\"block\" (click)=\"login(form)\">Se connecter</ion-button>\n </div>\n <div class=\"ion-padding\">\n <ion-button size=\"large\" routerLink=\"/register\" expand=\"block\">\n S'inscrire\n </ion-button>\n </div>\n </ion-col>\n </ion-row>\n </ion-grid>\n </form>\n</ion-content>\n"); /***/ }), @@ -153,7 +153,7 @@ let LoginPage = class LoginPage { } login(form) { return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function* () { - let results = yield this.loginService.authenticate(form); + const results = yield this.loginService.authenticate(form); results.subscribe(res => { if (res.token) { localStorage.setItem('token', res.token); diff --git a/ionic/www/auth-login-login-module-es2015.js.map b/ionic/www/auth-login-login-module-es2015.js.map index c021730cb4768d7b1f562a9eaf115ecbc56fe491..a62df929962d3d63059deeffe7d21d2854f40732 100644 --- a/ionic/www/auth-login-login-module-es2015.js.map +++ b/ionic/www/auth-login-login-module-es2015.js.map @@ -1 +1 @@ -{"version":3,"sources":["./src/app/auth/login/login.page.html","./src/app/auth/login/login-routing.module.ts","./src/app/auth/login/login.module.ts","./src/app/auth/login/login.page.scss","./src/app/auth/login/login.page.ts","./src/app/services/auth/login/login.service.ts"],"names":[],"mappings":";;;;;;;;;;AAAA;AAAe,gkCAAigC,E;;;;;;;;;;;;;;;;;;;ACAv+B;AACc;AAEd;AAEzC,MAAM,MAAM,GAAW;IACrB;QACE,IAAI,EAAE,EAAE;QACR,SAAS,EAAE,qDAAS;KACrB;CACF,CAAC;IAMW,sBAAsB,SAAtB,sBAAsB;CAAG;AAAzB,sBAAsB;IAJlC,8DAAQ,CAAC;QACR,OAAO,EAAE,CAAC,4DAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACxC,OAAO,EAAE,CAAC,4DAAY,CAAC;KACxB,CAAC;GACW,sBAAsB,CAAG;AAAH;;;;;;;;;;;;;;;;;;;;;;;AChBM;AACM;AACF;AAEA;AAEmB;AAEvB;IAW5B,eAAe,SAAf,eAAe;CAAG;AAAlB,eAAe;IAT3B,8DAAQ,CAAC;QACR,OAAO,EAAE;YACP,4DAAY;YACZ,0DAAW;YACX,0DAAW;YACX,4EAAsB;SACvB;QACD,YAAY,EAAE,CAAC,qDAAS,CAAC;KAC1B,CAAC;GACW,eAAe,CAAG;AAAH;;;;;;;;;;;;;ACnB5B;AAAe,6EAAc,6BAA6B,uCAAuC,mCAAmC,iBAAiB,GAAG,6CAA6C,+dAA+d,E;;;;;;;;;;;;;;;;;;;;;;ACAlnB;AACR;AACQ;AACG;AACkB;AACtB;IASpC,SAAS,SAAT,SAAS;IAEpB,YAAqB,MAAe,EAAU,IAAgB,EAAU,MAAqB,EAAU,YAA0B,EAAU,eAAgC;QAAtJ,WAAM,GAAN,MAAM,CAAS;QAAU,SAAI,GAAJ,IAAI,CAAY;QAAU,WAAM,GAAN,MAAM,CAAe;QAAU,iBAAY,GAAZ,YAAY,CAAc;QAAU,oBAAe,GAAf,eAAe,CAAiB;IAAG,CAAC;IAEzK,YAAY;;YAChB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;gBAC9C,QAAQ,EAAE,iBAAiB;gBAC3B,MAAM,EAAE,QAAQ;gBAChB,SAAS,EAAE,kBAAkB;gBAC7B,OAAO,EAAE,uDAAuD;gBAChE,OAAO,EAAE,CAAC,IAAI,CAAC;aAChB,CAAC,CAAC;YAEH,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC;QACxB,CAAC;KAAA;IAED,QAAQ;IACR,CAAC;IAEK,KAAK,CAAC,IAAI;;YAEd,IAAI,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YACzD,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;gBACtB,IAAG,GAAG,CAAC,KAAK,EAAC;oBACX,YAAY,CAAC,OAAO,CAAC,OAAO,EAAC,GAAG,CAAC,KAAK,CAAC;oBACvC,YAAY,CAAC,OAAO,CAAC,MAAM,EAAC;wBACZ,GAAG,CAAC,IAAI,CAAC,QAAQ;kBACvB,GAAG,CAAC,IAAI,CAAC,EAAE;UACnB,CAAC;oBACH,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;iBACrC;qBAAI;oBACH,IAAI,CAAC,YAAY,EAAE,CAAC;iBACrB;YAEH,CAAC,CAAC;QACJ,CAAC;KAAA;CACF;;YAjDQ,sDAAM;YACN,+DAAU;YACV,6DAAa;YACb,+EAAY;YACZ,8DAAe;;AASX,SAAS;IALrB,+DAAS,CAAC;QACT,QAAQ,EAAE,WAAW;QACrB,sNAAgC;;KAEjC,CAAC;GACW,SAAS,CAoCrB;AApCqB;;;;;;;;;;;;;;;;;;;;;;ACd4B;AACP;AAEN;AACmB;AACZ;AAClB;IAOb,YAAY,SAAZ,YAAY;IAIvB,YAAoB,IAAgB,EAAU,MAAqB;QAA/C,SAAI,GAAJ,IAAI,CAAY;QAAU,WAAM,GAAN,MAAM,CAAe;QACjE,IAAI,CAAC,QAAQ,GAAC,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,cAAc;IACpD,CAAC;IAED,YAAY,CAAC,IAAI;QACf,IAAI,IAAI,GAAG;;oBAEK,IAAI,CAAC,KAAK,CAAC,QAAQ;oBACnB,IAAI,CAAC,KAAK,CAAC,QAAQ;;KAElC,CAAC;QACF,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,EAAC,IAAI,EAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CACzE,0DAAG,CAAC,OAAO,CAAC,EAAE;YACZ,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,OAAO,CAAC;YAC/B,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC,EACF,iEAAU,CAAC,GAAG,CAAC,EAAE,CAAC,+CAAE,CAAC,GAAG,CAAC,CAAC,CAC3B;IACH,CAAC;CACF;;YApCQ,+DAAU;YAIV,6DAAa;;AAST,YAAY;IAHxB,gEAAU,CAAC;QACV,UAAU,EAAE,MAAM;KACnB,CAAC;GACW,YAAY,CAuBxB;AAvBwB","file":"auth-login-login-module-es2015.js","sourcesContent":["export default \"<ion-content padding>\\n <form class=\\\"form_login\\\" #form=\\\"ngForm\\\" (ngSubmit)=\\\"login(form)\\\">\\n <ion-grid>\\n <ion-row class=\\\"ion-justify-content-center\\\">\\n <ion-col class=\\\"align-self-center\\\" size-md=\\\"6\\\" size-lg=\\\"5\\\" size-xs=\\\"12\\\">\\n <div class=\\\"ion-text-center\\\">\\n <h3>Se connecter</h3>\\n </div>\\n <div class=\\\"ion-padding\\\">\\n <ion-item>\\n <ion-input name=\\\"username\\\" type=\\\"utilisateur\\\" placeholder=\\\"Nom d'utilisateur\\\" ngModel required></ion-input>\\n </ion-item>\\n <ion-item>\\n <ion-input name=\\\"password\\\" type=\\\"password\\\" placeholder=\\\"Mot de passe\\\" ngModel required></ion-input>\\n </ion-item>\\n </div>\\n <div class=\\\"ion-padding\\\">\\n <ion-button size=\\\"large\\\" type=\\\"submit\\\" [disabled]=\\\"form.invalid\\\" expand=\\\"block\\\">Se connecter</ion-button>\\n </div>\\n </ion-col>\\n </ion-row>\\n </ion-grid>\\n </form>\\n</ion-content>\";","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\n\nimport { LoginPage } from './login.page';\n\nconst routes: Routes = [\n {\n path: '',\n component: LoginPage\n }\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class LoginPageRoutingModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { IonicModule } from '@ionic/angular';\n\nimport { LoginPageRoutingModule } from './login-routing.module';\n\nimport { LoginPage } from './login.page';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n IonicModule,\n LoginPageRoutingModule\n ],\n declarations: [LoginPage]\n})\nexport class LoginPageModule {}\n","export default \".form_login {\\n display: flex !important;\\n justify-content: center !important;\\n align-items: center !important;\\n height: 100%;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvYXV0aC9sb2dpbi9sb2dpbi5wYWdlLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDSSx3QkFBQTtFQUNBLGtDQUFBO0VBQ0EsOEJBQUE7RUFDQSxZQUFBO0FBQ0oiLCJmaWxlIjoic3JjL2FwcC9hdXRoL2xvZ2luL2xvZ2luLnBhZ2Uuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5mb3JtX2xvZ2luIHtcbiAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXIgIWltcG9ydGFudDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyICFpbXBvcnRhbnQ7XG4gICAgaGVpZ2h0OiAxMDAlO1xufSJdfQ== */\";","import { Component, OnInit } from '@angular/core';\nimport { Router } from \"@angular/router\";\nimport { HttpClient } from '@angular/common/http';\nimport { GlobalService } from \"../../global.service\";\nimport { LoginService } from '../../services/auth/login/login.service';\nimport { AlertController } from '@ionic/angular';\n\n\n\n@Component({\n selector: 'app-login',\n templateUrl: './login.page.html',\n styleUrls: ['./login.page.scss'],\n})\nexport class LoginPage implements OnInit {\n\n constructor(private router: Router, private http: HttpClient, private global: GlobalService, private loginService: LoginService, private alertController: AlertController) {}\n\n async presentAlert() {\n const alert = await this.alertController.create({\n cssClass: 'my-custom-class',\n header: 'Erreur',\n subHeader: 'authentification',\n message: 'Une erreur s\\'est produite durant l\\'authentification',\n buttons: ['OK']\n });\n\n await alert.present();\n }\n\n ngOnInit() {\n }\n\n async login(form){\n \n let results = await this.loginService.authenticate(form);\n results.subscribe(res => {\n if(res.token){\n localStorage.setItem('token',res.token)\n localStorage.setItem('user',`{\n \"username\":\"${res.user.username}\",\n \"id\":\"${res.user.id}\"\n }`)\n this.router.navigate(['tabs/tab1']);\n }else{\n this.presentAlert();\n }\n \n })\n }\n}","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { GlobalService } from \"../../../global.service\";\nimport { catchError } from 'rxjs/operators'; \nimport { of } from 'rxjs';\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LoginService {\n\n private urlLogin: String;\n\n constructor(private http: HttpClient, private global: GlobalService) { \n this.urlLogin=this.global.apiRoot + \"/users/login\"\n }\n\n authenticate(form): Observable<any> {\n let body = `\n {\n \"username\":\"${form.value.username}\",\n \"password\":\"${form.value.password}\"\n }\n `;\n return this.http.post(`${this.urlLogin}`,body,this.global.httpOptions).pipe(\n map(results => {\n console.log('RAW : ' + results)\n return results;\n }),\n catchError(err => of(err))\n )\n }\n}\n"],"sourceRoot":"webpack:///"} \ No newline at end of file +{"version":3,"sources":["./src/app/auth/login/login.page.html","./src/app/auth/login/login-routing.module.ts","./src/app/auth/login/login.module.ts","./src/app/auth/login/login.page.scss","./src/app/auth/login/login.page.ts","./src/app/services/auth/login/login.service.ts"],"names":[],"mappings":";;;;;;;;;;AAAA;AAAe,gwCAAisC,E;;;;;;;;;;;;;;;;;;;ACAvqC;AACc;AAEd;AAEzC,MAAM,MAAM,GAAW;IACrB;QACE,IAAI,EAAE,EAAE;QACR,SAAS,EAAE,qDAAS;KACrB;CACF,CAAC;IAMW,sBAAsB,SAAtB,sBAAsB;CAAG;AAAzB,sBAAsB;IAJlC,8DAAQ,CAAC;QACR,OAAO,EAAE,CAAC,4DAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACxC,OAAO,EAAE,CAAC,4DAAY,CAAC;KACxB,CAAC;GACW,sBAAsB,CAAG;AAAH;;;;;;;;;;;;;;;;;;;;;;;AChBM;AACM;AACF;AAEA;AAEmB;AAEvB;IAW5B,eAAe,SAAf,eAAe;CAAG;AAAlB,eAAe;IAT3B,8DAAQ,CAAC;QACR,OAAO,EAAE;YACP,4DAAY;YACZ,0DAAW;YACX,0DAAW;YACX,4EAAsB;SACvB;QACD,YAAY,EAAE,CAAC,qDAAS,CAAC;KAC1B,CAAC;GACW,eAAe,CAAG;AAAH;;;;;;;;;;;;;ACnB5B;AAAe,6EAAc,6BAA6B,uCAAuC,mCAAmC,iBAAiB,GAAG,6CAA6C,+dAA+d,E;;;;;;;;;;;;;;;;;;;;;;ACAlnB;AACT;AACS;AACG;AACkB;AACtB;IAQpC,SAAS,SAAT,SAAS;IAEpB,YAAqB,MAAc,EAAU,IAAgB,EAAU,MAAqB,EAAU,YAA0B,EAC5G,eAAgC;QAD/B,WAAM,GAAN,MAAM,CAAQ;QAAU,SAAI,GAAJ,IAAI,CAAY;QAAU,WAAM,GAAN,MAAM,CAAe;QAAU,iBAAY,GAAZ,YAAY,CAAc;QAC5G,oBAAe,GAAf,eAAe,CAAiB;IAAG,CAAC;IAElD,YAAY;;YAChB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;gBAC9C,QAAQ,EAAE,iBAAiB;gBAC3B,MAAM,EAAE,QAAQ;gBAChB,SAAS,EAAE,kBAAkB;gBAC7B,OAAO,EAAE,uDAAuD;gBAChE,OAAO,EAAE,CAAC,IAAI,CAAC;aAChB,CAAC,CAAC;YAEH,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC;QACxB,CAAC;KAAA;IAED,QAAQ;IACR,CAAC;IAEK,KAAK,CAAC,IAAI;;YAEd,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YAC3D,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;gBACtB,IAAK,GAAG,CAAC,KAAK,EAAE;oBACd,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;oBACzC,YAAY,CAAC,OAAO,CAAC,MAAM,EAAE;wBACb,GAAG,CAAC,IAAI,CAAC,QAAQ;kBACvB,GAAG,CAAC,IAAI,CAAC,EAAE;UACnB,CAAC,CAAC;oBACJ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;iBACrC;qBAAI;oBACH,IAAI,CAAC,YAAY,EAAE,CAAC;iBACrB;YACH,CAAC,CAAC,CAAC;QACL,CAAC;KAAA;CACF;;YAhDQ,sDAAM;YACN,+DAAU;YACV,6DAAa;YACb,+EAAY;YACZ,8DAAe;;AAQX,SAAS;IALrB,+DAAS,CAAC;QACT,QAAQ,EAAE,WAAW;QACrB,sNAAgC;;KAEjC,CAAC;GACW,SAAS,CAoCrB;AApCqB;;;;;;;;;;;;;;;;;;;;;;ACb4B;AACP;AAEN;AACmB;AACZ;AAClB;IAOb,YAAY,SAAZ,YAAY;IAIvB,YAAoB,IAAgB,EAAU,MAAqB;QAA/C,SAAI,GAAJ,IAAI,CAAY;QAAU,WAAM,GAAN,MAAM,CAAe;QACjE,IAAI,CAAC,QAAQ,GAAC,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,cAAc;IACpD,CAAC;IAED,YAAY,CAAC,IAAI;QACf,IAAI,IAAI,GAAG;;oBAEK,IAAI,CAAC,KAAK,CAAC,QAAQ;oBACnB,IAAI,CAAC,KAAK,CAAC,QAAQ;;KAElC,CAAC;QACF,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,EAAC,IAAI,EAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CACzE,0DAAG,CAAC,OAAO,CAAC,EAAE;YACZ,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,OAAO,CAAC;YAC/B,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC,EACF,iEAAU,CAAC,GAAG,CAAC,EAAE,CAAC,+CAAE,CAAC,GAAG,CAAC,CAAC,CAC3B;IACH,CAAC;CACF;;YApCQ,+DAAU;YAIV,6DAAa;;AAST,YAAY;IAHxB,gEAAU,CAAC;QACV,UAAU,EAAE,MAAM;KACnB,CAAC;GACW,YAAY,CAuBxB;AAvBwB","file":"auth-login-login-module-es2015.js","sourcesContent":["export default \"<ion-content padding>\\n <form class=\\\"form_login\\\" #form=\\\"ngForm\\\">\\n <ion-grid>\\n <ion-row class=\\\"ion-justify-content-center\\\">\\n <ion-col class=\\\"align-self-center\\\" size-md=\\\"6\\\" size-lg=\\\"5\\\" size-xs=\\\"12\\\">\\n <div class=\\\"ion-text-center\\\">\\n <h3>Se connecter</h3>\\n </div>\\n <div class=\\\"ion-padding\\\">\\n <ion-item>\\n <ion-input name=\\\"username\\\" type=\\\"utilisateur\\\" placeholder=\\\"Nom d'utilisateur\\\" ngModel required></ion-input>\\n </ion-item>\\n <ion-item>\\n <ion-input name=\\\"password\\\" type=\\\"password\\\" placeholder=\\\"Mot de passe\\\" ngModel required></ion-input>\\n </ion-item>\\n </div>\\n <div class=\\\"ion-padding\\\">\\n <ion-button size=\\\"large\\\" type=\\\"submit\\\" [disabled]=\\\"form.invalid\\\" expand=\\\"block\\\" (click)=\\\"login(form)\\\">Se connecter</ion-button>\\n </div>\\n <div class=\\\"ion-padding\\\">\\n <ion-button size=\\\"large\\\" routerLink=\\\"/register\\\" expand=\\\"block\\\">\\n S'inscrire\\n </ion-button>\\n </div>\\n </ion-col>\\n </ion-row>\\n </ion-grid>\\n </form>\\n</ion-content>\\n\";","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\n\nimport { LoginPage } from './login.page';\n\nconst routes: Routes = [\n {\n path: '',\n component: LoginPage\n }\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class LoginPageRoutingModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { IonicModule } from '@ionic/angular';\n\nimport { LoginPageRoutingModule } from './login-routing.module';\n\nimport { LoginPage } from './login.page';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n IonicModule,\n LoginPageRoutingModule\n ],\n declarations: [LoginPage]\n})\nexport class LoginPageModule {}\n","export default \".form_login {\\n display: flex !important;\\n justify-content: center !important;\\n align-items: center !important;\\n height: 100%;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvYXV0aC9sb2dpbi9sb2dpbi5wYWdlLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDSSx3QkFBQTtFQUNBLGtDQUFBO0VBQ0EsOEJBQUE7RUFDQSxZQUFBO0FBQ0oiLCJmaWxlIjoic3JjL2FwcC9hdXRoL2xvZ2luL2xvZ2luLnBhZ2Uuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5mb3JtX2xvZ2luIHtcbiAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXIgIWltcG9ydGFudDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyICFpbXBvcnRhbnQ7XG4gICAgaGVpZ2h0OiAxMDAlO1xufSJdfQ== */\";","import { Component, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { HttpClient } from '@angular/common/http';\nimport { GlobalService } from '../../global.service';\nimport { LoginService } from '../../services/auth/login/login.service';\nimport { AlertController } from '@ionic/angular';\n\n\n@Component({\n selector: 'app-login',\n templateUrl: './login.page.html',\n styleUrls: ['./login.page.scss'],\n})\nexport class LoginPage implements OnInit {\n\n constructor(private router: Router, private http: HttpClient, private global: GlobalService, private loginService: LoginService,\n private alertController: AlertController) {}\n\n async presentAlert() {\n const alert = await this.alertController.create({\n cssClass: 'my-custom-class',\n header: 'Erreur',\n subHeader: 'authentification',\n message: 'Une erreur s\\'est produite durant l\\'authentification',\n buttons: ['OK']\n });\n\n await alert.present();\n }\n\n ngOnInit() {\n }\n\n async login(form){\n \n const results = await this.loginService.authenticate(form);\n results.subscribe(res => {\n if ( res.token ){\n localStorage.setItem('token', res.token);\n localStorage.setItem('user', `{\n \"username\":\"${res.user.username}\",\n \"id\":\"${res.user.id}\"\n }`);\n this.router.navigate(['tabs/tab1']);\n }else{\n this.presentAlert();\n }\n });\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { GlobalService } from \"../../../global.service\";\nimport { catchError } from 'rxjs/operators'; \nimport { of } from 'rxjs';\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LoginService {\n\n private urlLogin: String;\n\n constructor(private http: HttpClient, private global: GlobalService) { \n this.urlLogin=this.global.apiRoot + \"/users/login\"\n }\n\n authenticate(form): Observable<any> {\n let body = `\n {\n \"username\":\"${form.value.username}\",\n \"password\":\"${form.value.password}\"\n }\n `;\n return this.http.post(`${this.urlLogin}`,body,this.global.httpOptions).pipe(\n map(results => {\n console.log('RAW : ' + results)\n return results;\n }),\n catchError(err => of(err))\n )\n }\n}\n"],"sourceRoot":"webpack:///"} \ No newline at end of file diff --git a/ionic/www/auth-login-login-module-es5.js b/ionic/www/auth-login-login-module-es5.js index d559aa1f9cb650d295fefc2709257b97e3463215..774264abd1944a1baa9b061f324ff20c4eb14b79 100644 --- a/ionic/www/auth-login-login-module-es5.js +++ b/ionic/www/auth-login-login-module-es5.js @@ -22,7 +22,7 @@ /* harmony default export */ - __webpack_exports__["default"] = "<ion-content padding>\n <form class=\"form_login\" #form=\"ngForm\" (ngSubmit)=\"login(form)\">\n <ion-grid>\n <ion-row class=\"ion-justify-content-center\">\n <ion-col class=\"align-self-center\" size-md=\"6\" size-lg=\"5\" size-xs=\"12\">\n <div class=\"ion-text-center\">\n <h3>Se connecter</h3>\n </div>\n <div class=\"ion-padding\">\n <ion-item>\n <ion-input name=\"username\" type=\"utilisateur\" placeholder=\"Nom d'utilisateur\" ngModel required></ion-input>\n </ion-item>\n <ion-item>\n <ion-input name=\"password\" type=\"password\" placeholder=\"Mot de passe\" ngModel required></ion-input>\n </ion-item>\n </div>\n <div class=\"ion-padding\">\n <ion-button size=\"large\" type=\"submit\" [disabled]=\"form.invalid\" expand=\"block\">Se connecter</ion-button>\n </div>\n </ion-col>\n </ion-row>\n </ion-grid>\n </form>\n</ion-content>"; + __webpack_exports__["default"] = "<ion-content padding>\n <form class=\"form_login\" #form=\"ngForm\">\n <ion-grid>\n <ion-row class=\"ion-justify-content-center\">\n <ion-col class=\"align-self-center\" size-md=\"6\" size-lg=\"5\" size-xs=\"12\">\n <div class=\"ion-text-center\">\n <h3>Se connecter</h3>\n </div>\n <div class=\"ion-padding\">\n <ion-item>\n <ion-input name=\"username\" type=\"utilisateur\" placeholder=\"Nom d'utilisateur\" ngModel required></ion-input>\n </ion-item>\n <ion-item>\n <ion-input name=\"password\" type=\"password\" placeholder=\"Mot de passe\" ngModel required></ion-input>\n </ion-item>\n </div>\n <div class=\"ion-padding\">\n <ion-button size=\"large\" type=\"submit\" [disabled]=\"form.invalid\" expand=\"block\" (click)=\"login(form)\">Se connecter</ion-button>\n </div>\n <div class=\"ion-padding\">\n <ion-button size=\"large\" routerLink=\"/register\" expand=\"block\">\n S'inscrire\n </ion-button>\n </div>\n </ion-col>\n </ion-row>\n </ion-grid>\n </form>\n</ion-content>\n"; /***/ }, diff --git a/ionic/www/auth-login-login-module-es5.js.map b/ionic/www/auth-login-login-module-es5.js.map index efd02f1c89128ed7b324a90ec2ed15960f688498..7abc75b85cc6327d48b1b2055768d2e380c75958 100644 --- a/ionic/www/auth-login-login-module-es5.js.map +++ b/ionic/www/auth-login-login-module-es5.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///src/app/auth/login/login.page.html","webpack:///src/app/auth/login/login-routing.module.ts","webpack:///src/app/auth/login/login.module.ts","webpack:///src/app/auth/login/login.page.scss","webpack:///src/app/auth/login/login.page.ts","webpack:///src/app/services/auth/login/login.service.ts"],"names":["routes","path","component","LoginPageRoutingModule","imports","forChild","exports","LoginPageModule","declarations","LoginPage","router","http","global","loginService","alertController","create","cssClass","header","subHeader","message","buttons","alert","present","form","authenticate","results","subscribe","res","token","localStorage","setItem","user","username","id","navigate","presentAlert","selector","template","LoginService","urlLogin","apiRoot","body","value","password","post","httpOptions","pipe","console","log","err","providedIn"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAe;;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACKf,UAAMA,MAAM,GAAW,CACrB;AACEC,YAAI,EAAE,EADR;AAEEC,iBAAS,EAAE;AAFb,OADqB,CAAvB;;UAWaC,sBAAsB;AAAA;AAAA,O;;AAAtBA,4BAAsB,6DAJlC,+DAAS;AACRC,eAAO,EAAE,CAAC,6DAAaC,QAAb,CAAsBL,MAAtB,CAAD,CADD;AAERM,eAAO,EAAE,CAAC,4DAAD;AAFD,OAAT,CAIkC,GAAtBH,sBAAsB,CAAtB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UCGAI,eAAe;AAAA;AAAA,O;;AAAfA,qBAAe,6DAT3B,+DAAS;AACRH,eAAO,EAAE,CACP,4DADO,EAEP,0DAFO,EAGP,0DAHO,EAIP,4EAJO,CADD;AAORI,oBAAY,EAAE,CAAC,qDAAD;AAPN,OAAT,CAS2B,GAAfD,eAAe,CAAf;;;;;;;;;;;;;;;;ACnBb;AAAe;;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UCcFE,SAAS;AAEpB,2BAAqBC,MAArB,EAA8CC,IAA9C,EAAwEC,MAAxE,EAAuGC,YAAvG,EAA2IC,eAA3I,EAA6K;AAAA;;AAAxJ,eAAAJ,MAAA,GAAAA,MAAA;AAAyB,eAAAC,IAAA,GAAAA,IAAA;AAA0B,eAAAC,MAAA,GAAAA,MAAA;AAA+B,eAAAC,YAAA,GAAAA,YAAA;AAAoC,eAAAC,eAAA,GAAAA,eAAA;AAAoC;;AAF3J;AAAA;AAAA,yCAIC;;;;;;;;AACL,6BAAM,KAAKA,eAAL,CAAqBC,MAArB,CAA4B;AAC9CC,gCAAQ,EAAE,iBADoC;AAE9CC,8BAAM,EAAE,QAFsC;AAG9CC,iCAAS,EAAE,kBAHmC;AAI9CC,+BAAO,EAAE,uDAJqC;AAK9CC,+BAAO,EAAE,CAAC,IAAD;AALqC,uBAA5B,CAAN;;;AAARC,2B;;AAQN,6BAAMA,KAAK,CAACC,OAAN,EAAN;;;;;;;;;AACD;AAdmB;AAAA;AAAA,qCAgBT,CACV;AAjBmB;AAAA;AAAA,gCAmBRC,IAnBQ,EAmBJ;;;;;;;;;;AAEA,6BAAM,KAAKV,YAAL,CAAkBW,YAAlB,CAA+BD,IAA/B,CAAN;;;AAAVE,6B;AACJA,6BAAO,CAACC,SAAR,CAAkB,UAAAC,GAAG,EAAI;AACvB,4BAAGA,GAAG,CAACC,KAAP,EAAa;AACXC,sCAAY,CAACC,OAAb,CAAqB,OAArB,EAA6BH,GAAG,CAACC,KAAjC;AACAC,sCAAY,CAACC,OAAb,CAAqB,MAArB,wCACgBH,GAAG,CAACI,IAAJ,CAASC,QADzB,qCAEUL,GAAG,CAACI,IAAJ,CAASE,EAFnB;;AAIA,+BAAI,CAACvB,MAAL,CAAYwB,QAAZ,CAAqB,CAAC,WAAD,CAArB;AACD,yBAPD,MAOK;AACH,+BAAI,CAACC,YAAL;AACD;AAEF,uBAZD;;;;;;;;;AAaD;AAnCmB;;AAAA;AAAA,S;;;;gBAbb;;gBACA;;gBACA;;gBACA;;gBACA;;;;AASI1B,eAAS,6DALrB,gEAAU;AACT2B,gBAAQ,EAAE,WADD;AAETC,gBAAQ,EAAR;AAAA;AAAA,iGAFS;;;;AAAA,OAAV,CAKqB,GAAT5B,SAAS,CAAT;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UCDA6B,YAAY;AAIvB,8BAAoB3B,IAApB,EAA8CC,MAA9C,EAAqE;AAAA;;AAAjD,eAAAD,IAAA,GAAAA,IAAA;AAA0B,eAAAC,MAAA,GAAAA,MAAA;AAC5C,eAAK2B,QAAL,GAAc,KAAK3B,MAAL,CAAY4B,OAAZ,GAAsB,cAApC;AACD;;AANsB;AAAA;AAAA,uCAQVjB,IARU,EAQN;AACf,gBAAIkB,IAAI,2CAEQlB,IAAI,CAACmB,KAAL,CAAWV,QAFnB,uCAGQT,IAAI,CAACmB,KAAL,CAAWC,QAHnB,oBAAR;AAMA,mBAAO,KAAKhC,IAAL,CAAUiC,IAAV,WAAkB,KAAKL,QAAvB,GAAkCE,IAAlC,EAAuC,KAAK7B,MAAL,CAAYiC,WAAnD,EAAgEC,IAAhE,CACL,2DAAI,UAAArB,OAAO,EAAI;AACbsB,qBAAO,CAACC,GAAR,CAAY,WAAWvB,OAAvB;AACA,qBAAOA,OAAP;AACD,aAHD,CADK,EAKL,kEAAW,UAAAwB,GAAG;AAAA,qBAAI,gDAAGA,GAAH,CAAJ;AAAA,aAAd,CALK,CAAP;AAOD;AAtBsB;;AAAA;AAAA,S;;;;gBAbhB;;gBAIA;;;;AASIX,kBAAY,6DAHxB,iEAAW;AACVY,kBAAU,EAAE;AADF,OAAX,CAGwB,GAAZZ,YAAY,CAAZ","file":"auth-login-login-module-es5.js","sourcesContent":["export default \"<ion-content padding>\\n <form class=\\\"form_login\\\" #form=\\\"ngForm\\\" (ngSubmit)=\\\"login(form)\\\">\\n <ion-grid>\\n <ion-row class=\\\"ion-justify-content-center\\\">\\n <ion-col class=\\\"align-self-center\\\" size-md=\\\"6\\\" size-lg=\\\"5\\\" size-xs=\\\"12\\\">\\n <div class=\\\"ion-text-center\\\">\\n <h3>Se connecter</h3>\\n </div>\\n <div class=\\\"ion-padding\\\">\\n <ion-item>\\n <ion-input name=\\\"username\\\" type=\\\"utilisateur\\\" placeholder=\\\"Nom d'utilisateur\\\" ngModel required></ion-input>\\n </ion-item>\\n <ion-item>\\n <ion-input name=\\\"password\\\" type=\\\"password\\\" placeholder=\\\"Mot de passe\\\" ngModel required></ion-input>\\n </ion-item>\\n </div>\\n <div class=\\\"ion-padding\\\">\\n <ion-button size=\\\"large\\\" type=\\\"submit\\\" [disabled]=\\\"form.invalid\\\" expand=\\\"block\\\">Se connecter</ion-button>\\n </div>\\n </ion-col>\\n </ion-row>\\n </ion-grid>\\n </form>\\n</ion-content>\";","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\n\nimport { LoginPage } from './login.page';\n\nconst routes: Routes = [\n {\n path: '',\n component: LoginPage\n }\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class LoginPageRoutingModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { IonicModule } from '@ionic/angular';\n\nimport { LoginPageRoutingModule } from './login-routing.module';\n\nimport { LoginPage } from './login.page';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n IonicModule,\n LoginPageRoutingModule\n ],\n declarations: [LoginPage]\n})\nexport class LoginPageModule {}\n","export default \".form_login {\\n display: flex !important;\\n justify-content: center !important;\\n align-items: center !important;\\n height: 100%;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvYXV0aC9sb2dpbi9sb2dpbi5wYWdlLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDSSx3QkFBQTtFQUNBLGtDQUFBO0VBQ0EsOEJBQUE7RUFDQSxZQUFBO0FBQ0oiLCJmaWxlIjoic3JjL2FwcC9hdXRoL2xvZ2luL2xvZ2luLnBhZ2Uuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5mb3JtX2xvZ2luIHtcbiAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXIgIWltcG9ydGFudDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyICFpbXBvcnRhbnQ7XG4gICAgaGVpZ2h0OiAxMDAlO1xufSJdfQ== */\";","import { Component, OnInit } from '@angular/core';\nimport { Router } from \"@angular/router\";\nimport { HttpClient } from '@angular/common/http';\nimport { GlobalService } from \"../../global.service\";\nimport { LoginService } from '../../services/auth/login/login.service';\nimport { AlertController } from '@ionic/angular';\n\n\n\n@Component({\n selector: 'app-login',\n templateUrl: './login.page.html',\n styleUrls: ['./login.page.scss'],\n})\nexport class LoginPage implements OnInit {\n\n constructor(private router: Router, private http: HttpClient, private global: GlobalService, private loginService: LoginService, private alertController: AlertController) {}\n\n async presentAlert() {\n const alert = await this.alertController.create({\n cssClass: 'my-custom-class',\n header: 'Erreur',\n subHeader: 'authentification',\n message: 'Une erreur s\\'est produite durant l\\'authentification',\n buttons: ['OK']\n });\n\n await alert.present();\n }\n\n ngOnInit() {\n }\n\n async login(form){\n \n let results = await this.loginService.authenticate(form);\n results.subscribe(res => {\n if(res.token){\n localStorage.setItem('token',res.token)\n localStorage.setItem('user',`{\n \"username\":\"${res.user.username}\",\n \"id\":\"${res.user.id}\"\n }`)\n this.router.navigate(['tabs/tab1']);\n }else{\n this.presentAlert();\n }\n \n })\n }\n}","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { GlobalService } from \"../../../global.service\";\nimport { catchError } from 'rxjs/operators'; \nimport { of } from 'rxjs';\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LoginService {\n\n private urlLogin: String;\n\n constructor(private http: HttpClient, private global: GlobalService) { \n this.urlLogin=this.global.apiRoot + \"/users/login\"\n }\n\n authenticate(form): Observable<any> {\n let body = `\n {\n \"username\":\"${form.value.username}\",\n \"password\":\"${form.value.password}\"\n }\n `;\n return this.http.post(`${this.urlLogin}`,body,this.global.httpOptions).pipe(\n map(results => {\n console.log('RAW : ' + results)\n return results;\n }),\n catchError(err => of(err))\n )\n }\n}\n"]} \ No newline at end of file +{"version":3,"sources":["webpack:///src/app/auth/login/login.page.html","webpack:///src/app/auth/login/login-routing.module.ts","webpack:///src/app/auth/login/login.module.ts","webpack:///src/app/auth/login/login.page.scss","webpack:///src/app/auth/login/login.page.ts","webpack:///src/app/services/auth/login/login.service.ts"],"names":["routes","path","component","LoginPageRoutingModule","imports","forChild","exports","LoginPageModule","declarations","LoginPage","router","http","global","loginService","alertController","create","cssClass","header","subHeader","message","buttons","alert","present","form","authenticate","results","subscribe","res","token","localStorage","setItem","user","username","id","navigate","presentAlert","selector","template","LoginService","urlLogin","apiRoot","body","value","password","post","httpOptions","pipe","console","log","err","providedIn"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAe;;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACKf,UAAMA,MAAM,GAAW,CACrB;AACEC,YAAI,EAAE,EADR;AAEEC,iBAAS,EAAE;AAFb,OADqB,CAAvB;;UAWaC,sBAAsB;AAAA;AAAA,O;;AAAtBA,4BAAsB,6DAJlC,+DAAS;AACRC,eAAO,EAAE,CAAC,6DAAaC,QAAb,CAAsBL,MAAtB,CAAD,CADD;AAERM,eAAO,EAAE,CAAC,4DAAD;AAFD,OAAT,CAIkC,GAAtBH,sBAAsB,CAAtB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UCGAI,eAAe;AAAA;AAAA,O;;AAAfA,qBAAe,6DAT3B,+DAAS;AACRH,eAAO,EAAE,CACP,4DADO,EAEP,0DAFO,EAGP,0DAHO,EAIP,4EAJO,CADD;AAORI,oBAAY,EAAE,CAAC,qDAAD;AAPN,OAAT,CAS2B,GAAfD,eAAe,CAAf;;;;;;;;;;;;;;;;ACnBb;AAAe;;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UCaFE,SAAS;AAEpB,2BAAqBC,MAArB,EAA6CC,IAA7C,EAAuEC,MAAvE,EAAsGC,YAAtG,EACoBC,eADpB,EACsD;AAAA;;AADjC,eAAAJ,MAAA,GAAAA,MAAA;AAAwB,eAAAC,IAAA,GAAAA,IAAA;AAA0B,eAAAC,MAAA,GAAAA,MAAA;AAA+B,eAAAC,YAAA,GAAAA,YAAA;AAClF,eAAAC,eAAA,GAAAA,eAAA;AAAoC;;AAHpC;AAAA;AAAA,yCAKC;;;;;;;;AACL,6BAAM,KAAKA,eAAL,CAAqBC,MAArB,CAA4B;AAC9CC,gCAAQ,EAAE,iBADoC;AAE9CC,8BAAM,EAAE,QAFsC;AAG9CC,iCAAS,EAAE,kBAHmC;AAI9CC,+BAAO,EAAE,uDAJqC;AAK9CC,+BAAO,EAAE,CAAC,IAAD;AALqC,uBAA5B,CAAN;;;AAARC,2B;;AAQN,6BAAMA,KAAK,CAACC,OAAN,EAAN;;;;;;;;;AACD;AAfmB;AAAA;AAAA,qCAiBT,CACV;AAlBmB;AAAA;AAAA,gCAoBRC,IApBQ,EAoBJ;;;;;;;;;;AAEE,6BAAM,KAAKV,YAAL,CAAkBW,YAAlB,CAA+BD,IAA/B,CAAN;;;AAAVE,6B;AACNA,6BAAO,CAACC,SAAR,CAAkB,UAAAC,GAAG,EAAI;AACvB,4BAAKA,GAAG,CAACC,KAAT,EAAgB;AACdC,sCAAY,CAACC,OAAb,CAAqB,OAArB,EAA8BH,GAAG,CAACC,KAAlC;AACAC,sCAAY,CAACC,OAAb,CAAqB,MAArB,wCACgBH,GAAG,CAACI,IAAJ,CAASC,QADzB,qCAEUL,GAAG,CAACI,IAAJ,CAASE,EAFnB;;AAIA,+BAAI,CAACvB,MAAL,CAAYwB,QAAZ,CAAqB,CAAC,WAAD,CAArB;AACD,yBAPD,MAOK;AACH,+BAAI,CAACC,YAAL;AACD;AACF,uBAXD;;;;;;;;;AAYD;AAnCmB;;AAAA;AAAA,S;;;;gBAZb;;gBACA;;gBACA;;gBACA;;gBACA;;;;AAQI1B,eAAS,6DALrB,gEAAU;AACT2B,gBAAQ,EAAE,WADD;AAETC,gBAAQ,EAAR;AAAA;AAAA,iGAFS;;;;AAAA,OAAV,CAKqB,GAAT5B,SAAS,CAAT;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UCAA6B,YAAY;AAIvB,8BAAoB3B,IAApB,EAA8CC,MAA9C,EAAqE;AAAA;;AAAjD,eAAAD,IAAA,GAAAA,IAAA;AAA0B,eAAAC,MAAA,GAAAA,MAAA;AAC5C,eAAK2B,QAAL,GAAc,KAAK3B,MAAL,CAAY4B,OAAZ,GAAsB,cAApC;AACD;;AANsB;AAAA;AAAA,uCAQVjB,IARU,EAQN;AACf,gBAAIkB,IAAI,2CAEQlB,IAAI,CAACmB,KAAL,CAAWV,QAFnB,uCAGQT,IAAI,CAACmB,KAAL,CAAWC,QAHnB,oBAAR;AAMA,mBAAO,KAAKhC,IAAL,CAAUiC,IAAV,WAAkB,KAAKL,QAAvB,GAAkCE,IAAlC,EAAuC,KAAK7B,MAAL,CAAYiC,WAAnD,EAAgEC,IAAhE,CACL,2DAAI,UAAArB,OAAO,EAAI;AACbsB,qBAAO,CAACC,GAAR,CAAY,WAAWvB,OAAvB;AACA,qBAAOA,OAAP;AACD,aAHD,CADK,EAKL,kEAAW,UAAAwB,GAAG;AAAA,qBAAI,gDAAGA,GAAH,CAAJ;AAAA,aAAd,CALK,CAAP;AAOD;AAtBsB;;AAAA;AAAA,S;;;;gBAbhB;;gBAIA;;;;AASIX,kBAAY,6DAHxB,iEAAW;AACVY,kBAAU,EAAE;AADF,OAAX,CAGwB,GAAZZ,YAAY,CAAZ","file":"auth-login-login-module-es5.js","sourcesContent":["export default \"<ion-content padding>\\n <form class=\\\"form_login\\\" #form=\\\"ngForm\\\">\\n <ion-grid>\\n <ion-row class=\\\"ion-justify-content-center\\\">\\n <ion-col class=\\\"align-self-center\\\" size-md=\\\"6\\\" size-lg=\\\"5\\\" size-xs=\\\"12\\\">\\n <div class=\\\"ion-text-center\\\">\\n <h3>Se connecter</h3>\\n </div>\\n <div class=\\\"ion-padding\\\">\\n <ion-item>\\n <ion-input name=\\\"username\\\" type=\\\"utilisateur\\\" placeholder=\\\"Nom d'utilisateur\\\" ngModel required></ion-input>\\n </ion-item>\\n <ion-item>\\n <ion-input name=\\\"password\\\" type=\\\"password\\\" placeholder=\\\"Mot de passe\\\" ngModel required></ion-input>\\n </ion-item>\\n </div>\\n <div class=\\\"ion-padding\\\">\\n <ion-button size=\\\"large\\\" type=\\\"submit\\\" [disabled]=\\\"form.invalid\\\" expand=\\\"block\\\" (click)=\\\"login(form)\\\">Se connecter</ion-button>\\n </div>\\n <div class=\\\"ion-padding\\\">\\n <ion-button size=\\\"large\\\" routerLink=\\\"/register\\\" expand=\\\"block\\\">\\n S'inscrire\\n </ion-button>\\n </div>\\n </ion-col>\\n </ion-row>\\n </ion-grid>\\n </form>\\n</ion-content>\\n\";","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\n\nimport { LoginPage } from './login.page';\n\nconst routes: Routes = [\n {\n path: '',\n component: LoginPage\n }\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class LoginPageRoutingModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { IonicModule } from '@ionic/angular';\n\nimport { LoginPageRoutingModule } from './login-routing.module';\n\nimport { LoginPage } from './login.page';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n IonicModule,\n LoginPageRoutingModule\n ],\n declarations: [LoginPage]\n})\nexport class LoginPageModule {}\n","export default \".form_login {\\n display: flex !important;\\n justify-content: center !important;\\n align-items: center !important;\\n height: 100%;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvYXV0aC9sb2dpbi9sb2dpbi5wYWdlLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDSSx3QkFBQTtFQUNBLGtDQUFBO0VBQ0EsOEJBQUE7RUFDQSxZQUFBO0FBQ0oiLCJmaWxlIjoic3JjL2FwcC9hdXRoL2xvZ2luL2xvZ2luLnBhZ2Uuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5mb3JtX2xvZ2luIHtcbiAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXIgIWltcG9ydGFudDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyICFpbXBvcnRhbnQ7XG4gICAgaGVpZ2h0OiAxMDAlO1xufSJdfQ== */\";","import { Component, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { HttpClient } from '@angular/common/http';\nimport { GlobalService } from '../../global.service';\nimport { LoginService } from '../../services/auth/login/login.service';\nimport { AlertController } from '@ionic/angular';\n\n\n@Component({\n selector: 'app-login',\n templateUrl: './login.page.html',\n styleUrls: ['./login.page.scss'],\n})\nexport class LoginPage implements OnInit {\n\n constructor(private router: Router, private http: HttpClient, private global: GlobalService, private loginService: LoginService,\n private alertController: AlertController) {}\n\n async presentAlert() {\n const alert = await this.alertController.create({\n cssClass: 'my-custom-class',\n header: 'Erreur',\n subHeader: 'authentification',\n message: 'Une erreur s\\'est produite durant l\\'authentification',\n buttons: ['OK']\n });\n\n await alert.present();\n }\n\n ngOnInit() {\n }\n\n async login(form){\n \n const results = await this.loginService.authenticate(form);\n results.subscribe(res => {\n if ( res.token ){\n localStorage.setItem('token', res.token);\n localStorage.setItem('user', `{\n \"username\":\"${res.user.username}\",\n \"id\":\"${res.user.id}\"\n }`);\n this.router.navigate(['tabs/tab1']);\n }else{\n this.presentAlert();\n }\n });\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { GlobalService } from \"../../../global.service\";\nimport { catchError } from 'rxjs/operators'; \nimport { of } from 'rxjs';\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LoginService {\n\n private urlLogin: String;\n\n constructor(private http: HttpClient, private global: GlobalService) { \n this.urlLogin=this.global.apiRoot + \"/users/login\"\n }\n\n authenticate(form): Observable<any> {\n let body = `\n {\n \"username\":\"${form.value.username}\",\n \"password\":\"${form.value.password}\"\n }\n `;\n return this.http.post(`${this.urlLogin}`,body,this.global.httpOptions).pipe(\n map(results => {\n console.log('RAW : ' + results)\n return results;\n }),\n catchError(err => of(err))\n )\n }\n}\n"]} \ No newline at end of file diff --git a/ionic/www/auth-register-register-module-es2015.js b/ionic/www/auth-register-register-module-es2015.js new file mode 100644 index 0000000000000000000000000000000000000000..cda1229b69f05709df04804cfcc2e21df75e3453 --- /dev/null +++ b/ionic/www/auth-register-register-module-es2015.js @@ -0,0 +1,241 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([["auth-register-register-module"],{ + +/***/ "./node_modules/raw-loader/dist/cjs.js!./src/app/auth/register/register.page.html": +/*!****************************************************************************************!*\ + !*** ./node_modules/raw-loader/dist/cjs.js!./src/app/auth/register/register.page.html ***! + \****************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony default export */ __webpack_exports__["default"] = ("<ion-content padding>\n <form class=\"form_reg\" #form=\"ngForm\">\n <ion-grid>\n <ion-row class=\"ion-justify-content-center\">\n <ion-col class=\"align-self-center\" size-md=\"6\" size-lg=\"5\" size-xs=\"12\">\n <div class=\"ion-text-center\">\n <h3>S'inscrire</h3>\n </div>\n <div class=\"ion-padding\">\n <ion-item>\n <ion-input name=\"username\" type=\"utilisateur\" placeholder=\"Nom d'utilisateur\" ngModel required></ion-input>\n </ion-item>\n <ion-item>\n <ion-input name=\"password\" type=\"password\" placeholder=\"Mot de passe\" ngModel required></ion-input>\n </ion-item>\n </div>\n <div class=\"ion-padding\">\n <ion-button size=\"large\" type=\"submit\" [disabled]=\"form.invalid\" (click)=\"register(form)\" expand=\"block\">S'inscrire</ion-button>\n </div>\n <div class=\"ion-padding\">\n <ion-button size=\"large\" routerLink=\"/login\" expand=\"block\">\n Se connecter\n </ion-button>\n </div>\n </ion-col>\n </ion-row>\n </ion-grid>\n </form>\n</ion-content>\n"); + +/***/ }), + +/***/ "./src/app/auth/register/register-routing.module.ts": +/*!**********************************************************!*\ + !*** ./src/app/auth/register/register-routing.module.ts ***! + \**********************************************************/ +/*! exports provided: RegisterPageRoutingModule */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RegisterPageRoutingModule", function() { return RegisterPageRoutingModule; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js"); +/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/router */ "./node_modules/@angular/router/__ivy_ngcc__/fesm2015/router.js"); +/* harmony import */ var _register_page__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./register.page */ "./src/app/auth/register/register.page.ts"); + + + + +const routes = [ + { + path: '', + component: _register_page__WEBPACK_IMPORTED_MODULE_3__["RegisterPage"] + } +]; +let RegisterPageRoutingModule = class RegisterPageRoutingModule { +}; +RegisterPageRoutingModule = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ + Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["NgModule"])({ + imports: [_angular_router__WEBPACK_IMPORTED_MODULE_2__["RouterModule"].forChild(routes)], + exports: [_angular_router__WEBPACK_IMPORTED_MODULE_2__["RouterModule"]], + }) +], RegisterPageRoutingModule); + + + +/***/ }), + +/***/ "./src/app/auth/register/register.module.ts": +/*!**************************************************!*\ + !*** ./src/app/auth/register/register.module.ts ***! + \**************************************************/ +/*! exports provided: RegisterPageModule */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RegisterPageModule", function() { return RegisterPageModule; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js"); +/* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/common */ "./node_modules/@angular/common/__ivy_ngcc__/fesm2015/common.js"); +/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/forms */ "./node_modules/@angular/forms/__ivy_ngcc__/fesm2015/forms.js"); +/* harmony import */ var _ionic_angular__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @ionic/angular */ "./node_modules/@ionic/angular/__ivy_ngcc__/fesm2015/ionic-angular.js"); +/* harmony import */ var _register_routing_module__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./register-routing.module */ "./src/app/auth/register/register-routing.module.ts"); +/* harmony import */ var _register_page__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./register.page */ "./src/app/auth/register/register.page.ts"); + + + + + + + +let RegisterPageModule = class RegisterPageModule { +}; +RegisterPageModule = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ + Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["NgModule"])({ + imports: [ + _angular_common__WEBPACK_IMPORTED_MODULE_2__["CommonModule"], + _angular_forms__WEBPACK_IMPORTED_MODULE_3__["FormsModule"], + _ionic_angular__WEBPACK_IMPORTED_MODULE_4__["IonicModule"], + _register_routing_module__WEBPACK_IMPORTED_MODULE_5__["RegisterPageRoutingModule"] + ], + declarations: [_register_page__WEBPACK_IMPORTED_MODULE_6__["RegisterPage"]] + }) +], RegisterPageModule); + + + +/***/ }), + +/***/ "./src/app/auth/register/register.page.scss": +/*!**************************************************!*\ + !*** ./src/app/auth/register/register.page.scss ***! + \**************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony default export */ __webpack_exports__["default"] = (".form_reg {\n display: flex !important;\n justify-content: center !important;\n align-items: center !important;\n height: 100%;\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvYXV0aC9yZWdpc3Rlci9yZWdpc3Rlci5wYWdlLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDSSx3QkFBQTtFQUNBLGtDQUFBO0VBQ0EsOEJBQUE7RUFDQSxZQUFBO0FBQ0oiLCJmaWxlIjoic3JjL2FwcC9hdXRoL3JlZ2lzdGVyL3JlZ2lzdGVyLnBhZ2Uuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5mb3JtX3JlZyB7XG4gICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyICFpbXBvcnRhbnQ7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlciAhaW1wb3J0YW50O1xuICAgIGhlaWdodDogMTAwJTtcbn1cbiJdfQ== */"); + +/***/ }), + +/***/ "./src/app/auth/register/register.page.ts": +/*!************************************************!*\ + !*** ./src/app/auth/register/register.page.ts ***! + \************************************************/ +/*! exports provided: RegisterPage */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RegisterPage", function() { return RegisterPage; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js"); +/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/router */ "./node_modules/@angular/router/__ivy_ngcc__/fesm2015/router.js"); +/* harmony import */ var _angular_common_http__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/common/http */ "./node_modules/@angular/common/__ivy_ngcc__/fesm2015/http.js"); +/* harmony import */ var _global_service__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../global.service */ "./src/app/global.service.ts"); +/* harmony import */ var _ionic_angular__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @ionic/angular */ "./node_modules/@ionic/angular/__ivy_ngcc__/fesm2015/ionic-angular.js"); +/* harmony import */ var _services_auth_register_register_service__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../services/auth/register/register.service */ "./src/app/services/auth/register/register.service.ts"); + + + + + + + +let RegisterPage = class RegisterPage { + constructor(router, http, global, registerService, alertController) { + this.router = router; + this.http = http; + this.global = global; + this.registerService = registerService; + this.alertController = alertController; + } + presentAlert() { + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function* () { + const alert = yield this.alertController.create({ + cssClass: 'my-custom-class', + header: 'Erreur', + subHeader: 'authentification', + message: 'Une erreur s\'est produite durant l\'inscription', + buttons: ['OK'] + }); + yield alert.present(); + }); + } + ngOnInit() { + } + register(form) { + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function* () { + const results = yield this.registerService.register(form); + results.subscribe(res => { + console.log(results); + this.router.navigate(['login']); + }); + }); + } +}; +RegisterPage.ctorParameters = () => [ + { type: _angular_router__WEBPACK_IMPORTED_MODULE_2__["Router"] }, + { type: _angular_common_http__WEBPACK_IMPORTED_MODULE_3__["HttpClient"] }, + { type: _global_service__WEBPACK_IMPORTED_MODULE_4__["GlobalService"] }, + { type: _services_auth_register_register_service__WEBPACK_IMPORTED_MODULE_6__["RegisterService"] }, + { type: _ionic_angular__WEBPACK_IMPORTED_MODULE_5__["AlertController"] } +]; +RegisterPage = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ + Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({ + selector: 'app-register', + template: Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"])(__webpack_require__(/*! raw-loader!./register.page.html */ "./node_modules/raw-loader/dist/cjs.js!./src/app/auth/register/register.page.html")).default, + styles: [Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"])(__webpack_require__(/*! ./register.page.scss */ "./src/app/auth/register/register.page.scss")).default] + }) +], RegisterPage); + + + +/***/ }), + +/***/ "./src/app/services/auth/register/register.service.ts": +/*!************************************************************!*\ + !*** ./src/app/services/auth/register/register.service.ts ***! + \************************************************************/ +/*! exports provided: RegisterService */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RegisterService", function() { return RegisterService; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); +/* harmony import */ var _angular_common_http__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/common/http */ "./node_modules/@angular/common/__ivy_ngcc__/fesm2015/http.js"); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js"); +/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! rxjs/operators */ "./node_modules/rxjs/_esm2015/operators/index.js"); +/* harmony import */ var _global_service__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../../global.service */ "./src/app/global.service.ts"); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! rxjs */ "./node_modules/rxjs/_esm2015/index.js"); + + + + + + + +let RegisterService = class RegisterService { + constructor(http, global) { + this.http = http; + this.global = global; + this.urlRegister = this.global.apiRoot + '/users'; + } + register(form) { + const body = ` + { + "username":"${form.value.username}", + "password":"${form.value.password}", + "confirm":"${form.value.password}" + } + `; + return this.http.post(`${this.urlRegister}`, body, this.global.httpOptions).pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["map"])(results => { + console.log('RAW : ' + results); + return results; + }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["catchError"])(err => Object(rxjs__WEBPACK_IMPORTED_MODULE_5__["of"])(err))); + } +}; +RegisterService.ctorParameters = () => [ + { type: _angular_common_http__WEBPACK_IMPORTED_MODULE_1__["HttpClient"] }, + { type: _global_service__WEBPACK_IMPORTED_MODULE_4__["GlobalService"] } +]; +RegisterService = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ + Object(_angular_core__WEBPACK_IMPORTED_MODULE_2__["Injectable"])({ + providedIn: 'root' + }) +], RegisterService); + + + +/***/ }) + +}]); +//# sourceMappingURL=auth-register-register-module-es2015.js.map \ No newline at end of file diff --git a/ionic/www/auth-register-register-module-es2015.js.map b/ionic/www/auth-register-register-module-es2015.js.map new file mode 100644 index 0000000000000000000000000000000000000000..25f909c5623a13fc6e2d7cf64151bd21f5865658 --- /dev/null +++ b/ionic/www/auth-register-register-module-es2015.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["./src/app/auth/register/register.page.html","./src/app/auth/register/register-routing.module.ts","./src/app/auth/register/register.module.ts","./src/app/auth/register/register.page.scss","./src/app/auth/register/register.page.ts","./src/app/services/auth/register/register.service.ts"],"names":[],"mappings":";;;;;;;;;;AAAA;AAAe,4vCAA6rC,E;;;;;;;;;;;;;;;;;;;ACAnqC;AACc;AAER;AAE/C,MAAM,MAAM,GAAW;IACrB;QACE,IAAI,EAAE,EAAE;QACR,SAAS,EAAE,2DAAY;KACxB;CACF,CAAC;IAMW,yBAAyB,SAAzB,yBAAyB;CAAG;AAA5B,yBAAyB;IAJrC,8DAAQ,CAAC;QACR,OAAO,EAAE,CAAC,4DAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACxC,OAAO,EAAE,CAAC,4DAAY,CAAC;KACxB,CAAC;GACW,yBAAyB,CAAG;AAAH;;;;;;;;;;;;;;;;;;;;;;;AChBG;AACM;AACF;AAEA;AAEyB;AAEvB;IAWlC,kBAAkB,SAAlB,kBAAkB;CAAG;AAArB,kBAAkB;IAT9B,8DAAQ,CAAC;QACR,OAAO,EAAE;YACP,4DAAY;YACZ,0DAAW;YACX,0DAAW;YACX,kFAAyB;SAC1B;QACD,YAAY,EAAE,CAAC,2DAAY,CAAC;KAC7B,CAAC;GACW,kBAAkB,CAAG;AAAH;;;;;;;;;;;;;ACnB/B;AAAe,2EAAY,6BAA6B,uCAAuC,mCAAmC,iBAAiB,GAAG,6CAA6C,+eAA+e,E;;;;;;;;;;;;;;;;;;;;;;ACAhoB;AACT;AACS;AACG;AACJ;AAC+B;IAUnE,YAAY,SAAZ,YAAY;IAEvB,YAAqB,MAAc,EAAU,IAAgB,EAAU,MAAqB,EAAU,eAAgC,EAClH,eAAgC;QAD/B,WAAM,GAAN,MAAM,CAAQ;QAAU,SAAI,GAAJ,IAAI,CAAY;QAAU,WAAM,GAAN,MAAM,CAAe;QAAU,oBAAe,GAAf,eAAe,CAAiB;QAClH,oBAAe,GAAf,eAAe,CAAiB;IAAG,CAAC;IAElD,YAAY;;YAChB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;gBAC9C,QAAQ,EAAE,iBAAiB;gBAC3B,MAAM,EAAE,QAAQ;gBAChB,SAAS,EAAE,kBAAkB;gBAC7B,OAAO,EAAE,kDAAkD;gBAC3D,OAAO,EAAE,CAAC,IAAI,CAAC;aAChB,CAAC,CAAC;YAEH,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC;QACxB,CAAC;KAAA;IAED,QAAQ;IACR,CAAC;IAEK,QAAQ,CAAC,IAAI;;YACjB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC1D,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;gBACtB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBACrB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;YAClC,CAAC,CAAC,CAAC;QACL,CAAC;KAAA;CACF;;YAzCQ,sDAAM;YACN,+DAAU;YACV,6DAAa;YAEb,wFAAe;YADf,8DAAe;;AAWX,YAAY;IALxB,+DAAS,CAAC;QACT,QAAQ,EAAE,cAAc;QACxB,+NAAmC;;KAEpC,CAAC;GACW,YAAY,CA2BxB;AA3BwB;;;;;;;;;;;;;;;;;;;;;;ACfyB;AACP;AAEN;AACmB;AACZ;AAClB;IAOb,eAAe,SAAf,eAAe;IAI1B,YAAoB,IAAgB,EAAU,MAAqB;QAA/C,SAAI,GAAJ,IAAI,CAAY;QAAU,WAAM,GAAN,MAAM,CAAe;QACjE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,QAAQ;IACnD,CAAC;IAED,QAAQ,CAAC,IAAI;QACX,MAAM,IAAI,GAAG;;oBAEG,IAAI,CAAC,KAAK,CAAC,QAAQ;oBACnB,IAAI,CAAC,KAAK,CAAC,QAAQ;mBACpB,IAAI,CAAC,KAAK,CAAC,QAAQ;;KAEjC,CAAC;QACF,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,EAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAC/E,0DAAG,CAAC,OAAO,CAAC,EAAE;YACZ,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,OAAO,CAAC,CAAC;YAChC,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC,EACF,iEAAU,CAAC,GAAG,CAAC,EAAE,CAAC,+CAAE,CAAC,GAAG,CAAC,CAAC,CAC3B,CAAC;IACJ,CAAC;CACF;;YArCQ,+DAAU;YAIV,6DAAa;;AAST,eAAe;IAH3B,gEAAU,CAAC;QACV,UAAU,EAAE,MAAM;KACnB,CAAC;GACW,eAAe,CAwB3B;AAxB2B","file":"auth-register-register-module-es2015.js","sourcesContent":["export default \"<ion-content padding>\\n <form class=\\\"form_reg\\\" #form=\\\"ngForm\\\">\\n <ion-grid>\\n <ion-row class=\\\"ion-justify-content-center\\\">\\n <ion-col class=\\\"align-self-center\\\" size-md=\\\"6\\\" size-lg=\\\"5\\\" size-xs=\\\"12\\\">\\n <div class=\\\"ion-text-center\\\">\\n <h3>S'inscrire</h3>\\n </div>\\n <div class=\\\"ion-padding\\\">\\n <ion-item>\\n <ion-input name=\\\"username\\\" type=\\\"utilisateur\\\" placeholder=\\\"Nom d'utilisateur\\\" ngModel required></ion-input>\\n </ion-item>\\n <ion-item>\\n <ion-input name=\\\"password\\\" type=\\\"password\\\" placeholder=\\\"Mot de passe\\\" ngModel required></ion-input>\\n </ion-item>\\n </div>\\n <div class=\\\"ion-padding\\\">\\n <ion-button size=\\\"large\\\" type=\\\"submit\\\" [disabled]=\\\"form.invalid\\\" (click)=\\\"register(form)\\\" expand=\\\"block\\\">S'inscrire</ion-button>\\n </div>\\n <div class=\\\"ion-padding\\\">\\n <ion-button size=\\\"large\\\" routerLink=\\\"/login\\\" expand=\\\"block\\\">\\n Se connecter\\n </ion-button>\\n </div>\\n </ion-col>\\n </ion-row>\\n </ion-grid>\\n </form>\\n</ion-content>\\n\";","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\n\nimport { RegisterPage } from './register.page';\n\nconst routes: Routes = [\n {\n path: '',\n component: RegisterPage\n }\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class RegisterPageRoutingModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { IonicModule } from '@ionic/angular';\n\nimport { RegisterPageRoutingModule } from './register-routing.module';\n\nimport { RegisterPage } from './register.page';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n IonicModule,\n RegisterPageRoutingModule\n ],\n declarations: [RegisterPage]\n})\nexport class RegisterPageModule {}\n","export default \".form_reg {\\n display: flex !important;\\n justify-content: center !important;\\n align-items: center !important;\\n height: 100%;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvYXV0aC9yZWdpc3Rlci9yZWdpc3Rlci5wYWdlLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDSSx3QkFBQTtFQUNBLGtDQUFBO0VBQ0EsOEJBQUE7RUFDQSxZQUFBO0FBQ0oiLCJmaWxlIjoic3JjL2FwcC9hdXRoL3JlZ2lzdGVyL3JlZ2lzdGVyLnBhZ2Uuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5mb3JtX3JlZyB7XG4gICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyICFpbXBvcnRhbnQ7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlciAhaW1wb3J0YW50O1xuICAgIGhlaWdodDogMTAwJTtcbn1cbiJdfQ== */\";","import { Component, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { HttpClient } from '@angular/common/http';\nimport { GlobalService } from '../../global.service';\nimport { AlertController } from '@ionic/angular';\nimport { RegisterService } from '../../services/auth/register/register.service';\nimport {LoginService} from '../../services/auth/login/login.service';\n\n\n\n@Component({\n selector: 'app-register',\n templateUrl: './register.page.html',\n styleUrls: ['./register.page.scss'],\n})\nexport class RegisterPage implements OnInit {\n\n constructor(private router: Router, private http: HttpClient, private global: GlobalService, private registerService: RegisterService,\n private alertController: AlertController) {}\n\n async presentAlert() {\n const alert = await this.alertController.create({\n cssClass: 'my-custom-class',\n header: 'Erreur',\n subHeader: 'authentification',\n message: 'Une erreur s\\'est produite durant l\\'inscription',\n buttons: ['OK']\n });\n\n await alert.present();\n }\n\n ngOnInit() {\n }\n\n async register(form){\n const results = await this.registerService.register(form);\n results.subscribe(res => {\n console.log(results);\n this.router.navigate(['login']);\n });\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { GlobalService } from '../../../global.service';\nimport { catchError } from 'rxjs/operators'; \nimport { of } from 'rxjs';\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class RegisterService {\n\n private urlRegister: string;\n\n constructor(private http: HttpClient, private global: GlobalService) {\n this.urlRegister = this.global.apiRoot + '/users'\n }\n\n register(form): Observable<any> {\n const body = `\n {\n \"username\":\"${form.value.username}\",\n \"password\":\"${form.value.password}\",\n \"confirm\":\"${form.value.password}\"\n }\n `;\n return this.http.post(`${this.urlRegister}`, body , this.global.httpOptions).pipe(\n map(results => {\n console.log('RAW : ' + results);\n return results;\n }),\n catchError(err => of(err))\n );\n }\n}\n"],"sourceRoot":"webpack:///"} \ No newline at end of file diff --git a/ionic/www/auth-register-register-module-es5.js b/ionic/www/auth-register-register-module-es5.js new file mode 100644 index 0000000000000000000000000000000000000000..ed716f5f703ede38679ba87c49e6cbf2a3d7f2de --- /dev/null +++ b/ionic/www/auth-register-register-module-es5.js @@ -0,0 +1,446 @@ +(function () { + function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + + function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + + function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + + (window["webpackJsonp"] = window["webpackJsonp"] || []).push([["auth-register-register-module"], { + /***/ + "./node_modules/raw-loader/dist/cjs.js!./src/app/auth/register/register.page.html": + /*!****************************************************************************************!*\ + !*** ./node_modules/raw-loader/dist/cjs.js!./src/app/auth/register/register.page.html ***! + \****************************************************************************************/ + + /*! exports provided: default */ + + /***/ + function node_modulesRawLoaderDistCjsJsSrcAppAuthRegisterRegisterPageHtml(module, __webpack_exports__, __webpack_require__) { + "use strict"; + + __webpack_require__.r(__webpack_exports__); + /* harmony default export */ + + + __webpack_exports__["default"] = "<ion-content padding>\n <form class=\"form_reg\" #form=\"ngForm\">\n <ion-grid>\n <ion-row class=\"ion-justify-content-center\">\n <ion-col class=\"align-self-center\" size-md=\"6\" size-lg=\"5\" size-xs=\"12\">\n <div class=\"ion-text-center\">\n <h3>S'inscrire</h3>\n </div>\n <div class=\"ion-padding\">\n <ion-item>\n <ion-input name=\"username\" type=\"utilisateur\" placeholder=\"Nom d'utilisateur\" ngModel required></ion-input>\n </ion-item>\n <ion-item>\n <ion-input name=\"password\" type=\"password\" placeholder=\"Mot de passe\" ngModel required></ion-input>\n </ion-item>\n </div>\n <div class=\"ion-padding\">\n <ion-button size=\"large\" type=\"submit\" [disabled]=\"form.invalid\" (click)=\"register(form)\" expand=\"block\">S'inscrire</ion-button>\n </div>\n <div class=\"ion-padding\">\n <ion-button size=\"large\" routerLink=\"/login\" expand=\"block\">\n Se connecter\n </ion-button>\n </div>\n </ion-col>\n </ion-row>\n </ion-grid>\n </form>\n</ion-content>\n"; + /***/ + }, + + /***/ + "./src/app/auth/register/register-routing.module.ts": + /*!**********************************************************!*\ + !*** ./src/app/auth/register/register-routing.module.ts ***! + \**********************************************************/ + + /*! exports provided: RegisterPageRoutingModule */ + + /***/ + function srcAppAuthRegisterRegisterRoutingModuleTs(module, __webpack_exports__, __webpack_require__) { + "use strict"; + + __webpack_require__.r(__webpack_exports__); + /* harmony export (binding) */ + + + __webpack_require__.d(__webpack_exports__, "RegisterPageRoutingModule", function () { + return RegisterPageRoutingModule; + }); + /* harmony import */ + + + var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( + /*! tslib */ + "./node_modules/tslib/tslib.es6.js"); + /* harmony import */ + + + var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( + /*! @angular/core */ + "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js"); + /* harmony import */ + + + var _angular_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( + /*! @angular/router */ + "./node_modules/@angular/router/__ivy_ngcc__/fesm2015/router.js"); + /* harmony import */ + + + var _register_page__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( + /*! ./register.page */ + "./src/app/auth/register/register.page.ts"); + + var routes = [{ + path: '', + component: _register_page__WEBPACK_IMPORTED_MODULE_3__["RegisterPage"] + }]; + + var RegisterPageRoutingModule = function RegisterPageRoutingModule() { + _classCallCheck(this, RegisterPageRoutingModule); + }; + + RegisterPageRoutingModule = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["NgModule"])({ + imports: [_angular_router__WEBPACK_IMPORTED_MODULE_2__["RouterModule"].forChild(routes)], + exports: [_angular_router__WEBPACK_IMPORTED_MODULE_2__["RouterModule"]] + })], RegisterPageRoutingModule); + /***/ + }, + + /***/ + "./src/app/auth/register/register.module.ts": + /*!**************************************************!*\ + !*** ./src/app/auth/register/register.module.ts ***! + \**************************************************/ + + /*! exports provided: RegisterPageModule */ + + /***/ + function srcAppAuthRegisterRegisterModuleTs(module, __webpack_exports__, __webpack_require__) { + "use strict"; + + __webpack_require__.r(__webpack_exports__); + /* harmony export (binding) */ + + + __webpack_require__.d(__webpack_exports__, "RegisterPageModule", function () { + return RegisterPageModule; + }); + /* harmony import */ + + + var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( + /*! tslib */ + "./node_modules/tslib/tslib.es6.js"); + /* harmony import */ + + + var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( + /*! @angular/core */ + "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js"); + /* harmony import */ + + + var _angular_common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( + /*! @angular/common */ + "./node_modules/@angular/common/__ivy_ngcc__/fesm2015/common.js"); + /* harmony import */ + + + var _angular_forms__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( + /*! @angular/forms */ + "./node_modules/@angular/forms/__ivy_ngcc__/fesm2015/forms.js"); + /* harmony import */ + + + var _ionic_angular__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( + /*! @ionic/angular */ + "./node_modules/@ionic/angular/__ivy_ngcc__/fesm2015/ionic-angular.js"); + /* harmony import */ + + + var _register_routing_module__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( + /*! ./register-routing.module */ + "./src/app/auth/register/register-routing.module.ts"); + /* harmony import */ + + + var _register_page__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__( + /*! ./register.page */ + "./src/app/auth/register/register.page.ts"); + + var RegisterPageModule = function RegisterPageModule() { + _classCallCheck(this, RegisterPageModule); + }; + + RegisterPageModule = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["NgModule"])({ + imports: [_angular_common__WEBPACK_IMPORTED_MODULE_2__["CommonModule"], _angular_forms__WEBPACK_IMPORTED_MODULE_3__["FormsModule"], _ionic_angular__WEBPACK_IMPORTED_MODULE_4__["IonicModule"], _register_routing_module__WEBPACK_IMPORTED_MODULE_5__["RegisterPageRoutingModule"]], + declarations: [_register_page__WEBPACK_IMPORTED_MODULE_6__["RegisterPage"]] + })], RegisterPageModule); + /***/ + }, + + /***/ + "./src/app/auth/register/register.page.scss": + /*!**************************************************!*\ + !*** ./src/app/auth/register/register.page.scss ***! + \**************************************************/ + + /*! exports provided: default */ + + /***/ + function srcAppAuthRegisterRegisterPageScss(module, __webpack_exports__, __webpack_require__) { + "use strict"; + + __webpack_require__.r(__webpack_exports__); + /* harmony default export */ + + + __webpack_exports__["default"] = ".form_reg {\n display: flex !important;\n justify-content: center !important;\n align-items: center !important;\n height: 100%;\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvYXV0aC9yZWdpc3Rlci9yZWdpc3Rlci5wYWdlLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDSSx3QkFBQTtFQUNBLGtDQUFBO0VBQ0EsOEJBQUE7RUFDQSxZQUFBO0FBQ0oiLCJmaWxlIjoic3JjL2FwcC9hdXRoL3JlZ2lzdGVyL3JlZ2lzdGVyLnBhZ2Uuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5mb3JtX3JlZyB7XG4gICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyICFpbXBvcnRhbnQ7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlciAhaW1wb3J0YW50O1xuICAgIGhlaWdodDogMTAwJTtcbn1cbiJdfQ== */"; + /***/ + }, + + /***/ + "./src/app/auth/register/register.page.ts": + /*!************************************************!*\ + !*** ./src/app/auth/register/register.page.ts ***! + \************************************************/ + + /*! exports provided: RegisterPage */ + + /***/ + function srcAppAuthRegisterRegisterPageTs(module, __webpack_exports__, __webpack_require__) { + "use strict"; + + __webpack_require__.r(__webpack_exports__); + /* harmony export (binding) */ + + + __webpack_require__.d(__webpack_exports__, "RegisterPage", function () { + return RegisterPage; + }); + /* harmony import */ + + + var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( + /*! tslib */ + "./node_modules/tslib/tslib.es6.js"); + /* harmony import */ + + + var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( + /*! @angular/core */ + "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js"); + /* harmony import */ + + + var _angular_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( + /*! @angular/router */ + "./node_modules/@angular/router/__ivy_ngcc__/fesm2015/router.js"); + /* harmony import */ + + + var _angular_common_http__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( + /*! @angular/common/http */ + "./node_modules/@angular/common/__ivy_ngcc__/fesm2015/http.js"); + /* harmony import */ + + + var _global_service__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( + /*! ../../global.service */ + "./src/app/global.service.ts"); + /* harmony import */ + + + var _ionic_angular__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( + /*! @ionic/angular */ + "./node_modules/@ionic/angular/__ivy_ngcc__/fesm2015/ionic-angular.js"); + /* harmony import */ + + + var _services_auth_register_register_service__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__( + /*! ../../services/auth/register/register.service */ + "./src/app/services/auth/register/register.service.ts"); + + var RegisterPage = /*#__PURE__*/function () { + function RegisterPage(router, http, global, registerService, alertController) { + _classCallCheck(this, RegisterPage); + + this.router = router; + this.http = http; + this.global = global; + this.registerService = registerService; + this.alertController = alertController; + } + + _createClass(RegisterPage, [{ + key: "presentAlert", + value: function presentAlert() { + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() { + var alert; + return regeneratorRuntime.wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + _context.next = 2; + return this.alertController.create({ + cssClass: 'my-custom-class', + header: 'Erreur', + subHeader: 'authentification', + message: 'Une erreur s\'est produite durant l\'inscription', + buttons: ['OK'] + }); + + case 2: + alert = _context.sent; + _context.next = 5; + return alert.present(); + + case 5: + case "end": + return _context.stop(); + } + } + }, _callee, this); + })); + } + }, { + key: "ngOnInit", + value: function ngOnInit() {} + }, { + key: "register", + value: function register(form) { + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee2() { + var _this = this; + + var results; + return regeneratorRuntime.wrap(function _callee2$(_context2) { + while (1) { + switch (_context2.prev = _context2.next) { + case 0: + _context2.next = 2; + return this.registerService.register(form); + + case 2: + results = _context2.sent; + results.subscribe(function (res) { + console.log(results); + + _this.router.navigate(['login']); + }); + + case 4: + case "end": + return _context2.stop(); + } + } + }, _callee2, this); + })); + } + }]); + + return RegisterPage; + }(); + + RegisterPage.ctorParameters = function () { + return [{ + type: _angular_router__WEBPACK_IMPORTED_MODULE_2__["Router"] + }, { + type: _angular_common_http__WEBPACK_IMPORTED_MODULE_3__["HttpClient"] + }, { + type: _global_service__WEBPACK_IMPORTED_MODULE_4__["GlobalService"] + }, { + type: _services_auth_register_register_service__WEBPACK_IMPORTED_MODULE_6__["RegisterService"] + }, { + type: _ionic_angular__WEBPACK_IMPORTED_MODULE_5__["AlertController"] + }]; + }; + + RegisterPage = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({ + selector: 'app-register', + template: Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"])(__webpack_require__( + /*! raw-loader!./register.page.html */ + "./node_modules/raw-loader/dist/cjs.js!./src/app/auth/register/register.page.html"))["default"], + styles: [Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"])(__webpack_require__( + /*! ./register.page.scss */ + "./src/app/auth/register/register.page.scss"))["default"]] + })], RegisterPage); + /***/ + }, + + /***/ + "./src/app/services/auth/register/register.service.ts": + /*!************************************************************!*\ + !*** ./src/app/services/auth/register/register.service.ts ***! + \************************************************************/ + + /*! exports provided: RegisterService */ + + /***/ + function srcAppServicesAuthRegisterRegisterServiceTs(module, __webpack_exports__, __webpack_require__) { + "use strict"; + + __webpack_require__.r(__webpack_exports__); + /* harmony export (binding) */ + + + __webpack_require__.d(__webpack_exports__, "RegisterService", function () { + return RegisterService; + }); + /* harmony import */ + + + var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( + /*! tslib */ + "./node_modules/tslib/tslib.es6.js"); + /* harmony import */ + + + var _angular_common_http__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( + /*! @angular/common/http */ + "./node_modules/@angular/common/__ivy_ngcc__/fesm2015/http.js"); + /* harmony import */ + + + var _angular_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( + /*! @angular/core */ + "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js"); + /* harmony import */ + + + var rxjs_operators__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( + /*! rxjs/operators */ + "./node_modules/rxjs/_esm2015/operators/index.js"); + /* harmony import */ + + + var _global_service__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( + /*! ../../../global.service */ + "./src/app/global.service.ts"); + /* harmony import */ + + + var rxjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( + /*! rxjs */ + "./node_modules/rxjs/_esm2015/index.js"); + + var RegisterService = /*#__PURE__*/function () { + function RegisterService(http, global) { + _classCallCheck(this, RegisterService); + + this.http = http; + this.global = global; + this.urlRegister = this.global.apiRoot + '/users'; + } + + _createClass(RegisterService, [{ + key: "register", + value: function register(form) { + var body = "\n {\n \"username\":\"".concat(form.value.username, "\",\n \"password\":\"").concat(form.value.password, "\",\n \"confirm\":\"").concat(form.value.password, "\"\n }\n "); + return this.http.post("".concat(this.urlRegister), body, this.global.httpOptions).pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["map"])(function (results) { + console.log('RAW : ' + results); + return results; + }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["catchError"])(function (err) { + return Object(rxjs__WEBPACK_IMPORTED_MODULE_5__["of"])(err); + })); + } + }]); + + return RegisterService; + }(); + + RegisterService.ctorParameters = function () { + return [{ + type: _angular_common_http__WEBPACK_IMPORTED_MODULE_1__["HttpClient"] + }, { + type: _global_service__WEBPACK_IMPORTED_MODULE_4__["GlobalService"] + }]; + }; + + RegisterService = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([Object(_angular_core__WEBPACK_IMPORTED_MODULE_2__["Injectable"])({ + providedIn: 'root' + })], RegisterService); + /***/ + } + }]); +})(); +//# sourceMappingURL=auth-register-register-module-es5.js.map \ No newline at end of file diff --git a/ionic/www/auth-register-register-module-es5.js.map b/ionic/www/auth-register-register-module-es5.js.map new file mode 100644 index 0000000000000000000000000000000000000000..114010d36f0643b9a031d986bf930169446fd20a --- /dev/null +++ b/ionic/www/auth-register-register-module-es5.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///src/app/auth/register/register.page.html","webpack:///src/app/auth/register/register-routing.module.ts","webpack:///src/app/auth/register/register.module.ts","webpack:///src/app/auth/register/register.page.scss","webpack:///src/app/auth/register/register.page.ts","webpack:///src/app/services/auth/register/register.service.ts"],"names":["routes","path","component","RegisterPageRoutingModule","imports","forChild","exports","RegisterPageModule","declarations","RegisterPage","router","http","global","registerService","alertController","create","cssClass","header","subHeader","message","buttons","alert","present","form","register","results","subscribe","res","console","log","navigate","selector","template","RegisterService","urlRegister","apiRoot","body","value","username","password","post","httpOptions","pipe","err","providedIn"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAe;;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACKf,UAAMA,MAAM,GAAW,CACrB;AACEC,YAAI,EAAE,EADR;AAEEC,iBAAS,EAAE;AAFb,OADqB,CAAvB;;UAWaC,yBAAyB;AAAA;AAAA,O;;AAAzBA,+BAAyB,6DAJrC,+DAAS;AACRC,eAAO,EAAE,CAAC,6DAAaC,QAAb,CAAsBL,MAAtB,CAAD,CADD;AAERM,eAAO,EAAE,CAAC,4DAAD;AAFD,OAAT,CAIqC,GAAzBH,yBAAyB,CAAzB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UCGAI,kBAAkB;AAAA;AAAA,O;;AAAlBA,wBAAkB,6DAT9B,+DAAS;AACRH,eAAO,EAAE,CACP,4DADO,EAEP,0DAFO,EAGP,0DAHO,EAIP,kFAJO,CADD;AAORI,oBAAY,EAAE,CAAC,2DAAD;AAPN,OAAT,CAS8B,GAAlBD,kBAAkB,CAAlB;;;;;;;;;;;;;;;;ACnBb;AAAe;;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UCeFE,YAAY;AAEvB,8BAAqBC,MAArB,EAA6CC,IAA7C,EAAuEC,MAAvE,EAAsGC,eAAtG,EACoBC,eADpB,EACsD;AAAA;;AADjC,eAAAJ,MAAA,GAAAA,MAAA;AAAwB,eAAAC,IAAA,GAAAA,IAAA;AAA0B,eAAAC,MAAA,GAAAA,MAAA;AAA+B,eAAAC,eAAA,GAAAA,eAAA;AAClF,eAAAC,eAAA,GAAAA,eAAA;AAAoC;;AAHjC;AAAA;AAAA,yCAKF;;;;;;;;AACL,6BAAM,KAAKA,eAAL,CAAqBC,MAArB,CAA4B;AAC9CC,gCAAQ,EAAE,iBADoC;AAE9CC,8BAAM,EAAE,QAFsC;AAG9CC,iCAAS,EAAE,kBAHmC;AAI9CC,+BAAO,EAAE,kDAJqC;AAK9CC,+BAAO,EAAE,CAAC,IAAD;AALqC,uBAA5B,CAAN;;;AAARC,2B;;AAQN,6BAAMA,KAAK,CAACC,OAAN,EAAN;;;;;;;;;AACD;AAfsB;AAAA;AAAA,qCAiBZ,CACV;AAlBsB;AAAA;AAAA,mCAoBRC,IApBQ,EAoBJ;;;;;;;;;;AACD,6BAAM,KAAKV,eAAL,CAAqBW,QAArB,CAA8BD,IAA9B,CAAN;;;AAAVE,6B;AACNA,6BAAO,CAACC,SAAR,CAAkB,UAAAC,GAAG,EAAI;AACvBC,+BAAO,CAACC,GAAR,CAAYJ,OAAZ;;AACA,6BAAI,CAACf,MAAL,CAAYoB,QAAZ,CAAqB,CAAC,OAAD,CAArB;AACD,uBAHD;;;;;;;;;AAID;AA1BsB;;AAAA;AAAA,S;;;;gBAdhB;;gBACA;;gBACA;;gBAEA;;gBADA;;;;AAWIrB,kBAAY,6DALxB,gEAAU;AACTsB,gBAAQ,EAAE,cADD;AAETC,gBAAQ,EAAR;AAAA;AAAA,uGAFS;;;;AAAA,OAAV,CAKwB,GAAZvB,YAAY,CAAZ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UCFAwB,eAAe;AAI1B,iCAAoBtB,IAApB,EAA8CC,MAA9C,EAAqE;AAAA;;AAAjD,eAAAD,IAAA,GAAAA,IAAA;AAA0B,eAAAC,MAAA,GAAAA,MAAA;AAC5C,eAAKsB,WAAL,GAAmB,KAAKtB,MAAL,CAAYuB,OAAZ,GAAsB,QAAzC;AACD;;AANyB;AAAA;AAAA,mCAQjBZ,IARiB,EAQb;AACX,gBAAMa,IAAI,2CAEMb,IAAI,CAACc,KAAL,CAAWC,QAFjB,uCAGMf,IAAI,CAACc,KAAL,CAAWE,QAHjB,sCAIKhB,IAAI,CAACc,KAAL,CAAWE,QAJhB,oBAAV;AAOA,mBAAO,KAAK5B,IAAL,CAAU6B,IAAV,WAAkB,KAAKN,WAAvB,GAAsCE,IAAtC,EAA6C,KAAKxB,MAAL,CAAY6B,WAAzD,EAAsEC,IAAtE,CACL,2DAAI,UAAAjB,OAAO,EAAI;AACbG,qBAAO,CAACC,GAAR,CAAY,WAAWJ,OAAvB;AACA,qBAAOA,OAAP;AACD,aAHD,CADK,EAKL,kEAAW,UAAAkB,GAAG;AAAA,qBAAI,gDAAGA,GAAH,CAAJ;AAAA,aAAd,CALK,CAAP;AAOD;AAvByB;;AAAA;AAAA,S;;;;gBAbnB;;gBAIA;;;;AASIV,qBAAe,6DAH3B,iEAAW;AACVW,kBAAU,EAAE;AADF,OAAX,CAG2B,GAAfX,eAAe,CAAf","file":"auth-register-register-module-es5.js","sourcesContent":["export default \"<ion-content padding>\\n <form class=\\\"form_reg\\\" #form=\\\"ngForm\\\">\\n <ion-grid>\\n <ion-row class=\\\"ion-justify-content-center\\\">\\n <ion-col class=\\\"align-self-center\\\" size-md=\\\"6\\\" size-lg=\\\"5\\\" size-xs=\\\"12\\\">\\n <div class=\\\"ion-text-center\\\">\\n <h3>S'inscrire</h3>\\n </div>\\n <div class=\\\"ion-padding\\\">\\n <ion-item>\\n <ion-input name=\\\"username\\\" type=\\\"utilisateur\\\" placeholder=\\\"Nom d'utilisateur\\\" ngModel required></ion-input>\\n </ion-item>\\n <ion-item>\\n <ion-input name=\\\"password\\\" type=\\\"password\\\" placeholder=\\\"Mot de passe\\\" ngModel required></ion-input>\\n </ion-item>\\n </div>\\n <div class=\\\"ion-padding\\\">\\n <ion-button size=\\\"large\\\" type=\\\"submit\\\" [disabled]=\\\"form.invalid\\\" (click)=\\\"register(form)\\\" expand=\\\"block\\\">S'inscrire</ion-button>\\n </div>\\n <div class=\\\"ion-padding\\\">\\n <ion-button size=\\\"large\\\" routerLink=\\\"/login\\\" expand=\\\"block\\\">\\n Se connecter\\n </ion-button>\\n </div>\\n </ion-col>\\n </ion-row>\\n </ion-grid>\\n </form>\\n</ion-content>\\n\";","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\n\nimport { RegisterPage } from './register.page';\n\nconst routes: Routes = [\n {\n path: '',\n component: RegisterPage\n }\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class RegisterPageRoutingModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { IonicModule } from '@ionic/angular';\n\nimport { RegisterPageRoutingModule } from './register-routing.module';\n\nimport { RegisterPage } from './register.page';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n IonicModule,\n RegisterPageRoutingModule\n ],\n declarations: [RegisterPage]\n})\nexport class RegisterPageModule {}\n","export default \".form_reg {\\n display: flex !important;\\n justify-content: center !important;\\n align-items: center !important;\\n height: 100%;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvYXV0aC9yZWdpc3Rlci9yZWdpc3Rlci5wYWdlLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDSSx3QkFBQTtFQUNBLGtDQUFBO0VBQ0EsOEJBQUE7RUFDQSxZQUFBO0FBQ0oiLCJmaWxlIjoic3JjL2FwcC9hdXRoL3JlZ2lzdGVyL3JlZ2lzdGVyLnBhZ2Uuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5mb3JtX3JlZyB7XG4gICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyICFpbXBvcnRhbnQ7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlciAhaW1wb3J0YW50O1xuICAgIGhlaWdodDogMTAwJTtcbn1cbiJdfQ== */\";","import { Component, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { HttpClient } from '@angular/common/http';\nimport { GlobalService } from '../../global.service';\nimport { AlertController } from '@ionic/angular';\nimport { RegisterService } from '../../services/auth/register/register.service';\nimport {LoginService} from '../../services/auth/login/login.service';\n\n\n\n@Component({\n selector: 'app-register',\n templateUrl: './register.page.html',\n styleUrls: ['./register.page.scss'],\n})\nexport class RegisterPage implements OnInit {\n\n constructor(private router: Router, private http: HttpClient, private global: GlobalService, private registerService: RegisterService,\n private alertController: AlertController) {}\n\n async presentAlert() {\n const alert = await this.alertController.create({\n cssClass: 'my-custom-class',\n header: 'Erreur',\n subHeader: 'authentification',\n message: 'Une erreur s\\'est produite durant l\\'inscription',\n buttons: ['OK']\n });\n\n await alert.present();\n }\n\n ngOnInit() {\n }\n\n async register(form){\n const results = await this.registerService.register(form);\n results.subscribe(res => {\n console.log(results);\n this.router.navigate(['login']);\n });\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { GlobalService } from '../../../global.service';\nimport { catchError } from 'rxjs/operators'; \nimport { of } from 'rxjs';\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class RegisterService {\n\n private urlRegister: string;\n\n constructor(private http: HttpClient, private global: GlobalService) {\n this.urlRegister = this.global.apiRoot + '/users'\n }\n\n register(form): Observable<any> {\n const body = `\n {\n \"username\":\"${form.value.username}\",\n \"password\":\"${form.value.password}\",\n \"confirm\":\"${form.value.password}\"\n }\n `;\n return this.http.post(`${this.urlRegister}`, body , this.global.httpOptions).pipe(\n map(results => {\n console.log('RAW : ' + results);\n return results;\n }),\n catchError(err => of(err))\n );\n }\n}\n"]} \ No newline at end of file diff --git a/ionic/www/common-es2015.js b/ionic/www/common-es2015.js index aed6a1546857362b409d27930db32914ff16d995..f2ae291d487440134b49c25e843f02144a737b38 100644 --- a/ionic/www/common-es2015.js +++ b/ionic/www/common-es2015.js @@ -548,19 +548,23 @@ __webpack_require__.r(__webpack_exports__); let GlobalService = class GlobalService { constructor() { - this.apiRoot = "http://localhost:3000"; + this.apiRoot = 'http://163.172.178.146:3000'; this.httpOptions = { headers: new _angular_common_http__WEBPACK_IMPORTED_MODULE_2__["HttpHeaders"]({ 'Content-Type': 'application/json', }) }; - this.headerHttpGetConnected = { + } + getHeaderHttpGetConnected() { + return { headers: new _angular_common_http__WEBPACK_IMPORTED_MODULE_2__["HttpHeaders"]({ 'Authorization': "Bearer " + localStorage.getItem('token'), 'user': JSON.parse(localStorage.getItem('user')) }) }; - this.headerHttpPostConnected = { + } + getHeaderHttpPostConnected() { + return { headers: new _angular_common_http__WEBPACK_IMPORTED_MODULE_2__["HttpHeaders"]({ 'Authorization': "Bearer " + localStorage.getItem('token'), 'user': JSON.parse(localStorage.getItem('user')), diff --git a/ionic/www/common-es2015.js.map b/ionic/www/common-es2015.js.map index 2991bad74ea9082719b59799262652eee0be78da..52c670397595ec5a421d828e709bce9275eced25 100644 --- a/ionic/www/common-es2015.js.map +++ b/ionic/www/common-es2015.js.map @@ -1 +1 @@ -{"version":3,"sources":["./node_modules/@ionic/core/dist/esm/button-active-a6787d69.js","./node_modules/@ionic/core/dist/esm/framework-delegate-4584ab5a.js","./node_modules/@ionic/core/dist/esm/haptic-27b3f981.js","./node_modules/@ionic/core/dist/esm/spinner-configs-cd7845af.js","./node_modules/@ionic/core/dist/esm/theme-ff3fc52f.js","./src/app/explore-container/explore-container.component.html","./src/app/explore-container/explore-container.component.scss","./src/app/explore-container/explore-container.component.ts","./src/app/explore-container/explore-container.module.ts","./src/app/global.service.ts"],"names":[],"mappings":";;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAqD;AACD;AACmE;;AAEvH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,4DAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,4DAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,wEAAa;AACtB;AACA;AACA;AACA,mEAAmE,qDAAoB;AACvF,kEAAkE,qDAAsB;AACxF;AACA;AACA,MAAM,6DAAkB;AACxB;AACA;AACA,GAAG;AACH;;AAE0C;;;;;;;;;;;;;AC/D1C;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEsD;;;;;;;;;;;;;ACjCtD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,QAAQ;AACjC,GAAG;AACH;AACA,iBAAiB,iBAAiB;AAClC,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,iBAAiB;AACpD;AACA;AACA;AACA;;AAEoI;;;;;;;;;;;;;ACzGpI;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA,gCAAgC,4BAA4B;AAC5D;AACA;AACA;AACA;AACA,oBAAoB,oBAAoB;AACxC,qBAAqB,oBAAoB;AACzC;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,gCAAgC,mBAAmB;AACnD;AACA;AACA;AACA;AACA,oBAAoB,oBAAoB;AACxC,qBAAqB,oBAAoB;AACzC;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,gBAAgB;AACrC;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,kCAAkC,sCAAsC;AACxE,gCAAgC,4BAA4B;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,kCAAkC,sCAAsC;AACxE,gCAAgC,4BAA4B;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEyB;;;;;;;;;;;;;AC7GzB;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,kCAAkC,MAAM,UAAU;AAC5H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEqF;;;;;;;;;;;;;ACtCrF;AAAe,oGAAqC,QAAQ,2JAA2J,E;;;;;;;;;;;;ACAvN;AAAe,4EAAa,uBAAuB,uBAAuB,YAAY,aAAa,aAAa,gCAAgC,GAAG,uBAAuB,oBAAoB,sBAAsB,GAAG,kBAAkB,oBAAoB,sBAAsB,mBAAmB,cAAc,GAAG,kBAAkB,0BAA0B,GAAG,6CAA6C,u9BAAu9B,E;;;;;;;;;;;;;;;;;ACAjzC;IAO5C,yBAAyB,SAAzB,yBAAyB;IAGpC,gBAAgB,CAAC;IAEjB,QAAQ,KAAI,CAAC;CAEd;;;mBANE,mDAAK;;AADK,yBAAyB;IALrC,+DAAS,CAAC;QACT,QAAQ,EAAE,uBAAuB;QACjC,+PAAiD;;KAElD,CAAC;GACW,yBAAyB,CAOrC;AAPqC;;;;;;;;;;;;;;;;;;;;;;ACPG;AACM;AACF;AAEA;AAE6B;IAO7D,+BAA+B,SAA/B,+BAA+B;CAAG;AAAlC,+BAA+B;IAL3C,8DAAQ,CAAC;QACR,OAAO,EAAE,CAAE,4DAAY,EAAE,0DAAW,EAAE,0DAAW,CAAC;QAClD,YAAY,EAAE,CAAC,sFAAyB,CAAC;QACzC,OAAO,EAAE,CAAC,sFAAyB,CAAC;KACrC,CAAC;GACW,+BAA+B,CAAG;AAAH;;;;;;;;;;;;;;;;;;;ACbD;AACQ;IAKtC,aAAa,SAAb,aAAa;IAOxB;QACE,IAAI,CAAC,OAAO,GAAG,uBAAuB,CAAC;QACvC,IAAI,CAAC,WAAW,GAAG;YACjB,OAAO,EAAE,IAAI,gEAAW,CAAC;gBACvB,cAAc,EAAG,kBAAkB;aACpC,CAAC;SACH,CAAC;QACF,IAAI,CAAC,sBAAsB,GAAG;YAC5B,OAAO,EAAE,IAAI,gEAAW,CAAC;gBACvB,eAAe,EAAG,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC;gBAC3D,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;aACjD,CAAC;SACH;QACD,IAAI,CAAC,uBAAuB,GAAG;YAC7B,OAAO,EAAE,IAAI,gEAAW,CAAC;gBACvB,eAAe,EAAG,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC;gBAC3D,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBAChD,cAAc,EAAG,kBAAkB;aACpC,CAAC;SACH;IACH,CAAC;CACF;;AA5BY,aAAa;IAHzB,gEAAU,CAAC;QACV,UAAU,EAAE,MAAM;KACnB,CAAC;GACW,aAAa,CA4BzB;AA5ByB","file":"common-es2015.js","sourcesContent":["import { c as writeTask } from './index-e806d1f6.js';\nimport { createGesture } from './index-f49d994d.js';\nimport { h as hapticSelectionEnd, a as hapticSelectionStart, b as hapticSelectionChanged } from './haptic-27b3f981.js';\n\nconst createButtonActiveGesture = (el, isButton) => {\n let currentTouchedButton;\n let initialTouchedButton;\n const activateButtonAtPoint = (x, y, hapticFeedbackFn) => {\n if (typeof document === 'undefined') {\n return;\n }\n const target = document.elementFromPoint(x, y);\n if (!target || !isButton(target)) {\n clearActiveButton();\n return;\n }\n if (target !== currentTouchedButton) {\n clearActiveButton();\n setActiveButton(target, hapticFeedbackFn);\n }\n };\n const setActiveButton = (button, hapticFeedbackFn) => {\n currentTouchedButton = button;\n if (!initialTouchedButton) {\n initialTouchedButton = currentTouchedButton;\n }\n const buttonToModify = currentTouchedButton;\n writeTask(() => buttonToModify.classList.add('ion-activated'));\n hapticFeedbackFn();\n };\n const clearActiveButton = (dispatchClick = false) => {\n if (!currentTouchedButton) {\n return;\n }\n const buttonToModify = currentTouchedButton;\n writeTask(() => buttonToModify.classList.remove('ion-activated'));\n /**\n * Clicking on one button, but releasing on another button\n * does not dispatch a click event in browsers, so we\n * need to do it manually here. Some browsers will\n * dispatch a click if clicking on one button, dragging over\n * another button, and releasing on the original button. In that\n * case, we need to make sure we do not cause a double click there.\n */\n if (dispatchClick && initialTouchedButton !== currentTouchedButton) {\n currentTouchedButton.click();\n }\n currentTouchedButton = undefined;\n };\n return createGesture({\n el,\n gestureName: 'buttonActiveDrag',\n threshold: 0,\n onStart: ev => activateButtonAtPoint(ev.currentX, ev.currentY, hapticSelectionStart),\n onMove: ev => activateButtonAtPoint(ev.currentX, ev.currentY, hapticSelectionChanged),\n onEnd: () => {\n clearActiveButton(true);\n hapticSelectionEnd();\n initialTouchedButton = undefined;\n }\n });\n};\n\nexport { createButtonActiveGesture as c };\n","const attachComponent = async (delegate, container, component, cssClasses, componentProps) => {\n if (delegate) {\n return delegate.attachViewToDom(container, component, componentProps, cssClasses);\n }\n if (typeof component !== 'string' && !(component instanceof HTMLElement)) {\n throw new Error('framework delegate is missing');\n }\n const el = (typeof component === 'string')\n ? container.ownerDocument && container.ownerDocument.createElement(component)\n : component;\n if (cssClasses) {\n cssClasses.forEach(c => el.classList.add(c));\n }\n if (componentProps) {\n Object.assign(el, componentProps);\n }\n container.appendChild(el);\n if (el.componentOnReady) {\n await el.componentOnReady();\n }\n return el;\n};\nconst detachComponent = (delegate, element) => {\n if (element) {\n if (delegate) {\n const container = element.parentElement;\n return delegate.removeViewFromDom(container, element);\n }\n element.remove();\n }\n return Promise.resolve();\n};\n\nexport { attachComponent as a, detachComponent as d };\n","const HapticEngine = {\n getEngine() {\n const win = window;\n return (win.TapticEngine) || (win.Capacitor && win.Capacitor.isPluginAvailable('Haptics') && win.Capacitor.Plugins.Haptics);\n },\n available() {\n return !!this.getEngine();\n },\n isCordova() {\n return !!window.TapticEngine;\n },\n isCapacitor() {\n const win = window;\n return !!win.Capacitor;\n },\n impact(options) {\n const engine = this.getEngine();\n if (!engine) {\n return;\n }\n const style = this.isCapacitor() ? options.style.toUpperCase() : options.style;\n engine.impact({ style });\n },\n notification(options) {\n const engine = this.getEngine();\n if (!engine) {\n return;\n }\n const style = this.isCapacitor() ? options.style.toUpperCase() : options.style;\n engine.notification({ style });\n },\n selection() {\n this.impact({ style: 'light' });\n },\n selectionStart() {\n const engine = this.getEngine();\n if (!engine) {\n return;\n }\n if (this.isCapacitor()) {\n engine.selectionStart();\n }\n else {\n engine.gestureSelectionStart();\n }\n },\n selectionChanged() {\n const engine = this.getEngine();\n if (!engine) {\n return;\n }\n if (this.isCapacitor()) {\n engine.selectionChanged();\n }\n else {\n engine.gestureSelectionChanged();\n }\n },\n selectionEnd() {\n const engine = this.getEngine();\n if (!engine) {\n return;\n }\n if (this.isCapacitor()) {\n engine.selectionEnd();\n }\n else {\n engine.gestureSelectionEnd();\n }\n }\n};\n/**\n * Trigger a selection changed haptic event. Good for one-time events\n * (not for gestures)\n */\nconst hapticSelection = () => {\n HapticEngine.selection();\n};\n/**\n * Tell the haptic engine that a gesture for a selection change is starting.\n */\nconst hapticSelectionStart = () => {\n HapticEngine.selectionStart();\n};\n/**\n * Tell the haptic engine that a selection changed during a gesture.\n */\nconst hapticSelectionChanged = () => {\n HapticEngine.selectionChanged();\n};\n/**\n * Tell the haptic engine we are done with a gesture. This needs to be\n * called lest resources are not properly recycled.\n */\nconst hapticSelectionEnd = () => {\n HapticEngine.selectionEnd();\n};\n/**\n * Use this to indicate success/failure/warning to the user.\n * options should be of the type `{ style: 'light' }` (or `medium`/`heavy`)\n */\nconst hapticImpact = (options) => {\n HapticEngine.impact(options);\n};\n\nexport { hapticSelectionStart as a, hapticSelectionChanged as b, hapticSelection as c, hapticImpact as d, hapticSelectionEnd as h };\n","const spinners = {\n 'bubbles': {\n dur: 1000,\n circles: 9,\n fn: (dur, index, total) => {\n const animationDelay = `${(dur * index / total) - dur}ms`;\n const angle = 2 * Math.PI * index / total;\n return {\n r: 5,\n style: {\n 'top': `${9 * Math.sin(angle)}px`,\n 'left': `${9 * Math.cos(angle)}px`,\n 'animation-delay': animationDelay,\n }\n };\n }\n },\n 'circles': {\n dur: 1000,\n circles: 8,\n fn: (dur, index, total) => {\n const step = index / total;\n const animationDelay = `${(dur * step) - dur}ms`;\n const angle = 2 * Math.PI * step;\n return {\n r: 5,\n style: {\n 'top': `${9 * Math.sin(angle)}px`,\n 'left': `${9 * Math.cos(angle)}px`,\n 'animation-delay': animationDelay,\n }\n };\n }\n },\n 'circular': {\n dur: 1400,\n elmDuration: true,\n circles: 1,\n fn: () => {\n return {\n r: 20,\n cx: 48,\n cy: 48,\n fill: 'none',\n viewBox: '24 24 48 48',\n transform: 'translate(0,0)',\n style: {}\n };\n }\n },\n 'crescent': {\n dur: 750,\n circles: 1,\n fn: () => {\n return {\n r: 26,\n style: {}\n };\n }\n },\n 'dots': {\n dur: 750,\n circles: 3,\n fn: (_, index) => {\n const animationDelay = -(110 * index) + 'ms';\n return {\n r: 6,\n style: {\n 'left': `${9 - (9 * index)}px`,\n 'animation-delay': animationDelay,\n }\n };\n }\n },\n 'lines': {\n dur: 1000,\n lines: 12,\n fn: (dur, index, total) => {\n const transform = `rotate(${30 * index + (index < 6 ? 180 : -180)}deg)`;\n const animationDelay = `${(dur * index / total) - dur}ms`;\n return {\n y1: 17,\n y2: 29,\n style: {\n 'transform': transform,\n 'animation-delay': animationDelay,\n }\n };\n }\n },\n 'lines-small': {\n dur: 1000,\n lines: 12,\n fn: (dur, index, total) => {\n const transform = `rotate(${30 * index + (index < 6 ? 180 : -180)}deg)`;\n const animationDelay = `${(dur * index / total) - dur}ms`;\n return {\n y1: 12,\n y2: 20,\n style: {\n 'transform': transform,\n 'animation-delay': animationDelay,\n }\n };\n }\n }\n};\nconst SPINNERS = spinners;\n\nexport { SPINNERS as S };\n","const hostContext = (selector, el) => {\n return el.closest(selector) !== null;\n};\n/**\n * Create the mode and color classes for the component based on the classes passed in\n */\nconst createColorClasses = (color, cssClassMap) => {\n return (typeof color === 'string' && color.length > 0) ? Object.assign({ 'ion-color': true, [`ion-color-${color}`]: true }, cssClassMap) : cssClassMap;\n};\nconst getClassList = (classes) => {\n if (classes !== undefined) {\n const array = Array.isArray(classes) ? classes : classes.split(' ');\n return array\n .filter(c => c != null)\n .map(c => c.trim())\n .filter(c => c !== '');\n }\n return [];\n};\nconst getClassMap = (classes) => {\n const map = {};\n getClassList(classes).forEach(c => map[c] = true);\n return map;\n};\nconst SCHEME = /^[a-z][a-z0-9+\\-.]*:/;\nconst openURL = async (url, ev, direction, animation) => {\n if (url != null && url[0] !== '#' && !SCHEME.test(url)) {\n const router = document.querySelector('ion-router');\n if (router) {\n if (ev != null) {\n ev.preventDefault();\n }\n return router.push(url, direction, animation);\n }\n }\n return false;\n};\n\nexport { createColorClasses as c, getClassMap as g, hostContext as h, openURL as o };\n","export default \"<div id=\\\"container\\\">\\n <strong>{{ name }}</strong>\\n <p>Explore <a target=\\\"_blank\\\" rel=\\\"noopener noreferrer\\\" href=\\\"https://ionicframework.com/docs/components\\\">UI Components</a></p>\\n</div>\";","export default \"#container {\\n text-align: center;\\n position: absolute;\\n left: 0;\\n right: 0;\\n top: 50%;\\n transform: translateY(-50%);\\n}\\n\\n#container strong {\\n font-size: 20px;\\n line-height: 26px;\\n}\\n\\n#container p {\\n font-size: 16px;\\n line-height: 22px;\\n color: #8c8c8c;\\n margin: 0;\\n}\\n\\n#container a {\\n text-decoration: none;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvZXhwbG9yZS1jb250YWluZXIvZXhwbG9yZS1jb250YWluZXIuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxrQkFBQTtFQUVBLGtCQUFBO0VBQ0EsT0FBQTtFQUNBLFFBQUE7RUFDQSxRQUFBO0VBQ0EsMkJBQUE7QUFBRjs7QUFHQTtFQUNFLGVBQUE7RUFDQSxpQkFBQTtBQUFGOztBQUdBO0VBQ0UsZUFBQTtFQUNBLGlCQUFBO0VBRUEsY0FBQTtFQUVBLFNBQUE7QUFGRjs7QUFLQTtFQUNFLHFCQUFBO0FBRkYiLCJmaWxlIjoic3JjL2FwcC9leHBsb3JlLWNvbnRhaW5lci9leHBsb3JlLWNvbnRhaW5lci5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIiNjb250YWluZXIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbn1cblxuI2NvbnRhaW5lciBzdHJvbmcge1xuICBmb250LXNpemU6IDIwcHg7XG4gIGxpbmUtaGVpZ2h0OiAyNnB4O1xufVxuXG4jY29udGFpbmVyIHAge1xuICBmb250LXNpemU6IDE2cHg7XG4gIGxpbmUtaGVpZ2h0OiAyMnB4O1xuXG4gIGNvbG9yOiAjOGM4YzhjO1xuXG4gIG1hcmdpbjogMDtcbn1cblxuI2NvbnRhaW5lciBhIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufSJdfQ== */\";","import { Component, OnInit, Input } from '@angular/core';\n\n@Component({\n selector: 'app-explore-container',\n templateUrl: './explore-container.component.html',\n styleUrls: ['./explore-container.component.scss'],\n})\nexport class ExploreContainerComponent implements OnInit {\n @Input() name: string;\n\n constructor() { }\n\n ngOnInit() {}\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { IonicModule } from '@ionic/angular';\n\nimport { ExploreContainerComponent } from './explore-container.component';\n\n@NgModule({\n imports: [ CommonModule, FormsModule, IonicModule],\n declarations: [ExploreContainerComponent],\n exports: [ExploreContainerComponent]\n})\nexport class ExploreContainerComponentModule {}\n","import { Injectable } from '@angular/core';\nimport { HttpHeaders } from '@angular/common/http';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class GlobalService {\n\n public apiRoot: string;\n public httpOptions;\n public headerHttpGetConnected;\n public headerHttpPostConnected;\n\n constructor() { \n this.apiRoot = \"http://localhost:3000\";\n this.httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n })\n };\n this.headerHttpGetConnected = {\n headers: new HttpHeaders({\n 'Authorization': \"Bearer \" + localStorage.getItem('token'),\n 'user': JSON.parse(localStorage.getItem('user'))\n })\n }\n this.headerHttpPostConnected = {\n headers: new HttpHeaders({\n 'Authorization': \"Bearer \" + localStorage.getItem('token'),\n 'user': JSON.parse(localStorage.getItem('user')),\n 'Content-Type': 'application/json'\n })\n }\n }\n}\n"],"sourceRoot":"webpack:///"} \ No newline at end of file +{"version":3,"sources":["./node_modules/@ionic/core/dist/esm/button-active-a6787d69.js","./node_modules/@ionic/core/dist/esm/framework-delegate-4584ab5a.js","./node_modules/@ionic/core/dist/esm/haptic-27b3f981.js","./node_modules/@ionic/core/dist/esm/spinner-configs-cd7845af.js","./node_modules/@ionic/core/dist/esm/theme-ff3fc52f.js","./src/app/explore-container/explore-container.component.html","./src/app/explore-container/explore-container.component.scss","./src/app/explore-container/explore-container.component.ts","./src/app/explore-container/explore-container.module.ts","./src/app/global.service.ts"],"names":[],"mappings":";;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAqD;AACD;AACmE;;AAEvH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,4DAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,4DAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,wEAAa;AACtB;AACA;AACA;AACA,mEAAmE,qDAAoB;AACvF,kEAAkE,qDAAsB;AACxF;AACA;AACA,MAAM,6DAAkB;AACxB;AACA;AACA,GAAG;AACH;;AAE0C;;;;;;;;;;;;;AC/D1C;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEsD;;;;;;;;;;;;;ACjCtD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,QAAQ;AACjC,GAAG;AACH;AACA,iBAAiB,iBAAiB;AAClC,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,iBAAiB;AACpD;AACA;AACA;AACA;;AAEoI;;;;;;;;;;;;;ACzGpI;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA,gCAAgC,4BAA4B;AAC5D;AACA;AACA;AACA;AACA,oBAAoB,oBAAoB;AACxC,qBAAqB,oBAAoB;AACzC;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,gCAAgC,mBAAmB;AACnD;AACA;AACA;AACA;AACA,oBAAoB,oBAAoB;AACxC,qBAAqB,oBAAoB;AACzC;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,gBAAgB;AACrC;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,kCAAkC,sCAAsC;AACxE,gCAAgC,4BAA4B;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,kCAAkC,sCAAsC;AACxE,gCAAgC,4BAA4B;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEyB;;;;;;;;;;;;;AC7GzB;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,kCAAkC,MAAM,UAAU;AAC5H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEqF;;;;;;;;;;;;;ACtCrF;AAAe,oGAAqC,QAAQ,2JAA2J,E;;;;;;;;;;;;ACAvN;AAAe,4EAAa,uBAAuB,uBAAuB,YAAY,aAAa,aAAa,gCAAgC,GAAG,uBAAuB,oBAAoB,sBAAsB,GAAG,kBAAkB,oBAAoB,sBAAsB,mBAAmB,cAAc,GAAG,kBAAkB,0BAA0B,GAAG,6CAA6C,u9BAAu9B,E;;;;;;;;;;;;;;;;;ACAjzC;IAO5C,yBAAyB,SAAzB,yBAAyB;IAGpC,gBAAgB,CAAC;IAEjB,QAAQ,KAAI,CAAC;CAEd;;;mBANE,mDAAK;;AADK,yBAAyB;IALrC,+DAAS,CAAC;QACT,QAAQ,EAAE,uBAAuB;QACjC,+PAAiD;;KAElD,CAAC;GACW,yBAAyB,CAOrC;AAPqC;;;;;;;;;;;;;;;;;;;;;;ACPG;AACM;AACF;AAEA;AAE6B;IAO7D,+BAA+B,SAA/B,+BAA+B;CAAG;AAAlC,+BAA+B;IAL3C,8DAAQ,CAAC;QACR,OAAO,EAAE,CAAE,4DAAY,EAAE,0DAAW,EAAE,0DAAW,CAAC;QAClD,YAAY,EAAE,CAAC,sFAAyB,CAAC;QACzC,OAAO,EAAE,CAAC,sFAAyB,CAAC;KACrC,CAAC;GACW,+BAA+B,CAAG;AAAH;;;;;;;;;;;;;;;;;;;ACbD;AACQ;IAKtC,aAAa,SAAb,aAAa;IAKxB;QACE,IAAI,CAAC,OAAO,GAAG,6BAA6B,CAAC;QAC7C,IAAI,CAAC,WAAW,GAAG;YACjB,OAAO,EAAE,IAAI,gEAAW,CAAC;gBACvB,cAAc,EAAG,kBAAkB;aACpC,CAAC;SACH,CAAC;IACJ,CAAC;IAED,yBAAyB;QACvB,OAAO;YACL,OAAO,EAAE,IAAI,gEAAW,CAAC;gBACvB,eAAe,EAAG,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC;gBAC3D,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;aACjD,CAAC;SACH,CAAC;IACJ,CAAC;IAED,0BAA0B;QACxB,OAAO;YACL,OAAO,EAAE,IAAI,gEAAW,CAAC;gBACvB,eAAe,EAAG,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC;gBAC3D,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBAChD,cAAc,EAAG,kBAAkB;aACpC,CAAC;SACH,CAAC;IACJ,CAAC;CACF;;AAhCY,aAAa;IAHzB,gEAAU,CAAC;QACV,UAAU,EAAE,MAAM;KACnB,CAAC;GACW,aAAa,CAgCzB;AAhCyB","file":"common-es2015.js","sourcesContent":["import { c as writeTask } from './index-e806d1f6.js';\nimport { createGesture } from './index-f49d994d.js';\nimport { h as hapticSelectionEnd, a as hapticSelectionStart, b as hapticSelectionChanged } from './haptic-27b3f981.js';\n\nconst createButtonActiveGesture = (el, isButton) => {\n let currentTouchedButton;\n let initialTouchedButton;\n const activateButtonAtPoint = (x, y, hapticFeedbackFn) => {\n if (typeof document === 'undefined') {\n return;\n }\n const target = document.elementFromPoint(x, y);\n if (!target || !isButton(target)) {\n clearActiveButton();\n return;\n }\n if (target !== currentTouchedButton) {\n clearActiveButton();\n setActiveButton(target, hapticFeedbackFn);\n }\n };\n const setActiveButton = (button, hapticFeedbackFn) => {\n currentTouchedButton = button;\n if (!initialTouchedButton) {\n initialTouchedButton = currentTouchedButton;\n }\n const buttonToModify = currentTouchedButton;\n writeTask(() => buttonToModify.classList.add('ion-activated'));\n hapticFeedbackFn();\n };\n const clearActiveButton = (dispatchClick = false) => {\n if (!currentTouchedButton) {\n return;\n }\n const buttonToModify = currentTouchedButton;\n writeTask(() => buttonToModify.classList.remove('ion-activated'));\n /**\n * Clicking on one button, but releasing on another button\n * does not dispatch a click event in browsers, so we\n * need to do it manually here. Some browsers will\n * dispatch a click if clicking on one button, dragging over\n * another button, and releasing on the original button. In that\n * case, we need to make sure we do not cause a double click there.\n */\n if (dispatchClick && initialTouchedButton !== currentTouchedButton) {\n currentTouchedButton.click();\n }\n currentTouchedButton = undefined;\n };\n return createGesture({\n el,\n gestureName: 'buttonActiveDrag',\n threshold: 0,\n onStart: ev => activateButtonAtPoint(ev.currentX, ev.currentY, hapticSelectionStart),\n onMove: ev => activateButtonAtPoint(ev.currentX, ev.currentY, hapticSelectionChanged),\n onEnd: () => {\n clearActiveButton(true);\n hapticSelectionEnd();\n initialTouchedButton = undefined;\n }\n });\n};\n\nexport { createButtonActiveGesture as c };\n","const attachComponent = async (delegate, container, component, cssClasses, componentProps) => {\n if (delegate) {\n return delegate.attachViewToDom(container, component, componentProps, cssClasses);\n }\n if (typeof component !== 'string' && !(component instanceof HTMLElement)) {\n throw new Error('framework delegate is missing');\n }\n const el = (typeof component === 'string')\n ? container.ownerDocument && container.ownerDocument.createElement(component)\n : component;\n if (cssClasses) {\n cssClasses.forEach(c => el.classList.add(c));\n }\n if (componentProps) {\n Object.assign(el, componentProps);\n }\n container.appendChild(el);\n if (el.componentOnReady) {\n await el.componentOnReady();\n }\n return el;\n};\nconst detachComponent = (delegate, element) => {\n if (element) {\n if (delegate) {\n const container = element.parentElement;\n return delegate.removeViewFromDom(container, element);\n }\n element.remove();\n }\n return Promise.resolve();\n};\n\nexport { attachComponent as a, detachComponent as d };\n","const HapticEngine = {\n getEngine() {\n const win = window;\n return (win.TapticEngine) || (win.Capacitor && win.Capacitor.isPluginAvailable('Haptics') && win.Capacitor.Plugins.Haptics);\n },\n available() {\n return !!this.getEngine();\n },\n isCordova() {\n return !!window.TapticEngine;\n },\n isCapacitor() {\n const win = window;\n return !!win.Capacitor;\n },\n impact(options) {\n const engine = this.getEngine();\n if (!engine) {\n return;\n }\n const style = this.isCapacitor() ? options.style.toUpperCase() : options.style;\n engine.impact({ style });\n },\n notification(options) {\n const engine = this.getEngine();\n if (!engine) {\n return;\n }\n const style = this.isCapacitor() ? options.style.toUpperCase() : options.style;\n engine.notification({ style });\n },\n selection() {\n this.impact({ style: 'light' });\n },\n selectionStart() {\n const engine = this.getEngine();\n if (!engine) {\n return;\n }\n if (this.isCapacitor()) {\n engine.selectionStart();\n }\n else {\n engine.gestureSelectionStart();\n }\n },\n selectionChanged() {\n const engine = this.getEngine();\n if (!engine) {\n return;\n }\n if (this.isCapacitor()) {\n engine.selectionChanged();\n }\n else {\n engine.gestureSelectionChanged();\n }\n },\n selectionEnd() {\n const engine = this.getEngine();\n if (!engine) {\n return;\n }\n if (this.isCapacitor()) {\n engine.selectionEnd();\n }\n else {\n engine.gestureSelectionEnd();\n }\n }\n};\n/**\n * Trigger a selection changed haptic event. Good for one-time events\n * (not for gestures)\n */\nconst hapticSelection = () => {\n HapticEngine.selection();\n};\n/**\n * Tell the haptic engine that a gesture for a selection change is starting.\n */\nconst hapticSelectionStart = () => {\n HapticEngine.selectionStart();\n};\n/**\n * Tell the haptic engine that a selection changed during a gesture.\n */\nconst hapticSelectionChanged = () => {\n HapticEngine.selectionChanged();\n};\n/**\n * Tell the haptic engine we are done with a gesture. This needs to be\n * called lest resources are not properly recycled.\n */\nconst hapticSelectionEnd = () => {\n HapticEngine.selectionEnd();\n};\n/**\n * Use this to indicate success/failure/warning to the user.\n * options should be of the type `{ style: 'light' }` (or `medium`/`heavy`)\n */\nconst hapticImpact = (options) => {\n HapticEngine.impact(options);\n};\n\nexport { hapticSelectionStart as a, hapticSelectionChanged as b, hapticSelection as c, hapticImpact as d, hapticSelectionEnd as h };\n","const spinners = {\n 'bubbles': {\n dur: 1000,\n circles: 9,\n fn: (dur, index, total) => {\n const animationDelay = `${(dur * index / total) - dur}ms`;\n const angle = 2 * Math.PI * index / total;\n return {\n r: 5,\n style: {\n 'top': `${9 * Math.sin(angle)}px`,\n 'left': `${9 * Math.cos(angle)}px`,\n 'animation-delay': animationDelay,\n }\n };\n }\n },\n 'circles': {\n dur: 1000,\n circles: 8,\n fn: (dur, index, total) => {\n const step = index / total;\n const animationDelay = `${(dur * step) - dur}ms`;\n const angle = 2 * Math.PI * step;\n return {\n r: 5,\n style: {\n 'top': `${9 * Math.sin(angle)}px`,\n 'left': `${9 * Math.cos(angle)}px`,\n 'animation-delay': animationDelay,\n }\n };\n }\n },\n 'circular': {\n dur: 1400,\n elmDuration: true,\n circles: 1,\n fn: () => {\n return {\n r: 20,\n cx: 48,\n cy: 48,\n fill: 'none',\n viewBox: '24 24 48 48',\n transform: 'translate(0,0)',\n style: {}\n };\n }\n },\n 'crescent': {\n dur: 750,\n circles: 1,\n fn: () => {\n return {\n r: 26,\n style: {}\n };\n }\n },\n 'dots': {\n dur: 750,\n circles: 3,\n fn: (_, index) => {\n const animationDelay = -(110 * index) + 'ms';\n return {\n r: 6,\n style: {\n 'left': `${9 - (9 * index)}px`,\n 'animation-delay': animationDelay,\n }\n };\n }\n },\n 'lines': {\n dur: 1000,\n lines: 12,\n fn: (dur, index, total) => {\n const transform = `rotate(${30 * index + (index < 6 ? 180 : -180)}deg)`;\n const animationDelay = `${(dur * index / total) - dur}ms`;\n return {\n y1: 17,\n y2: 29,\n style: {\n 'transform': transform,\n 'animation-delay': animationDelay,\n }\n };\n }\n },\n 'lines-small': {\n dur: 1000,\n lines: 12,\n fn: (dur, index, total) => {\n const transform = `rotate(${30 * index + (index < 6 ? 180 : -180)}deg)`;\n const animationDelay = `${(dur * index / total) - dur}ms`;\n return {\n y1: 12,\n y2: 20,\n style: {\n 'transform': transform,\n 'animation-delay': animationDelay,\n }\n };\n }\n }\n};\nconst SPINNERS = spinners;\n\nexport { SPINNERS as S };\n","const hostContext = (selector, el) => {\n return el.closest(selector) !== null;\n};\n/**\n * Create the mode and color classes for the component based on the classes passed in\n */\nconst createColorClasses = (color, cssClassMap) => {\n return (typeof color === 'string' && color.length > 0) ? Object.assign({ 'ion-color': true, [`ion-color-${color}`]: true }, cssClassMap) : cssClassMap;\n};\nconst getClassList = (classes) => {\n if (classes !== undefined) {\n const array = Array.isArray(classes) ? classes : classes.split(' ');\n return array\n .filter(c => c != null)\n .map(c => c.trim())\n .filter(c => c !== '');\n }\n return [];\n};\nconst getClassMap = (classes) => {\n const map = {};\n getClassList(classes).forEach(c => map[c] = true);\n return map;\n};\nconst SCHEME = /^[a-z][a-z0-9+\\-.]*:/;\nconst openURL = async (url, ev, direction, animation) => {\n if (url != null && url[0] !== '#' && !SCHEME.test(url)) {\n const router = document.querySelector('ion-router');\n if (router) {\n if (ev != null) {\n ev.preventDefault();\n }\n return router.push(url, direction, animation);\n }\n }\n return false;\n};\n\nexport { createColorClasses as c, getClassMap as g, hostContext as h, openURL as o };\n","export default \"<div id=\\\"container\\\">\\n <strong>{{ name }}</strong>\\n <p>Explore <a target=\\\"_blank\\\" rel=\\\"noopener noreferrer\\\" href=\\\"https://ionicframework.com/docs/components\\\">UI Components</a></p>\\n</div>\";","export default \"#container {\\n text-align: center;\\n position: absolute;\\n left: 0;\\n right: 0;\\n top: 50%;\\n transform: translateY(-50%);\\n}\\n\\n#container strong {\\n font-size: 20px;\\n line-height: 26px;\\n}\\n\\n#container p {\\n font-size: 16px;\\n line-height: 22px;\\n color: #8c8c8c;\\n margin: 0;\\n}\\n\\n#container a {\\n text-decoration: none;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvZXhwbG9yZS1jb250YWluZXIvZXhwbG9yZS1jb250YWluZXIuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxrQkFBQTtFQUVBLGtCQUFBO0VBQ0EsT0FBQTtFQUNBLFFBQUE7RUFDQSxRQUFBO0VBQ0EsMkJBQUE7QUFBRjs7QUFHQTtFQUNFLGVBQUE7RUFDQSxpQkFBQTtBQUFGOztBQUdBO0VBQ0UsZUFBQTtFQUNBLGlCQUFBO0VBRUEsY0FBQTtFQUVBLFNBQUE7QUFGRjs7QUFLQTtFQUNFLHFCQUFBO0FBRkYiLCJmaWxlIjoic3JjL2FwcC9leHBsb3JlLWNvbnRhaW5lci9leHBsb3JlLWNvbnRhaW5lci5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIiNjb250YWluZXIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbn1cblxuI2NvbnRhaW5lciBzdHJvbmcge1xuICBmb250LXNpemU6IDIwcHg7XG4gIGxpbmUtaGVpZ2h0OiAyNnB4O1xufVxuXG4jY29udGFpbmVyIHAge1xuICBmb250LXNpemU6IDE2cHg7XG4gIGxpbmUtaGVpZ2h0OiAyMnB4O1xuXG4gIGNvbG9yOiAjOGM4YzhjO1xuXG4gIG1hcmdpbjogMDtcbn1cblxuI2NvbnRhaW5lciBhIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufSJdfQ== */\";","import { Component, OnInit, Input } from '@angular/core';\n\n@Component({\n selector: 'app-explore-container',\n templateUrl: './explore-container.component.html',\n styleUrls: ['./explore-container.component.scss'],\n})\nexport class ExploreContainerComponent implements OnInit {\n @Input() name: string;\n\n constructor() { }\n\n ngOnInit() {}\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { IonicModule } from '@ionic/angular';\n\nimport { ExploreContainerComponent } from './explore-container.component';\n\n@NgModule({\n imports: [ CommonModule, FormsModule, IonicModule],\n declarations: [ExploreContainerComponent],\n exports: [ExploreContainerComponent]\n})\nexport class ExploreContainerComponentModule {}\n","import { Injectable } from '@angular/core';\nimport { HttpHeaders } from '@angular/common/http';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class GlobalService {\n\n public apiRoot: string;\n public httpOptions;\n\n constructor() { \n this.apiRoot = 'http://163.172.178.146:3000';\n this.httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n })\n };\n }\n\n getHeaderHttpGetConnected(){\n return {\n headers: new HttpHeaders({\n 'Authorization': \"Bearer \" + localStorage.getItem('token'),\n 'user': JSON.parse(localStorage.getItem('user'))\n })\n };\n }\n\n getHeaderHttpPostConnected(){\n return {\n headers: new HttpHeaders({\n 'Authorization': \"Bearer \" + localStorage.getItem('token'),\n 'user': JSON.parse(localStorage.getItem('user')),\n 'Content-Type': 'application/json'\n })\n };\n }\n}\n"],"sourceRoot":"webpack:///"} \ No newline at end of file diff --git a/ionic/www/common-es5.js b/ionic/www/common-es5.js index 5290696823f9263818aadcb50a8964aa7c578a36..abf88023202be7a2292de5e8cf61f0deda932b9d 100644 --- a/ionic/www/common-es5.js +++ b/ionic/www/common-es5.js @@ -875,29 +875,43 @@ /*! @angular/common/http */ "./node_modules/@angular/common/__ivy_ngcc__/fesm2015/http.js"); - var GlobalService = function GlobalService() { - _classCallCheck(this, GlobalService); - - this.apiRoot = "http://localhost:3000"; - this.httpOptions = { - headers: new _angular_common_http__WEBPACK_IMPORTED_MODULE_2__["HttpHeaders"]({ - 'Content-Type': 'application/json' - }) - }; - this.headerHttpGetConnected = { - headers: new _angular_common_http__WEBPACK_IMPORTED_MODULE_2__["HttpHeaders"]({ - 'Authorization': "Bearer " + localStorage.getItem('token'), - 'user': JSON.parse(localStorage.getItem('user')) - }) - }; - this.headerHttpPostConnected = { - headers: new _angular_common_http__WEBPACK_IMPORTED_MODULE_2__["HttpHeaders"]({ - 'Authorization': "Bearer " + localStorage.getItem('token'), - 'user': JSON.parse(localStorage.getItem('user')), - 'Content-Type': 'application/json' - }) - }; - }; + var GlobalService = /*#__PURE__*/function () { + function GlobalService() { + _classCallCheck(this, GlobalService); + + this.apiRoot = 'http://163.172.178.146:3000'; + this.httpOptions = { + headers: new _angular_common_http__WEBPACK_IMPORTED_MODULE_2__["HttpHeaders"]({ + 'Content-Type': 'application/json' + }) + }; + } + + _createClass(GlobalService, [{ + key: "getHeaderHttpGetConnected", + value: function getHeaderHttpGetConnected() { + return { + headers: new _angular_common_http__WEBPACK_IMPORTED_MODULE_2__["HttpHeaders"]({ + 'Authorization': "Bearer " + localStorage.getItem('token'), + 'user': JSON.parse(localStorage.getItem('user')) + }) + }; + } + }, { + key: "getHeaderHttpPostConnected", + value: function getHeaderHttpPostConnected() { + return { + headers: new _angular_common_http__WEBPACK_IMPORTED_MODULE_2__["HttpHeaders"]({ + 'Authorization': "Bearer " + localStorage.getItem('token'), + 'user': JSON.parse(localStorage.getItem('user')), + 'Content-Type': 'application/json' + }) + }; + } + }]); + + return GlobalService; + }(); GlobalService.ctorParameters = function () { return []; diff --git a/ionic/www/common-es5.js.map b/ionic/www/common-es5.js.map index b9080a4848a45ffbedb63e488bf6da2fd09dc6ab..01046a3e148d7c98c5c302d55ff4654ec0a30dcf 100644 --- a/ionic/www/common-es5.js.map +++ b/ionic/www/common-es5.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///node_modules/@ionic/core/dist/esm/button-active-a6787d69.js","webpack:///node_modules/@ionic/core/dist/esm/framework-delegate-4584ab5a.js","webpack:///node_modules/@ionic/core/dist/esm/haptic-27b3f981.js","webpack:///node_modules/@ionic/core/dist/esm/spinner-configs-cd7845af.js","webpack:///node_modules/@ionic/core/dist/esm/theme-ff3fc52f.js","webpack:///src/app/explore-container/explore-container.component.html","webpack:///src/app/explore-container/explore-container.component.scss","webpack:///src/app/explore-container/explore-container.component.ts","webpack:///src/app/explore-container/explore-container.module.ts","webpack:///src/app/global.service.ts"],"names":["createButtonActiveGesture","el","isButton","currentTouchedButton","initialTouchedButton","activateButtonAtPoint","x","y","hapticFeedbackFn","document","target","elementFromPoint","clearActiveButton","setActiveButton","button","buttonToModify","classList","add","dispatchClick","remove","click","undefined","gestureName","threshold","onStart","ev","currentX","currentY","onMove","onEnd","attachComponent","delegate","container","component","cssClasses","componentProps","attachViewToDom","HTMLElement","Error","ownerDocument","createElement","forEach","c","Object","assign","appendChild","componentOnReady","detachComponent","element","parentElement","removeViewFromDom","Promise","resolve","HapticEngine","getEngine","win","window","TapticEngine","Capacitor","isPluginAvailable","Plugins","Haptics","available","isCordova","isCapacitor","impact","options","engine","style","toUpperCase","notification","selection","selectionStart","gestureSelectionStart","selectionChanged","gestureSelectionChanged","selectionEnd","gestureSelectionEnd","hapticSelection","hapticSelectionStart","hapticSelectionChanged","hapticSelectionEnd","hapticImpact","spinners","dur","circles","fn","index","total","animationDelay","angle","Math","PI","r","sin","cos","step","elmDuration","cx","cy","fill","viewBox","transform","_","lines","y1","y2","SPINNERS","hostContext","selector","closest","createColorClasses","color","cssClassMap","length","getClassList","classes","array","Array","isArray","split","filter","map","trim","getClassMap","SCHEME","openURL","url","direction","animation","test","router","querySelector","preventDefault","push","ExploreContainerComponent","template","ExploreContainerComponentModule","imports","declarations","exports","GlobalService","apiRoot","httpOptions","headers","headerHttpGetConnected","localStorage","getItem","JSON","parse","headerHttpPostConnected","providedIn"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;;AAIA,UAAMA,yBAAyB,GAAG,SAA5BA,yBAA4B,CAACC,EAAD,EAAKC,QAAL,EAAkB;AAClD,YAAIC,oBAAJ;AACA,YAAIC,oBAAJ;;AACA,YAAMC,qBAAqB,GAAG,SAAxBA,qBAAwB,CAACC,CAAD,EAAIC,CAAJ,EAAOC,gBAAP,EAA4B;AACxD,cAAI,OAAOC,QAAP,KAAoB,WAAxB,EAAqC;AACnC;AACD;;AACD,cAAMC,MAAM,GAAGD,QAAQ,CAACE,gBAAT,CAA0BL,CAA1B,EAA6BC,CAA7B,CAAf;;AACA,cAAI,CAACG,MAAD,IAAW,CAACR,QAAQ,CAACQ,MAAD,CAAxB,EAAkC;AAChCE,6BAAiB;AACjB;AACD;;AACD,cAAIF,MAAM,KAAKP,oBAAf,EAAqC;AACnCS,6BAAiB;AACjBC,2BAAe,CAACH,MAAD,EAASF,gBAAT,CAAf;AACD;AACF,SAbD;;AAcA,YAAMK,eAAe,GAAG,SAAlBA,eAAkB,CAACC,MAAD,EAASN,gBAAT,EAA8B;AACpDL,8BAAoB,GAAGW,MAAvB;;AACA,cAAI,CAACV,oBAAL,EAA2B;AACzBA,gCAAoB,GAAGD,oBAAvB;AACD;;AACD,cAAMY,cAAc,GAAGZ,oBAAvB;AACA,uEAAU;AAAA,mBAAMY,cAAc,CAACC,SAAf,CAAyBC,GAAzB,CAA6B,eAA7B,CAAN;AAAA,WAAV;AACAT,0BAAgB;AACjB,SARD;;AASA,YAAMI,iBAAiB,GAAG,SAApBA,iBAAoB,GAA2B;AAAA,cAA1BM,aAA0B,uEAAV,KAAU;;AACnD,cAAI,CAACf,oBAAL,EAA2B;AACzB;AACD;;AACD,cAAMY,cAAc,GAAGZ,oBAAvB;AACA,uEAAU;AAAA,mBAAMY,cAAc,CAACC,SAAf,CAAyBG,MAAzB,CAAgC,eAAhC,CAAN;AAAA,WAAV;AACA;;;;;;;;;AAQA,cAAID,aAAa,IAAId,oBAAoB,KAAKD,oBAA9C,EAAoE;AAClEA,gCAAoB,CAACiB,KAArB;AACD;;AACDjB,8BAAoB,GAAGkB,SAAvB;AACD,SAlBD;;AAmBA,eAAO,yEAAc;AACnBpB,YAAE,EAAFA,EADmB;AAEnBqB,qBAAW,EAAE,kBAFM;AAGnBC,mBAAS,EAAE,CAHQ;AAInBC,iBAAO,EAAE,iBAAAC,EAAE;AAAA,mBAAIpB,qBAAqB,CAACoB,EAAE,CAACC,QAAJ,EAAcD,EAAE,CAACE,QAAjB,EAA2B,qDAA3B,CAAzB;AAAA,WAJQ;AAKnBC,gBAAM,EAAE,gBAAAH,EAAE;AAAA,mBAAIpB,qBAAqB,CAACoB,EAAE,CAACC,QAAJ,EAAcD,EAAE,CAACE,QAAjB,EAA2B,qDAA3B,CAAzB;AAAA,WALS;AAMnBE,eAAK,EAAE,iBAAM;AACXjB,6BAAiB,CAAC,IAAD,CAAjB;AACA;AACAR,gCAAoB,GAAGiB,SAAvB;AACD;AAVkB,SAAd,CAAP;AAYD,OAzDD;;;;;;;;;;;;;;;;;ACJA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;;AAAA,UAAMS,eAAe;AAAA,2EAAG,iBAAOC,QAAP,EAAiBC,SAAjB,EAA4BC,SAA5B,EAAuCC,UAAvC,EAAmDC,cAAnD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAClBJ,QADkB;AAAA;AAAA;AAAA;;AAAA,mDAEbA,QAAQ,CAACK,eAAT,CAAyBJ,SAAzB,EAAoCC,SAApC,EAA+CE,cAA/C,EAA+DD,UAA/D,CAFa;;AAAA;AAAA,wBAIlB,OAAOD,SAAP,KAAqB,QAArB,IAAiC,EAAEA,SAAS,YAAYI,WAAvB,CAJf;AAAA;AAAA;AAAA;;AAAA,wBAKd,IAAIC,KAAJ,CAAU,+BAAV,CALc;;AAAA;AAOhBrC,oBAPgB,GAOV,OAAOgC,SAAP,KAAqB,QAAtB,GACPD,SAAS,CAACO,aAAV,IAA2BP,SAAS,CAACO,aAAV,CAAwBC,aAAxB,CAAsCP,SAAtC,CADpB,GAEPA,SATkB;;AAUtB,sBAAIC,UAAJ,EAAgB;AACdA,8BAAU,CAACO,OAAX,CAAmB,UAAAC,CAAC;AAAA,6BAAIzC,EAAE,CAACe,SAAH,CAAaC,GAAb,CAAiByB,CAAjB,CAAJ;AAAA,qBAApB;AACD;;AACD,sBAAIP,cAAJ,EAAoB;AAClBQ,0BAAM,CAACC,MAAP,CAAc3C,EAAd,EAAkBkC,cAAlB;AACD;;AACDH,2BAAS,CAACa,WAAV,CAAsB5C,EAAtB;;AAhBsB,uBAiBlBA,EAAE,CAAC6C,gBAjBe;AAAA;AAAA;AAAA;;AAAA;AAAA,yBAkBd7C,EAAE,CAAC6C,gBAAH,EAlBc;;AAAA;AAAA,mDAoBf7C,EApBe;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,SAAH;;AAAA,wBAAf6B,eAAe;AAAA;AAAA;AAAA,SAArB;;AAsBA,UAAMiB,eAAe,GAAG,SAAlBA,eAAkB,CAAChB,QAAD,EAAWiB,OAAX,EAAuB;AAC7C,YAAIA,OAAJ,EAAa;AACX,cAAIjB,QAAJ,EAAc;AACZ,gBAAMC,SAAS,GAAGgB,OAAO,CAACC,aAA1B;AACA,mBAAOlB,QAAQ,CAACmB,iBAAT,CAA2BlB,SAA3B,EAAsCgB,OAAtC,CAAP;AACD;;AACDA,iBAAO,CAAC7B,MAAR;AACD;;AACD,eAAOgC,OAAO,CAACC,OAAR,EAAP;AACD,OATD;;;;;;;;;;;;;;;;;ACtBA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;;AAAA,UAAMC,YAAY,GAAG;AACnBC,iBADmB,uBACP;AACV,cAAMC,GAAG,GAAGC,MAAZ;AACA,iBAAQD,GAAG,CAACE,YAAL,IAAuBF,GAAG,CAACG,SAAJ,IAAiBH,GAAG,CAACG,SAAJ,CAAcC,iBAAd,CAAgC,SAAhC,CAAjB,IAA+DJ,GAAG,CAACG,SAAJ,CAAcE,OAAd,CAAsBC,OAAnH;AACD,SAJkB;AAKnBC,iBALmB,uBAKP;AACV,iBAAO,CAAC,CAAC,KAAKR,SAAL,EAAT;AACD,SAPkB;AAQnBS,iBARmB,uBAQP;AACV,iBAAO,CAAC,CAACP,MAAM,CAACC,YAAhB;AACD,SAVkB;AAWnBO,mBAXmB,yBAWL;AACZ,cAAMT,GAAG,GAAGC,MAAZ;AACA,iBAAO,CAAC,CAACD,GAAG,CAACG,SAAb;AACD,SAdkB;AAenBO,cAfmB,kBAeZC,OAfY,EAeH;AACd,cAAMC,MAAM,GAAG,KAAKb,SAAL,EAAf;;AACA,cAAI,CAACa,MAAL,EAAa;AACX;AACD;;AACD,cAAMC,KAAK,GAAG,KAAKJ,WAAL,KAAqBE,OAAO,CAACE,KAAR,CAAcC,WAAd,EAArB,GAAmDH,OAAO,CAACE,KAAzE;AACAD,gBAAM,CAACF,MAAP,CAAc;AAAEG,iBAAK,EAALA;AAAF,WAAd;AACD,SAtBkB;AAuBnBE,oBAvBmB,wBAuBNJ,OAvBM,EAuBG;AACpB,cAAMC,MAAM,GAAG,KAAKb,SAAL,EAAf;;AACA,cAAI,CAACa,MAAL,EAAa;AACX;AACD;;AACD,cAAMC,KAAK,GAAG,KAAKJ,WAAL,KAAqBE,OAAO,CAACE,KAAR,CAAcC,WAAd,EAArB,GAAmDH,OAAO,CAACE,KAAzE;AACAD,gBAAM,CAACG,YAAP,CAAoB;AAAEF,iBAAK,EAALA;AAAF,WAApB;AACD,SA9BkB;AA+BnBG,iBA/BmB,uBA+BP;AACV,eAAKN,MAAL,CAAY;AAAEG,iBAAK,EAAE;AAAT,WAAZ;AACD,SAjCkB;AAkCnBI,sBAlCmB,4BAkCF;AACf,cAAML,MAAM,GAAG,KAAKb,SAAL,EAAf;;AACA,cAAI,CAACa,MAAL,EAAa;AACX;AACD;;AACD,cAAI,KAAKH,WAAL,EAAJ,EAAwB;AACtBG,kBAAM,CAACK,cAAP;AACD,WAFD,MAGK;AACHL,kBAAM,CAACM,qBAAP;AACD;AACF,SA7CkB;AA8CnBC,wBA9CmB,8BA8CA;AACjB,cAAMP,MAAM,GAAG,KAAKb,SAAL,EAAf;;AACA,cAAI,CAACa,MAAL,EAAa;AACX;AACD;;AACD,cAAI,KAAKH,WAAL,EAAJ,EAAwB;AACtBG,kBAAM,CAACO,gBAAP;AACD,WAFD,MAGK;AACHP,kBAAM,CAACQ,uBAAP;AACD;AACF,SAzDkB;AA0DnBC,oBA1DmB,0BA0DJ;AACb,cAAMT,MAAM,GAAG,KAAKb,SAAL,EAAf;;AACA,cAAI,CAACa,MAAL,EAAa;AACX;AACD;;AACD,cAAI,KAAKH,WAAL,EAAJ,EAAwB;AACtBG,kBAAM,CAACS,YAAP;AACD,WAFD,MAGK;AACHT,kBAAM,CAACU,mBAAP;AACD;AACF;AArEkB,OAArB;AAuEA;;;;;AAIA,UAAMC,eAAe,GAAG,SAAlBA,eAAkB,GAAM;AAC5BzB,oBAAY,CAACkB,SAAb;AACD,OAFD;AAGA;;;;;AAGA,UAAMQ,oBAAoB,GAAG,SAAvBA,oBAAuB,GAAM;AACjC1B,oBAAY,CAACmB,cAAb;AACD,OAFD;AAGA;;;;;AAGA,UAAMQ,sBAAsB,GAAG,SAAzBA,sBAAyB,GAAM;AACnC3B,oBAAY,CAACqB,gBAAb;AACD,OAFD;AAGA;;;;;;AAIA,UAAMO,kBAAkB,GAAG,SAArBA,kBAAqB,GAAM;AAC/B5B,oBAAY,CAACuB,YAAb;AACD,OAFD;AAGA;;;;;;AAIA,UAAMM,YAAY,GAAG,SAAfA,YAAe,CAAChB,OAAD,EAAa;AAChCb,oBAAY,CAACY,MAAb,CAAoBC,OAApB;AACD,OAFD;;;;;;;;;;;;;;;;;ACrGA;AAAA;;;AAAA;AAAA;AAAA;;AAAA,UAAMiB,QAAQ,GAAG;AACf,mBAAW;AACTC,aAAG,EAAE,IADI;AAETC,iBAAO,EAAE,CAFA;AAGTC,YAAE,EAAE,YAACF,GAAD,EAAMG,KAAN,EAAaC,KAAb,EAAuB;AACzB,gBAAMC,cAAc,aAAOL,GAAG,GAAGG,KAAN,GAAcC,KAAf,GAAwBJ,GAA9B,OAApB;AACA,gBAAMM,KAAK,GAAG,IAAIC,IAAI,CAACC,EAAT,GAAcL,KAAd,GAAsBC,KAApC;AACA,mBAAO;AACLK,eAAC,EAAE,CADE;AAELzB,mBAAK,EAAE;AACL,iCAAU,IAAIuB,IAAI,CAACG,GAAL,CAASJ,KAAT,CAAd,OADK;AAEL,kCAAW,IAAIC,IAAI,CAACI,GAAL,CAASL,KAAT,CAAf,OAFK;AAGL,mCAAmBD;AAHd;AAFF,aAAP;AAQD;AAdQ,SADI;AAiBf,mBAAW;AACTL,aAAG,EAAE,IADI;AAETC,iBAAO,EAAE,CAFA;AAGTC,YAAE,EAAE,YAACF,GAAD,EAAMG,KAAN,EAAaC,KAAb,EAAuB;AACzB,gBAAMQ,IAAI,GAAGT,KAAK,GAAGC,KAArB;AACA,gBAAMC,cAAc,aAAOL,GAAG,GAAGY,IAAP,GAAeZ,GAArB,OAApB;AACA,gBAAMM,KAAK,GAAG,IAAIC,IAAI,CAACC,EAAT,GAAcI,IAA5B;AACA,mBAAO;AACLH,eAAC,EAAE,CADE;AAELzB,mBAAK,EAAE;AACL,iCAAU,IAAIuB,IAAI,CAACG,GAAL,CAASJ,KAAT,CAAd,OADK;AAEL,kCAAW,IAAIC,IAAI,CAACI,GAAL,CAASL,KAAT,CAAf,OAFK;AAGL,mCAAmBD;AAHd;AAFF,aAAP;AAQD;AAfQ,SAjBI;AAkCf,oBAAY;AACVL,aAAG,EAAE,IADK;AAEVa,qBAAW,EAAE,IAFH;AAGVZ,iBAAO,EAAE,CAHC;AAIVC,YAAE,EAAE,cAAM;AACR,mBAAO;AACLO,eAAC,EAAE,EADE;AAELK,gBAAE,EAAE,EAFC;AAGLC,gBAAE,EAAE,EAHC;AAILC,kBAAI,EAAE,MAJD;AAKLC,qBAAO,EAAE,aALJ;AAMLC,uBAAS,EAAE,gBANN;AAOLlC,mBAAK,EAAE;AAPF,aAAP;AASD;AAdS,SAlCG;AAkDf,oBAAY;AACVgB,aAAG,EAAE,GADK;AAEVC,iBAAO,EAAE,CAFC;AAGVC,YAAE,EAAE,cAAM;AACR,mBAAO;AACLO,eAAC,EAAE,EADE;AAELzB,mBAAK,EAAE;AAFF,aAAP;AAID;AARS,SAlDG;AA4Df,gBAAQ;AACNgB,aAAG,EAAE,GADC;AAENC,iBAAO,EAAE,CAFH;AAGNC,YAAE,EAAE,YAACiB,CAAD,EAAIhB,KAAJ,EAAc;AAChB,gBAAME,cAAc,GAAG,EAAE,MAAMF,KAAR,IAAiB,IAAxC;AACA,mBAAO;AACLM,eAAC,EAAE,CADE;AAELzB,mBAAK,EAAE;AACL,kCAAW,IAAK,IAAImB,KAApB,OADK;AAEL,mCAAmBE;AAFd;AAFF,aAAP;AAOD;AAZK,SA5DO;AA0Ef,iBAAS;AACPL,aAAG,EAAE,IADE;AAEPoB,eAAK,EAAE,EAFA;AAGPlB,YAAE,EAAE,YAACF,GAAD,EAAMG,KAAN,EAAaC,KAAb,EAAuB;AACzB,gBAAMc,SAAS,oBAAa,KAAKf,KAAL,IAAcA,KAAK,GAAG,CAAR,GAAY,GAAZ,GAAkB,CAAC,GAAjC,CAAb,SAAf;AACA,gBAAME,cAAc,aAAOL,GAAG,GAAGG,KAAN,GAAcC,KAAf,GAAwBJ,GAA9B,OAApB;AACA,mBAAO;AACLqB,gBAAE,EAAE,EADC;AAELC,gBAAE,EAAE,EAFC;AAGLtC,mBAAK,EAAE;AACL,6BAAakC,SADR;AAEL,mCAAmBb;AAFd;AAHF,aAAP;AAQD;AAdM,SA1EM;AA0Ff,uBAAe;AACbL,aAAG,EAAE,IADQ;AAEboB,eAAK,EAAE,EAFM;AAGblB,YAAE,EAAE,YAACF,GAAD,EAAMG,KAAN,EAAaC,KAAb,EAAuB;AACzB,gBAAMc,SAAS,oBAAa,KAAKf,KAAL,IAAcA,KAAK,GAAG,CAAR,GAAY,GAAZ,GAAkB,CAAC,GAAjC,CAAb,SAAf;AACA,gBAAME,cAAc,aAAOL,GAAG,GAAGG,KAAN,GAAcC,KAAf,GAAwBJ,GAA9B,OAApB;AACA,mBAAO;AACLqB,gBAAE,EAAE,EADC;AAELC,gBAAE,EAAE,EAFC;AAGLtC,mBAAK,EAAE;AACL,6BAAakC,SADR;AAEL,mCAAmBb;AAFd;AAHF,aAAP;AAQD;AAdY;AA1FA,OAAjB;AA2GA,UAAMkB,QAAQ,GAAGxB,QAAjB;;;;;;;;;;;;;;;;AC3GA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;;AAAA,UAAMyB,WAAW,GAAG,SAAdA,WAAc,CAACC,QAAD,EAAW5G,EAAX,EAAkB;AACpC,eAAOA,EAAE,CAAC6G,OAAH,CAAWD,QAAX,MAAyB,IAAhC;AACD,OAFD;AAGA;;;;;AAGA,UAAME,kBAAkB,GAAG,SAArBA,kBAAqB,CAACC,KAAD,EAAQC,WAAR,EAAwB;AACjD,eAAQ,OAAOD,KAAP,KAAiB,QAAjB,IAA6BA,KAAK,CAACE,MAAN,GAAe,CAA7C,GAAkDvE,MAAM,CAACC,MAAP;AAAgB,uBAAa;AAA7B,+BAAiDoE,KAAjD,GAA2D,IAA3D,GAAmEC,WAAnE,CAAlD,GAAoIA,WAA3I;AACD,OAFD;;AAGA,UAAME,YAAY,GAAG,SAAfA,YAAe,CAACC,OAAD,EAAa;AAChC,YAAIA,OAAO,KAAK/F,SAAhB,EAA2B;AACzB,cAAMgG,KAAK,GAAGC,KAAK,CAACC,OAAN,CAAcH,OAAd,IAAyBA,OAAzB,GAAmCA,OAAO,CAACI,KAAR,CAAc,GAAd,CAAjD;AACA,iBAAOH,KAAK,CACTI,MADI,CACG,UAAA/E,CAAC;AAAA,mBAAIA,CAAC,IAAI,IAAT;AAAA,WADJ,EAEJgF,GAFI,CAEA,UAAAhF,CAAC;AAAA,mBAAIA,CAAC,CAACiF,IAAF,EAAJ;AAAA,WAFD,EAGJF,MAHI,CAGG,UAAA/E,CAAC;AAAA,mBAAIA,CAAC,KAAK,EAAV;AAAA,WAHJ,CAAP;AAID;;AACD,eAAO,EAAP;AACD,OATD;;AAUA,UAAMkF,WAAW,GAAG,SAAdA,WAAc,CAACR,OAAD,EAAa;AAC/B,YAAMM,GAAG,GAAG,EAAZ;AACAP,oBAAY,CAACC,OAAD,CAAZ,CAAsB3E,OAAtB,CAA8B,UAAAC,CAAC;AAAA,iBAAIgF,GAAG,CAAChF,CAAD,CAAH,GAAS,IAAb;AAAA,SAA/B;AACA,eAAOgF,GAAP;AACD,OAJD;;AAKA,UAAMG,MAAM,GAAG,sBAAf;;AACA,UAAMC,OAAO;AAAA,4EAAG,kBAAOC,GAAP,EAAYtG,EAAZ,EAAgBuG,SAAhB,EAA2BC,SAA3B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBACVF,GAAG,IAAI,IAAP,IAAeA,GAAG,CAAC,CAAD,CAAH,KAAW,GAA1B,IAAiC,CAACF,MAAM,CAACK,IAAP,CAAYH,GAAZ,CADxB;AAAA;AAAA;AAAA;;AAENI,wBAFM,GAEG1H,QAAQ,CAAC2H,aAAT,CAAuB,YAAvB,CAFH;;AAAA,uBAGRD,MAHQ;AAAA;AAAA;AAAA;;AAIV,sBAAI1G,EAAE,IAAI,IAAV,EAAgB;AACdA,sBAAE,CAAC4G,cAAH;AACD;;AANS,oDAOHF,MAAM,CAACG,IAAP,CAAYP,GAAZ,EAAiBC,SAAjB,EAA4BC,SAA5B,CAPG;;AAAA;AAAA,oDAUP,KAVO;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,SAAH;;AAAA,wBAAPH,OAAO;AAAA;AAAA;AAAA,SAAb;;;;;;;;;;;;;;;;;ACzBA;AAAe;;;AAAA;;;;;;;;;;;;;;;;ACAf;AAAe;;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UCOFS,yBAAyB;AAGpC,6CAAc;AAAA;AAAG;;AAHmB;AAAA;AAAA,qCAKzB,CAAE;AALuB;;AAAA;AAAA,S;;;;;;;;gBACnC;;;AADUA,+BAAyB,6DALrC,gEAAU;AACT1B,gBAAQ,EAAE,uBADD;AAET2B,gBAAQ,EAAR;AAAA;AAAA,yHAFS;;;;AAAA,OAAV,CAKqC,GAAzBD,yBAAyB,CAAzB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UCMAE,+BAA+B;AAAA;AAAA,O;;AAA/BA,qCAA+B,6DAL3C,+DAAS;AACRC,eAAO,EAAE,CAAE,4DAAF,EAAgB,0DAAhB,EAA6B,0DAA7B,CADD;AAERC,oBAAY,EAAE,CAAC,sFAAD,CAFN;AAGRC,eAAO,EAAE,CAAC,sFAAD;AAHD,OAAT,CAK2C,GAA/BH,+BAA+B,CAA/B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UCPAI,aAAa,GAOxB,yBAAc;AAAA;;AACZ,aAAKC,OAAL,GAAe,uBAAf;AACA,aAAKC,WAAL,GAAmB;AACjBC,iBAAO,EAAE,IAAI,gEAAJ,CAAgB;AACvB,4BAAiB;AADM,WAAhB;AADQ,SAAnB;AAKA,aAAKC,sBAAL,GAA8B;AAC5BD,iBAAO,EAAE,IAAI,gEAAJ,CAAgB;AACvB,6BAAkB,YAAYE,YAAY,CAACC,OAAb,CAAqB,OAArB,CADP;AAEvB,oBAAQC,IAAI,CAACC,KAAL,CAAWH,YAAY,CAACC,OAAb,CAAqB,MAArB,CAAX;AAFe,WAAhB;AADmB,SAA9B;AAMA,aAAKG,uBAAL,GAA+B;AAC7BN,iBAAO,EAAE,IAAI,gEAAJ,CAAgB;AACvB,6BAAkB,YAAYE,YAAY,CAACC,OAAb,CAAqB,OAArB,CADP;AAEvB,oBAAQC,IAAI,CAACC,KAAL,CAAWH,YAAY,CAACC,OAAb,CAAqB,MAArB,CAAX,CAFe;AAGvB,4BAAiB;AAHM,WAAhB;AADoB,SAA/B;AAOD,O;;;;;;AA3BUN,mBAAa,6DAHzB,iEAAW;AACVU,kBAAU,EAAE;AADF,OAAX,CAGyB,GAAbV,aAAa,CAAb","file":"common-es5.js","sourcesContent":["import { c as writeTask } from './index-e806d1f6.js';\nimport { createGesture } from './index-f49d994d.js';\nimport { h as hapticSelectionEnd, a as hapticSelectionStart, b as hapticSelectionChanged } from './haptic-27b3f981.js';\n\nconst createButtonActiveGesture = (el, isButton) => {\n let currentTouchedButton;\n let initialTouchedButton;\n const activateButtonAtPoint = (x, y, hapticFeedbackFn) => {\n if (typeof document === 'undefined') {\n return;\n }\n const target = document.elementFromPoint(x, y);\n if (!target || !isButton(target)) {\n clearActiveButton();\n return;\n }\n if (target !== currentTouchedButton) {\n clearActiveButton();\n setActiveButton(target, hapticFeedbackFn);\n }\n };\n const setActiveButton = (button, hapticFeedbackFn) => {\n currentTouchedButton = button;\n if (!initialTouchedButton) {\n initialTouchedButton = currentTouchedButton;\n }\n const buttonToModify = currentTouchedButton;\n writeTask(() => buttonToModify.classList.add('ion-activated'));\n hapticFeedbackFn();\n };\n const clearActiveButton = (dispatchClick = false) => {\n if (!currentTouchedButton) {\n return;\n }\n const buttonToModify = currentTouchedButton;\n writeTask(() => buttonToModify.classList.remove('ion-activated'));\n /**\n * Clicking on one button, but releasing on another button\n * does not dispatch a click event in browsers, so we\n * need to do it manually here. Some browsers will\n * dispatch a click if clicking on one button, dragging over\n * another button, and releasing on the original button. In that\n * case, we need to make sure we do not cause a double click there.\n */\n if (dispatchClick && initialTouchedButton !== currentTouchedButton) {\n currentTouchedButton.click();\n }\n currentTouchedButton = undefined;\n };\n return createGesture({\n el,\n gestureName: 'buttonActiveDrag',\n threshold: 0,\n onStart: ev => activateButtonAtPoint(ev.currentX, ev.currentY, hapticSelectionStart),\n onMove: ev => activateButtonAtPoint(ev.currentX, ev.currentY, hapticSelectionChanged),\n onEnd: () => {\n clearActiveButton(true);\n hapticSelectionEnd();\n initialTouchedButton = undefined;\n }\n });\n};\n\nexport { createButtonActiveGesture as c };\n","const attachComponent = async (delegate, container, component, cssClasses, componentProps) => {\n if (delegate) {\n return delegate.attachViewToDom(container, component, componentProps, cssClasses);\n }\n if (typeof component !== 'string' && !(component instanceof HTMLElement)) {\n throw new Error('framework delegate is missing');\n }\n const el = (typeof component === 'string')\n ? container.ownerDocument && container.ownerDocument.createElement(component)\n : component;\n if (cssClasses) {\n cssClasses.forEach(c => el.classList.add(c));\n }\n if (componentProps) {\n Object.assign(el, componentProps);\n }\n container.appendChild(el);\n if (el.componentOnReady) {\n await el.componentOnReady();\n }\n return el;\n};\nconst detachComponent = (delegate, element) => {\n if (element) {\n if (delegate) {\n const container = element.parentElement;\n return delegate.removeViewFromDom(container, element);\n }\n element.remove();\n }\n return Promise.resolve();\n};\n\nexport { attachComponent as a, detachComponent as d };\n","const HapticEngine = {\n getEngine() {\n const win = window;\n return (win.TapticEngine) || (win.Capacitor && win.Capacitor.isPluginAvailable('Haptics') && win.Capacitor.Plugins.Haptics);\n },\n available() {\n return !!this.getEngine();\n },\n isCordova() {\n return !!window.TapticEngine;\n },\n isCapacitor() {\n const win = window;\n return !!win.Capacitor;\n },\n impact(options) {\n const engine = this.getEngine();\n if (!engine) {\n return;\n }\n const style = this.isCapacitor() ? options.style.toUpperCase() : options.style;\n engine.impact({ style });\n },\n notification(options) {\n const engine = this.getEngine();\n if (!engine) {\n return;\n }\n const style = this.isCapacitor() ? options.style.toUpperCase() : options.style;\n engine.notification({ style });\n },\n selection() {\n this.impact({ style: 'light' });\n },\n selectionStart() {\n const engine = this.getEngine();\n if (!engine) {\n return;\n }\n if (this.isCapacitor()) {\n engine.selectionStart();\n }\n else {\n engine.gestureSelectionStart();\n }\n },\n selectionChanged() {\n const engine = this.getEngine();\n if (!engine) {\n return;\n }\n if (this.isCapacitor()) {\n engine.selectionChanged();\n }\n else {\n engine.gestureSelectionChanged();\n }\n },\n selectionEnd() {\n const engine = this.getEngine();\n if (!engine) {\n return;\n }\n if (this.isCapacitor()) {\n engine.selectionEnd();\n }\n else {\n engine.gestureSelectionEnd();\n }\n }\n};\n/**\n * Trigger a selection changed haptic event. Good for one-time events\n * (not for gestures)\n */\nconst hapticSelection = () => {\n HapticEngine.selection();\n};\n/**\n * Tell the haptic engine that a gesture for a selection change is starting.\n */\nconst hapticSelectionStart = () => {\n HapticEngine.selectionStart();\n};\n/**\n * Tell the haptic engine that a selection changed during a gesture.\n */\nconst hapticSelectionChanged = () => {\n HapticEngine.selectionChanged();\n};\n/**\n * Tell the haptic engine we are done with a gesture. This needs to be\n * called lest resources are not properly recycled.\n */\nconst hapticSelectionEnd = () => {\n HapticEngine.selectionEnd();\n};\n/**\n * Use this to indicate success/failure/warning to the user.\n * options should be of the type `{ style: 'light' }` (or `medium`/`heavy`)\n */\nconst hapticImpact = (options) => {\n HapticEngine.impact(options);\n};\n\nexport { hapticSelectionStart as a, hapticSelectionChanged as b, hapticSelection as c, hapticImpact as d, hapticSelectionEnd as h };\n","const spinners = {\n 'bubbles': {\n dur: 1000,\n circles: 9,\n fn: (dur, index, total) => {\n const animationDelay = `${(dur * index / total) - dur}ms`;\n const angle = 2 * Math.PI * index / total;\n return {\n r: 5,\n style: {\n 'top': `${9 * Math.sin(angle)}px`,\n 'left': `${9 * Math.cos(angle)}px`,\n 'animation-delay': animationDelay,\n }\n };\n }\n },\n 'circles': {\n dur: 1000,\n circles: 8,\n fn: (dur, index, total) => {\n const step = index / total;\n const animationDelay = `${(dur * step) - dur}ms`;\n const angle = 2 * Math.PI * step;\n return {\n r: 5,\n style: {\n 'top': `${9 * Math.sin(angle)}px`,\n 'left': `${9 * Math.cos(angle)}px`,\n 'animation-delay': animationDelay,\n }\n };\n }\n },\n 'circular': {\n dur: 1400,\n elmDuration: true,\n circles: 1,\n fn: () => {\n return {\n r: 20,\n cx: 48,\n cy: 48,\n fill: 'none',\n viewBox: '24 24 48 48',\n transform: 'translate(0,0)',\n style: {}\n };\n }\n },\n 'crescent': {\n dur: 750,\n circles: 1,\n fn: () => {\n return {\n r: 26,\n style: {}\n };\n }\n },\n 'dots': {\n dur: 750,\n circles: 3,\n fn: (_, index) => {\n const animationDelay = -(110 * index) + 'ms';\n return {\n r: 6,\n style: {\n 'left': `${9 - (9 * index)}px`,\n 'animation-delay': animationDelay,\n }\n };\n }\n },\n 'lines': {\n dur: 1000,\n lines: 12,\n fn: (dur, index, total) => {\n const transform = `rotate(${30 * index + (index < 6 ? 180 : -180)}deg)`;\n const animationDelay = `${(dur * index / total) - dur}ms`;\n return {\n y1: 17,\n y2: 29,\n style: {\n 'transform': transform,\n 'animation-delay': animationDelay,\n }\n };\n }\n },\n 'lines-small': {\n dur: 1000,\n lines: 12,\n fn: (dur, index, total) => {\n const transform = `rotate(${30 * index + (index < 6 ? 180 : -180)}deg)`;\n const animationDelay = `${(dur * index / total) - dur}ms`;\n return {\n y1: 12,\n y2: 20,\n style: {\n 'transform': transform,\n 'animation-delay': animationDelay,\n }\n };\n }\n }\n};\nconst SPINNERS = spinners;\n\nexport { SPINNERS as S };\n","const hostContext = (selector, el) => {\n return el.closest(selector) !== null;\n};\n/**\n * Create the mode and color classes for the component based on the classes passed in\n */\nconst createColorClasses = (color, cssClassMap) => {\n return (typeof color === 'string' && color.length > 0) ? Object.assign({ 'ion-color': true, [`ion-color-${color}`]: true }, cssClassMap) : cssClassMap;\n};\nconst getClassList = (classes) => {\n if (classes !== undefined) {\n const array = Array.isArray(classes) ? classes : classes.split(' ');\n return array\n .filter(c => c != null)\n .map(c => c.trim())\n .filter(c => c !== '');\n }\n return [];\n};\nconst getClassMap = (classes) => {\n const map = {};\n getClassList(classes).forEach(c => map[c] = true);\n return map;\n};\nconst SCHEME = /^[a-z][a-z0-9+\\-.]*:/;\nconst openURL = async (url, ev, direction, animation) => {\n if (url != null && url[0] !== '#' && !SCHEME.test(url)) {\n const router = document.querySelector('ion-router');\n if (router) {\n if (ev != null) {\n ev.preventDefault();\n }\n return router.push(url, direction, animation);\n }\n }\n return false;\n};\n\nexport { createColorClasses as c, getClassMap as g, hostContext as h, openURL as o };\n","export default \"<div id=\\\"container\\\">\\n <strong>{{ name }}</strong>\\n <p>Explore <a target=\\\"_blank\\\" rel=\\\"noopener noreferrer\\\" href=\\\"https://ionicframework.com/docs/components\\\">UI Components</a></p>\\n</div>\";","export default \"#container {\\n text-align: center;\\n position: absolute;\\n left: 0;\\n right: 0;\\n top: 50%;\\n transform: translateY(-50%);\\n}\\n\\n#container strong {\\n font-size: 20px;\\n line-height: 26px;\\n}\\n\\n#container p {\\n font-size: 16px;\\n line-height: 22px;\\n color: #8c8c8c;\\n margin: 0;\\n}\\n\\n#container a {\\n text-decoration: none;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvZXhwbG9yZS1jb250YWluZXIvZXhwbG9yZS1jb250YWluZXIuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxrQkFBQTtFQUVBLGtCQUFBO0VBQ0EsT0FBQTtFQUNBLFFBQUE7RUFDQSxRQUFBO0VBQ0EsMkJBQUE7QUFBRjs7QUFHQTtFQUNFLGVBQUE7RUFDQSxpQkFBQTtBQUFGOztBQUdBO0VBQ0UsZUFBQTtFQUNBLGlCQUFBO0VBRUEsY0FBQTtFQUVBLFNBQUE7QUFGRjs7QUFLQTtFQUNFLHFCQUFBO0FBRkYiLCJmaWxlIjoic3JjL2FwcC9leHBsb3JlLWNvbnRhaW5lci9leHBsb3JlLWNvbnRhaW5lci5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIiNjb250YWluZXIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbn1cblxuI2NvbnRhaW5lciBzdHJvbmcge1xuICBmb250LXNpemU6IDIwcHg7XG4gIGxpbmUtaGVpZ2h0OiAyNnB4O1xufVxuXG4jY29udGFpbmVyIHAge1xuICBmb250LXNpemU6IDE2cHg7XG4gIGxpbmUtaGVpZ2h0OiAyMnB4O1xuXG4gIGNvbG9yOiAjOGM4YzhjO1xuXG4gIG1hcmdpbjogMDtcbn1cblxuI2NvbnRhaW5lciBhIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufSJdfQ== */\";","import { Component, OnInit, Input } from '@angular/core';\n\n@Component({\n selector: 'app-explore-container',\n templateUrl: './explore-container.component.html',\n styleUrls: ['./explore-container.component.scss'],\n})\nexport class ExploreContainerComponent implements OnInit {\n @Input() name: string;\n\n constructor() { }\n\n ngOnInit() {}\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { IonicModule } from '@ionic/angular';\n\nimport { ExploreContainerComponent } from './explore-container.component';\n\n@NgModule({\n imports: [ CommonModule, FormsModule, IonicModule],\n declarations: [ExploreContainerComponent],\n exports: [ExploreContainerComponent]\n})\nexport class ExploreContainerComponentModule {}\n","import { Injectable } from '@angular/core';\nimport { HttpHeaders } from '@angular/common/http';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class GlobalService {\n\n public apiRoot: string;\n public httpOptions;\n public headerHttpGetConnected;\n public headerHttpPostConnected;\n\n constructor() { \n this.apiRoot = \"http://localhost:3000\";\n this.httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n })\n };\n this.headerHttpGetConnected = {\n headers: new HttpHeaders({\n 'Authorization': \"Bearer \" + localStorage.getItem('token'),\n 'user': JSON.parse(localStorage.getItem('user'))\n })\n }\n this.headerHttpPostConnected = {\n headers: new HttpHeaders({\n 'Authorization': \"Bearer \" + localStorage.getItem('token'),\n 'user': JSON.parse(localStorage.getItem('user')),\n 'Content-Type': 'application/json'\n })\n }\n }\n}\n"]} \ No newline at end of file +{"version":3,"sources":["webpack:///node_modules/@ionic/core/dist/esm/button-active-a6787d69.js","webpack:///node_modules/@ionic/core/dist/esm/framework-delegate-4584ab5a.js","webpack:///node_modules/@ionic/core/dist/esm/haptic-27b3f981.js","webpack:///node_modules/@ionic/core/dist/esm/spinner-configs-cd7845af.js","webpack:///node_modules/@ionic/core/dist/esm/theme-ff3fc52f.js","webpack:///src/app/explore-container/explore-container.component.html","webpack:///src/app/explore-container/explore-container.component.scss","webpack:///src/app/explore-container/explore-container.component.ts","webpack:///src/app/explore-container/explore-container.module.ts","webpack:///src/app/global.service.ts"],"names":["createButtonActiveGesture","el","isButton","currentTouchedButton","initialTouchedButton","activateButtonAtPoint","x","y","hapticFeedbackFn","document","target","elementFromPoint","clearActiveButton","setActiveButton","button","buttonToModify","classList","add","dispatchClick","remove","click","undefined","gestureName","threshold","onStart","ev","currentX","currentY","onMove","onEnd","attachComponent","delegate","container","component","cssClasses","componentProps","attachViewToDom","HTMLElement","Error","ownerDocument","createElement","forEach","c","Object","assign","appendChild","componentOnReady","detachComponent","element","parentElement","removeViewFromDom","Promise","resolve","HapticEngine","getEngine","win","window","TapticEngine","Capacitor","isPluginAvailable","Plugins","Haptics","available","isCordova","isCapacitor","impact","options","engine","style","toUpperCase","notification","selection","selectionStart","gestureSelectionStart","selectionChanged","gestureSelectionChanged","selectionEnd","gestureSelectionEnd","hapticSelection","hapticSelectionStart","hapticSelectionChanged","hapticSelectionEnd","hapticImpact","spinners","dur","circles","fn","index","total","animationDelay","angle","Math","PI","r","sin","cos","step","elmDuration","cx","cy","fill","viewBox","transform","_","lines","y1","y2","SPINNERS","hostContext","selector","closest","createColorClasses","color","cssClassMap","length","getClassList","classes","array","Array","isArray","split","filter","map","trim","getClassMap","SCHEME","openURL","url","direction","animation","test","router","querySelector","preventDefault","push","ExploreContainerComponent","template","ExploreContainerComponentModule","imports","declarations","exports","GlobalService","apiRoot","httpOptions","headers","localStorage","getItem","JSON","parse","providedIn"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;;AAIA,UAAMA,yBAAyB,GAAG,SAA5BA,yBAA4B,CAACC,EAAD,EAAKC,QAAL,EAAkB;AAClD,YAAIC,oBAAJ;AACA,YAAIC,oBAAJ;;AACA,YAAMC,qBAAqB,GAAG,SAAxBA,qBAAwB,CAACC,CAAD,EAAIC,CAAJ,EAAOC,gBAAP,EAA4B;AACxD,cAAI,OAAOC,QAAP,KAAoB,WAAxB,EAAqC;AACnC;AACD;;AACD,cAAMC,MAAM,GAAGD,QAAQ,CAACE,gBAAT,CAA0BL,CAA1B,EAA6BC,CAA7B,CAAf;;AACA,cAAI,CAACG,MAAD,IAAW,CAACR,QAAQ,CAACQ,MAAD,CAAxB,EAAkC;AAChCE,6BAAiB;AACjB;AACD;;AACD,cAAIF,MAAM,KAAKP,oBAAf,EAAqC;AACnCS,6BAAiB;AACjBC,2BAAe,CAACH,MAAD,EAASF,gBAAT,CAAf;AACD;AACF,SAbD;;AAcA,YAAMK,eAAe,GAAG,SAAlBA,eAAkB,CAACC,MAAD,EAASN,gBAAT,EAA8B;AACpDL,8BAAoB,GAAGW,MAAvB;;AACA,cAAI,CAACV,oBAAL,EAA2B;AACzBA,gCAAoB,GAAGD,oBAAvB;AACD;;AACD,cAAMY,cAAc,GAAGZ,oBAAvB;AACA,uEAAU;AAAA,mBAAMY,cAAc,CAACC,SAAf,CAAyBC,GAAzB,CAA6B,eAA7B,CAAN;AAAA,WAAV;AACAT,0BAAgB;AACjB,SARD;;AASA,YAAMI,iBAAiB,GAAG,SAApBA,iBAAoB,GAA2B;AAAA,cAA1BM,aAA0B,uEAAV,KAAU;;AACnD,cAAI,CAACf,oBAAL,EAA2B;AACzB;AACD;;AACD,cAAMY,cAAc,GAAGZ,oBAAvB;AACA,uEAAU;AAAA,mBAAMY,cAAc,CAACC,SAAf,CAAyBG,MAAzB,CAAgC,eAAhC,CAAN;AAAA,WAAV;AACA;;;;;;;;;AAQA,cAAID,aAAa,IAAId,oBAAoB,KAAKD,oBAA9C,EAAoE;AAClEA,gCAAoB,CAACiB,KAArB;AACD;;AACDjB,8BAAoB,GAAGkB,SAAvB;AACD,SAlBD;;AAmBA,eAAO,yEAAc;AACnBpB,YAAE,EAAFA,EADmB;AAEnBqB,qBAAW,EAAE,kBAFM;AAGnBC,mBAAS,EAAE,CAHQ;AAInBC,iBAAO,EAAE,iBAAAC,EAAE;AAAA,mBAAIpB,qBAAqB,CAACoB,EAAE,CAACC,QAAJ,EAAcD,EAAE,CAACE,QAAjB,EAA2B,qDAA3B,CAAzB;AAAA,WAJQ;AAKnBC,gBAAM,EAAE,gBAAAH,EAAE;AAAA,mBAAIpB,qBAAqB,CAACoB,EAAE,CAACC,QAAJ,EAAcD,EAAE,CAACE,QAAjB,EAA2B,qDAA3B,CAAzB;AAAA,WALS;AAMnBE,eAAK,EAAE,iBAAM;AACXjB,6BAAiB,CAAC,IAAD,CAAjB;AACA;AACAR,gCAAoB,GAAGiB,SAAvB;AACD;AAVkB,SAAd,CAAP;AAYD,OAzDD;;;;;;;;;;;;;;;;;ACJA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;;AAAA,UAAMS,eAAe;AAAA,2EAAG,iBAAOC,QAAP,EAAiBC,SAAjB,EAA4BC,SAA5B,EAAuCC,UAAvC,EAAmDC,cAAnD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAClBJ,QADkB;AAAA;AAAA;AAAA;;AAAA,mDAEbA,QAAQ,CAACK,eAAT,CAAyBJ,SAAzB,EAAoCC,SAApC,EAA+CE,cAA/C,EAA+DD,UAA/D,CAFa;;AAAA;AAAA,wBAIlB,OAAOD,SAAP,KAAqB,QAArB,IAAiC,EAAEA,SAAS,YAAYI,WAAvB,CAJf;AAAA;AAAA;AAAA;;AAAA,wBAKd,IAAIC,KAAJ,CAAU,+BAAV,CALc;;AAAA;AAOhBrC,oBAPgB,GAOV,OAAOgC,SAAP,KAAqB,QAAtB,GACPD,SAAS,CAACO,aAAV,IAA2BP,SAAS,CAACO,aAAV,CAAwBC,aAAxB,CAAsCP,SAAtC,CADpB,GAEPA,SATkB;;AAUtB,sBAAIC,UAAJ,EAAgB;AACdA,8BAAU,CAACO,OAAX,CAAmB,UAAAC,CAAC;AAAA,6BAAIzC,EAAE,CAACe,SAAH,CAAaC,GAAb,CAAiByB,CAAjB,CAAJ;AAAA,qBAApB;AACD;;AACD,sBAAIP,cAAJ,EAAoB;AAClBQ,0BAAM,CAACC,MAAP,CAAc3C,EAAd,EAAkBkC,cAAlB;AACD;;AACDH,2BAAS,CAACa,WAAV,CAAsB5C,EAAtB;;AAhBsB,uBAiBlBA,EAAE,CAAC6C,gBAjBe;AAAA;AAAA;AAAA;;AAAA;AAAA,yBAkBd7C,EAAE,CAAC6C,gBAAH,EAlBc;;AAAA;AAAA,mDAoBf7C,EApBe;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,SAAH;;AAAA,wBAAf6B,eAAe;AAAA;AAAA;AAAA,SAArB;;AAsBA,UAAMiB,eAAe,GAAG,SAAlBA,eAAkB,CAAChB,QAAD,EAAWiB,OAAX,EAAuB;AAC7C,YAAIA,OAAJ,EAAa;AACX,cAAIjB,QAAJ,EAAc;AACZ,gBAAMC,SAAS,GAAGgB,OAAO,CAACC,aAA1B;AACA,mBAAOlB,QAAQ,CAACmB,iBAAT,CAA2BlB,SAA3B,EAAsCgB,OAAtC,CAAP;AACD;;AACDA,iBAAO,CAAC7B,MAAR;AACD;;AACD,eAAOgC,OAAO,CAACC,OAAR,EAAP;AACD,OATD;;;;;;;;;;;;;;;;;ACtBA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;;AAAA,UAAMC,YAAY,GAAG;AACnBC,iBADmB,uBACP;AACV,cAAMC,GAAG,GAAGC,MAAZ;AACA,iBAAQD,GAAG,CAACE,YAAL,IAAuBF,GAAG,CAACG,SAAJ,IAAiBH,GAAG,CAACG,SAAJ,CAAcC,iBAAd,CAAgC,SAAhC,CAAjB,IAA+DJ,GAAG,CAACG,SAAJ,CAAcE,OAAd,CAAsBC,OAAnH;AACD,SAJkB;AAKnBC,iBALmB,uBAKP;AACV,iBAAO,CAAC,CAAC,KAAKR,SAAL,EAAT;AACD,SAPkB;AAQnBS,iBARmB,uBAQP;AACV,iBAAO,CAAC,CAACP,MAAM,CAACC,YAAhB;AACD,SAVkB;AAWnBO,mBAXmB,yBAWL;AACZ,cAAMT,GAAG,GAAGC,MAAZ;AACA,iBAAO,CAAC,CAACD,GAAG,CAACG,SAAb;AACD,SAdkB;AAenBO,cAfmB,kBAeZC,OAfY,EAeH;AACd,cAAMC,MAAM,GAAG,KAAKb,SAAL,EAAf;;AACA,cAAI,CAACa,MAAL,EAAa;AACX;AACD;;AACD,cAAMC,KAAK,GAAG,KAAKJ,WAAL,KAAqBE,OAAO,CAACE,KAAR,CAAcC,WAAd,EAArB,GAAmDH,OAAO,CAACE,KAAzE;AACAD,gBAAM,CAACF,MAAP,CAAc;AAAEG,iBAAK,EAALA;AAAF,WAAd;AACD,SAtBkB;AAuBnBE,oBAvBmB,wBAuBNJ,OAvBM,EAuBG;AACpB,cAAMC,MAAM,GAAG,KAAKb,SAAL,EAAf;;AACA,cAAI,CAACa,MAAL,EAAa;AACX;AACD;;AACD,cAAMC,KAAK,GAAG,KAAKJ,WAAL,KAAqBE,OAAO,CAACE,KAAR,CAAcC,WAAd,EAArB,GAAmDH,OAAO,CAACE,KAAzE;AACAD,gBAAM,CAACG,YAAP,CAAoB;AAAEF,iBAAK,EAALA;AAAF,WAApB;AACD,SA9BkB;AA+BnBG,iBA/BmB,uBA+BP;AACV,eAAKN,MAAL,CAAY;AAAEG,iBAAK,EAAE;AAAT,WAAZ;AACD,SAjCkB;AAkCnBI,sBAlCmB,4BAkCF;AACf,cAAML,MAAM,GAAG,KAAKb,SAAL,EAAf;;AACA,cAAI,CAACa,MAAL,EAAa;AACX;AACD;;AACD,cAAI,KAAKH,WAAL,EAAJ,EAAwB;AACtBG,kBAAM,CAACK,cAAP;AACD,WAFD,MAGK;AACHL,kBAAM,CAACM,qBAAP;AACD;AACF,SA7CkB;AA8CnBC,wBA9CmB,8BA8CA;AACjB,cAAMP,MAAM,GAAG,KAAKb,SAAL,EAAf;;AACA,cAAI,CAACa,MAAL,EAAa;AACX;AACD;;AACD,cAAI,KAAKH,WAAL,EAAJ,EAAwB;AACtBG,kBAAM,CAACO,gBAAP;AACD,WAFD,MAGK;AACHP,kBAAM,CAACQ,uBAAP;AACD;AACF,SAzDkB;AA0DnBC,oBA1DmB,0BA0DJ;AACb,cAAMT,MAAM,GAAG,KAAKb,SAAL,EAAf;;AACA,cAAI,CAACa,MAAL,EAAa;AACX;AACD;;AACD,cAAI,KAAKH,WAAL,EAAJ,EAAwB;AACtBG,kBAAM,CAACS,YAAP;AACD,WAFD,MAGK;AACHT,kBAAM,CAACU,mBAAP;AACD;AACF;AArEkB,OAArB;AAuEA;;;;;AAIA,UAAMC,eAAe,GAAG,SAAlBA,eAAkB,GAAM;AAC5BzB,oBAAY,CAACkB,SAAb;AACD,OAFD;AAGA;;;;;AAGA,UAAMQ,oBAAoB,GAAG,SAAvBA,oBAAuB,GAAM;AACjC1B,oBAAY,CAACmB,cAAb;AACD,OAFD;AAGA;;;;;AAGA,UAAMQ,sBAAsB,GAAG,SAAzBA,sBAAyB,GAAM;AACnC3B,oBAAY,CAACqB,gBAAb;AACD,OAFD;AAGA;;;;;;AAIA,UAAMO,kBAAkB,GAAG,SAArBA,kBAAqB,GAAM;AAC/B5B,oBAAY,CAACuB,YAAb;AACD,OAFD;AAGA;;;;;;AAIA,UAAMM,YAAY,GAAG,SAAfA,YAAe,CAAChB,OAAD,EAAa;AAChCb,oBAAY,CAACY,MAAb,CAAoBC,OAApB;AACD,OAFD;;;;;;;;;;;;;;;;;ACrGA;AAAA;;;AAAA;AAAA;AAAA;;AAAA,UAAMiB,QAAQ,GAAG;AACf,mBAAW;AACTC,aAAG,EAAE,IADI;AAETC,iBAAO,EAAE,CAFA;AAGTC,YAAE,EAAE,YAACF,GAAD,EAAMG,KAAN,EAAaC,KAAb,EAAuB;AACzB,gBAAMC,cAAc,aAAOL,GAAG,GAAGG,KAAN,GAAcC,KAAf,GAAwBJ,GAA9B,OAApB;AACA,gBAAMM,KAAK,GAAG,IAAIC,IAAI,CAACC,EAAT,GAAcL,KAAd,GAAsBC,KAApC;AACA,mBAAO;AACLK,eAAC,EAAE,CADE;AAELzB,mBAAK,EAAE;AACL,iCAAU,IAAIuB,IAAI,CAACG,GAAL,CAASJ,KAAT,CAAd,OADK;AAEL,kCAAW,IAAIC,IAAI,CAACI,GAAL,CAASL,KAAT,CAAf,OAFK;AAGL,mCAAmBD;AAHd;AAFF,aAAP;AAQD;AAdQ,SADI;AAiBf,mBAAW;AACTL,aAAG,EAAE,IADI;AAETC,iBAAO,EAAE,CAFA;AAGTC,YAAE,EAAE,YAACF,GAAD,EAAMG,KAAN,EAAaC,KAAb,EAAuB;AACzB,gBAAMQ,IAAI,GAAGT,KAAK,GAAGC,KAArB;AACA,gBAAMC,cAAc,aAAOL,GAAG,GAAGY,IAAP,GAAeZ,GAArB,OAApB;AACA,gBAAMM,KAAK,GAAG,IAAIC,IAAI,CAACC,EAAT,GAAcI,IAA5B;AACA,mBAAO;AACLH,eAAC,EAAE,CADE;AAELzB,mBAAK,EAAE;AACL,iCAAU,IAAIuB,IAAI,CAACG,GAAL,CAASJ,KAAT,CAAd,OADK;AAEL,kCAAW,IAAIC,IAAI,CAACI,GAAL,CAASL,KAAT,CAAf,OAFK;AAGL,mCAAmBD;AAHd;AAFF,aAAP;AAQD;AAfQ,SAjBI;AAkCf,oBAAY;AACVL,aAAG,EAAE,IADK;AAEVa,qBAAW,EAAE,IAFH;AAGVZ,iBAAO,EAAE,CAHC;AAIVC,YAAE,EAAE,cAAM;AACR,mBAAO;AACLO,eAAC,EAAE,EADE;AAELK,gBAAE,EAAE,EAFC;AAGLC,gBAAE,EAAE,EAHC;AAILC,kBAAI,EAAE,MAJD;AAKLC,qBAAO,EAAE,aALJ;AAMLC,uBAAS,EAAE,gBANN;AAOLlC,mBAAK,EAAE;AAPF,aAAP;AASD;AAdS,SAlCG;AAkDf,oBAAY;AACVgB,aAAG,EAAE,GADK;AAEVC,iBAAO,EAAE,CAFC;AAGVC,YAAE,EAAE,cAAM;AACR,mBAAO;AACLO,eAAC,EAAE,EADE;AAELzB,mBAAK,EAAE;AAFF,aAAP;AAID;AARS,SAlDG;AA4Df,gBAAQ;AACNgB,aAAG,EAAE,GADC;AAENC,iBAAO,EAAE,CAFH;AAGNC,YAAE,EAAE,YAACiB,CAAD,EAAIhB,KAAJ,EAAc;AAChB,gBAAME,cAAc,GAAG,EAAE,MAAMF,KAAR,IAAiB,IAAxC;AACA,mBAAO;AACLM,eAAC,EAAE,CADE;AAELzB,mBAAK,EAAE;AACL,kCAAW,IAAK,IAAImB,KAApB,OADK;AAEL,mCAAmBE;AAFd;AAFF,aAAP;AAOD;AAZK,SA5DO;AA0Ef,iBAAS;AACPL,aAAG,EAAE,IADE;AAEPoB,eAAK,EAAE,EAFA;AAGPlB,YAAE,EAAE,YAACF,GAAD,EAAMG,KAAN,EAAaC,KAAb,EAAuB;AACzB,gBAAMc,SAAS,oBAAa,KAAKf,KAAL,IAAcA,KAAK,GAAG,CAAR,GAAY,GAAZ,GAAkB,CAAC,GAAjC,CAAb,SAAf;AACA,gBAAME,cAAc,aAAOL,GAAG,GAAGG,KAAN,GAAcC,KAAf,GAAwBJ,GAA9B,OAApB;AACA,mBAAO;AACLqB,gBAAE,EAAE,EADC;AAELC,gBAAE,EAAE,EAFC;AAGLtC,mBAAK,EAAE;AACL,6BAAakC,SADR;AAEL,mCAAmBb;AAFd;AAHF,aAAP;AAQD;AAdM,SA1EM;AA0Ff,uBAAe;AACbL,aAAG,EAAE,IADQ;AAEboB,eAAK,EAAE,EAFM;AAGblB,YAAE,EAAE,YAACF,GAAD,EAAMG,KAAN,EAAaC,KAAb,EAAuB;AACzB,gBAAMc,SAAS,oBAAa,KAAKf,KAAL,IAAcA,KAAK,GAAG,CAAR,GAAY,GAAZ,GAAkB,CAAC,GAAjC,CAAb,SAAf;AACA,gBAAME,cAAc,aAAOL,GAAG,GAAGG,KAAN,GAAcC,KAAf,GAAwBJ,GAA9B,OAApB;AACA,mBAAO;AACLqB,gBAAE,EAAE,EADC;AAELC,gBAAE,EAAE,EAFC;AAGLtC,mBAAK,EAAE;AACL,6BAAakC,SADR;AAEL,mCAAmBb;AAFd;AAHF,aAAP;AAQD;AAdY;AA1FA,OAAjB;AA2GA,UAAMkB,QAAQ,GAAGxB,QAAjB;;;;;;;;;;;;;;;;AC3GA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;;AAAA,UAAMyB,WAAW,GAAG,SAAdA,WAAc,CAACC,QAAD,EAAW5G,EAAX,EAAkB;AACpC,eAAOA,EAAE,CAAC6G,OAAH,CAAWD,QAAX,MAAyB,IAAhC;AACD,OAFD;AAGA;;;;;AAGA,UAAME,kBAAkB,GAAG,SAArBA,kBAAqB,CAACC,KAAD,EAAQC,WAAR,EAAwB;AACjD,eAAQ,OAAOD,KAAP,KAAiB,QAAjB,IAA6BA,KAAK,CAACE,MAAN,GAAe,CAA7C,GAAkDvE,MAAM,CAACC,MAAP;AAAgB,uBAAa;AAA7B,+BAAiDoE,KAAjD,GAA2D,IAA3D,GAAmEC,WAAnE,CAAlD,GAAoIA,WAA3I;AACD,OAFD;;AAGA,UAAME,YAAY,GAAG,SAAfA,YAAe,CAACC,OAAD,EAAa;AAChC,YAAIA,OAAO,KAAK/F,SAAhB,EAA2B;AACzB,cAAMgG,KAAK,GAAGC,KAAK,CAACC,OAAN,CAAcH,OAAd,IAAyBA,OAAzB,GAAmCA,OAAO,CAACI,KAAR,CAAc,GAAd,CAAjD;AACA,iBAAOH,KAAK,CACTI,MADI,CACG,UAAA/E,CAAC;AAAA,mBAAIA,CAAC,IAAI,IAAT;AAAA,WADJ,EAEJgF,GAFI,CAEA,UAAAhF,CAAC;AAAA,mBAAIA,CAAC,CAACiF,IAAF,EAAJ;AAAA,WAFD,EAGJF,MAHI,CAGG,UAAA/E,CAAC;AAAA,mBAAIA,CAAC,KAAK,EAAV;AAAA,WAHJ,CAAP;AAID;;AACD,eAAO,EAAP;AACD,OATD;;AAUA,UAAMkF,WAAW,GAAG,SAAdA,WAAc,CAACR,OAAD,EAAa;AAC/B,YAAMM,GAAG,GAAG,EAAZ;AACAP,oBAAY,CAACC,OAAD,CAAZ,CAAsB3E,OAAtB,CAA8B,UAAAC,CAAC;AAAA,iBAAIgF,GAAG,CAAChF,CAAD,CAAH,GAAS,IAAb;AAAA,SAA/B;AACA,eAAOgF,GAAP;AACD,OAJD;;AAKA,UAAMG,MAAM,GAAG,sBAAf;;AACA,UAAMC,OAAO;AAAA,4EAAG,kBAAOC,GAAP,EAAYtG,EAAZ,EAAgBuG,SAAhB,EAA2BC,SAA3B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBACVF,GAAG,IAAI,IAAP,IAAeA,GAAG,CAAC,CAAD,CAAH,KAAW,GAA1B,IAAiC,CAACF,MAAM,CAACK,IAAP,CAAYH,GAAZ,CADxB;AAAA;AAAA;AAAA;;AAENI,wBAFM,GAEG1H,QAAQ,CAAC2H,aAAT,CAAuB,YAAvB,CAFH;;AAAA,uBAGRD,MAHQ;AAAA;AAAA;AAAA;;AAIV,sBAAI1G,EAAE,IAAI,IAAV,EAAgB;AACdA,sBAAE,CAAC4G,cAAH;AACD;;AANS,oDAOHF,MAAM,CAACG,IAAP,CAAYP,GAAZ,EAAiBC,SAAjB,EAA4BC,SAA5B,CAPG;;AAAA;AAAA,oDAUP,KAVO;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,SAAH;;AAAA,wBAAPH,OAAO;AAAA;AAAA;AAAA,SAAb;;;;;;;;;;;;;;;;;ACzBA;AAAe;;;AAAA;;;;;;;;;;;;;;;;ACAf;AAAe;;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UCOFS,yBAAyB;AAGpC,6CAAc;AAAA;AAAG;;AAHmB;AAAA;AAAA,qCAKzB,CAAE;AALuB;;AAAA;AAAA,S;;;;;;;;gBACnC;;;AADUA,+BAAyB,6DALrC,gEAAU;AACT1B,gBAAQ,EAAE,uBADD;AAET2B,gBAAQ,EAAR;AAAA;AAAA,yHAFS;;;;AAAA,OAAV,CAKqC,GAAzBD,yBAAyB,CAAzB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UCMAE,+BAA+B;AAAA;AAAA,O;;AAA/BA,qCAA+B,6DAL3C,+DAAS;AACRC,eAAO,EAAE,CAAE,4DAAF,EAAgB,0DAAhB,EAA6B,0DAA7B,CADD;AAERC,oBAAY,EAAE,CAAC,sFAAD,CAFN;AAGRC,eAAO,EAAE,CAAC,sFAAD;AAHD,OAAT,CAK2C,GAA/BH,+BAA+B,CAA/B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UCPAI,aAAa;AAKxB,iCAAc;AAAA;;AACZ,eAAKC,OAAL,GAAe,6BAAf;AACA,eAAKC,WAAL,GAAmB;AACjBC,mBAAO,EAAE,IAAI,gEAAJ,CAAgB;AACvB,8BAAiB;AADM,aAAhB;AADQ,WAAnB;AAKD;;AAZuB;AAAA;AAAA,sDAcC;AACvB,mBAAO;AACLA,qBAAO,EAAE,IAAI,gEAAJ,CAAgB;AACvB,iCAAkB,YAAYC,YAAY,CAACC,OAAb,CAAqB,OAArB,CADP;AAEvB,wBAAQC,IAAI,CAACC,KAAL,CAAWH,YAAY,CAACC,OAAb,CAAqB,MAArB,CAAX;AAFe,eAAhB;AADJ,aAAP;AAMD;AArBuB;AAAA;AAAA,uDAuBE;AACxB,mBAAO;AACLF,qBAAO,EAAE,IAAI,gEAAJ,CAAgB;AACvB,iCAAkB,YAAYC,YAAY,CAACC,OAAb,CAAqB,OAArB,CADP;AAEvB,wBAAQC,IAAI,CAACC,KAAL,CAAWH,YAAY,CAACC,OAAb,CAAqB,MAArB,CAAX,CAFe;AAGvB,gCAAiB;AAHM,eAAhB;AADJ,aAAP;AAOD;AA/BuB;;AAAA;AAAA,S;;;;;;AAAbL,mBAAa,6DAHzB,iEAAW;AACVQ,kBAAU,EAAE;AADF,OAAX,CAGyB,GAAbR,aAAa,CAAb","file":"common-es5.js","sourcesContent":["import { c as writeTask } from './index-e806d1f6.js';\nimport { createGesture } from './index-f49d994d.js';\nimport { h as hapticSelectionEnd, a as hapticSelectionStart, b as hapticSelectionChanged } from './haptic-27b3f981.js';\n\nconst createButtonActiveGesture = (el, isButton) => {\n let currentTouchedButton;\n let initialTouchedButton;\n const activateButtonAtPoint = (x, y, hapticFeedbackFn) => {\n if (typeof document === 'undefined') {\n return;\n }\n const target = document.elementFromPoint(x, y);\n if (!target || !isButton(target)) {\n clearActiveButton();\n return;\n }\n if (target !== currentTouchedButton) {\n clearActiveButton();\n setActiveButton(target, hapticFeedbackFn);\n }\n };\n const setActiveButton = (button, hapticFeedbackFn) => {\n currentTouchedButton = button;\n if (!initialTouchedButton) {\n initialTouchedButton = currentTouchedButton;\n }\n const buttonToModify = currentTouchedButton;\n writeTask(() => buttonToModify.classList.add('ion-activated'));\n hapticFeedbackFn();\n };\n const clearActiveButton = (dispatchClick = false) => {\n if (!currentTouchedButton) {\n return;\n }\n const buttonToModify = currentTouchedButton;\n writeTask(() => buttonToModify.classList.remove('ion-activated'));\n /**\n * Clicking on one button, but releasing on another button\n * does not dispatch a click event in browsers, so we\n * need to do it manually here. Some browsers will\n * dispatch a click if clicking on one button, dragging over\n * another button, and releasing on the original button. In that\n * case, we need to make sure we do not cause a double click there.\n */\n if (dispatchClick && initialTouchedButton !== currentTouchedButton) {\n currentTouchedButton.click();\n }\n currentTouchedButton = undefined;\n };\n return createGesture({\n el,\n gestureName: 'buttonActiveDrag',\n threshold: 0,\n onStart: ev => activateButtonAtPoint(ev.currentX, ev.currentY, hapticSelectionStart),\n onMove: ev => activateButtonAtPoint(ev.currentX, ev.currentY, hapticSelectionChanged),\n onEnd: () => {\n clearActiveButton(true);\n hapticSelectionEnd();\n initialTouchedButton = undefined;\n }\n });\n};\n\nexport { createButtonActiveGesture as c };\n","const attachComponent = async (delegate, container, component, cssClasses, componentProps) => {\n if (delegate) {\n return delegate.attachViewToDom(container, component, componentProps, cssClasses);\n }\n if (typeof component !== 'string' && !(component instanceof HTMLElement)) {\n throw new Error('framework delegate is missing');\n }\n const el = (typeof component === 'string')\n ? container.ownerDocument && container.ownerDocument.createElement(component)\n : component;\n if (cssClasses) {\n cssClasses.forEach(c => el.classList.add(c));\n }\n if (componentProps) {\n Object.assign(el, componentProps);\n }\n container.appendChild(el);\n if (el.componentOnReady) {\n await el.componentOnReady();\n }\n return el;\n};\nconst detachComponent = (delegate, element) => {\n if (element) {\n if (delegate) {\n const container = element.parentElement;\n return delegate.removeViewFromDom(container, element);\n }\n element.remove();\n }\n return Promise.resolve();\n};\n\nexport { attachComponent as a, detachComponent as d };\n","const HapticEngine = {\n getEngine() {\n const win = window;\n return (win.TapticEngine) || (win.Capacitor && win.Capacitor.isPluginAvailable('Haptics') && win.Capacitor.Plugins.Haptics);\n },\n available() {\n return !!this.getEngine();\n },\n isCordova() {\n return !!window.TapticEngine;\n },\n isCapacitor() {\n const win = window;\n return !!win.Capacitor;\n },\n impact(options) {\n const engine = this.getEngine();\n if (!engine) {\n return;\n }\n const style = this.isCapacitor() ? options.style.toUpperCase() : options.style;\n engine.impact({ style });\n },\n notification(options) {\n const engine = this.getEngine();\n if (!engine) {\n return;\n }\n const style = this.isCapacitor() ? options.style.toUpperCase() : options.style;\n engine.notification({ style });\n },\n selection() {\n this.impact({ style: 'light' });\n },\n selectionStart() {\n const engine = this.getEngine();\n if (!engine) {\n return;\n }\n if (this.isCapacitor()) {\n engine.selectionStart();\n }\n else {\n engine.gestureSelectionStart();\n }\n },\n selectionChanged() {\n const engine = this.getEngine();\n if (!engine) {\n return;\n }\n if (this.isCapacitor()) {\n engine.selectionChanged();\n }\n else {\n engine.gestureSelectionChanged();\n }\n },\n selectionEnd() {\n const engine = this.getEngine();\n if (!engine) {\n return;\n }\n if (this.isCapacitor()) {\n engine.selectionEnd();\n }\n else {\n engine.gestureSelectionEnd();\n }\n }\n};\n/**\n * Trigger a selection changed haptic event. Good for one-time events\n * (not for gestures)\n */\nconst hapticSelection = () => {\n HapticEngine.selection();\n};\n/**\n * Tell the haptic engine that a gesture for a selection change is starting.\n */\nconst hapticSelectionStart = () => {\n HapticEngine.selectionStart();\n};\n/**\n * Tell the haptic engine that a selection changed during a gesture.\n */\nconst hapticSelectionChanged = () => {\n HapticEngine.selectionChanged();\n};\n/**\n * Tell the haptic engine we are done with a gesture. This needs to be\n * called lest resources are not properly recycled.\n */\nconst hapticSelectionEnd = () => {\n HapticEngine.selectionEnd();\n};\n/**\n * Use this to indicate success/failure/warning to the user.\n * options should be of the type `{ style: 'light' }` (or `medium`/`heavy`)\n */\nconst hapticImpact = (options) => {\n HapticEngine.impact(options);\n};\n\nexport { hapticSelectionStart as a, hapticSelectionChanged as b, hapticSelection as c, hapticImpact as d, hapticSelectionEnd as h };\n","const spinners = {\n 'bubbles': {\n dur: 1000,\n circles: 9,\n fn: (dur, index, total) => {\n const animationDelay = `${(dur * index / total) - dur}ms`;\n const angle = 2 * Math.PI * index / total;\n return {\n r: 5,\n style: {\n 'top': `${9 * Math.sin(angle)}px`,\n 'left': `${9 * Math.cos(angle)}px`,\n 'animation-delay': animationDelay,\n }\n };\n }\n },\n 'circles': {\n dur: 1000,\n circles: 8,\n fn: (dur, index, total) => {\n const step = index / total;\n const animationDelay = `${(dur * step) - dur}ms`;\n const angle = 2 * Math.PI * step;\n return {\n r: 5,\n style: {\n 'top': `${9 * Math.sin(angle)}px`,\n 'left': `${9 * Math.cos(angle)}px`,\n 'animation-delay': animationDelay,\n }\n };\n }\n },\n 'circular': {\n dur: 1400,\n elmDuration: true,\n circles: 1,\n fn: () => {\n return {\n r: 20,\n cx: 48,\n cy: 48,\n fill: 'none',\n viewBox: '24 24 48 48',\n transform: 'translate(0,0)',\n style: {}\n };\n }\n },\n 'crescent': {\n dur: 750,\n circles: 1,\n fn: () => {\n return {\n r: 26,\n style: {}\n };\n }\n },\n 'dots': {\n dur: 750,\n circles: 3,\n fn: (_, index) => {\n const animationDelay = -(110 * index) + 'ms';\n return {\n r: 6,\n style: {\n 'left': `${9 - (9 * index)}px`,\n 'animation-delay': animationDelay,\n }\n };\n }\n },\n 'lines': {\n dur: 1000,\n lines: 12,\n fn: (dur, index, total) => {\n const transform = `rotate(${30 * index + (index < 6 ? 180 : -180)}deg)`;\n const animationDelay = `${(dur * index / total) - dur}ms`;\n return {\n y1: 17,\n y2: 29,\n style: {\n 'transform': transform,\n 'animation-delay': animationDelay,\n }\n };\n }\n },\n 'lines-small': {\n dur: 1000,\n lines: 12,\n fn: (dur, index, total) => {\n const transform = `rotate(${30 * index + (index < 6 ? 180 : -180)}deg)`;\n const animationDelay = `${(dur * index / total) - dur}ms`;\n return {\n y1: 12,\n y2: 20,\n style: {\n 'transform': transform,\n 'animation-delay': animationDelay,\n }\n };\n }\n }\n};\nconst SPINNERS = spinners;\n\nexport { SPINNERS as S };\n","const hostContext = (selector, el) => {\n return el.closest(selector) !== null;\n};\n/**\n * Create the mode and color classes for the component based on the classes passed in\n */\nconst createColorClasses = (color, cssClassMap) => {\n return (typeof color === 'string' && color.length > 0) ? Object.assign({ 'ion-color': true, [`ion-color-${color}`]: true }, cssClassMap) : cssClassMap;\n};\nconst getClassList = (classes) => {\n if (classes !== undefined) {\n const array = Array.isArray(classes) ? classes : classes.split(' ');\n return array\n .filter(c => c != null)\n .map(c => c.trim())\n .filter(c => c !== '');\n }\n return [];\n};\nconst getClassMap = (classes) => {\n const map = {};\n getClassList(classes).forEach(c => map[c] = true);\n return map;\n};\nconst SCHEME = /^[a-z][a-z0-9+\\-.]*:/;\nconst openURL = async (url, ev, direction, animation) => {\n if (url != null && url[0] !== '#' && !SCHEME.test(url)) {\n const router = document.querySelector('ion-router');\n if (router) {\n if (ev != null) {\n ev.preventDefault();\n }\n return router.push(url, direction, animation);\n }\n }\n return false;\n};\n\nexport { createColorClasses as c, getClassMap as g, hostContext as h, openURL as o };\n","export default \"<div id=\\\"container\\\">\\n <strong>{{ name }}</strong>\\n <p>Explore <a target=\\\"_blank\\\" rel=\\\"noopener noreferrer\\\" href=\\\"https://ionicframework.com/docs/components\\\">UI Components</a></p>\\n</div>\";","export default \"#container {\\n text-align: center;\\n position: absolute;\\n left: 0;\\n right: 0;\\n top: 50%;\\n transform: translateY(-50%);\\n}\\n\\n#container strong {\\n font-size: 20px;\\n line-height: 26px;\\n}\\n\\n#container p {\\n font-size: 16px;\\n line-height: 22px;\\n color: #8c8c8c;\\n margin: 0;\\n}\\n\\n#container a {\\n text-decoration: none;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvZXhwbG9yZS1jb250YWluZXIvZXhwbG9yZS1jb250YWluZXIuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxrQkFBQTtFQUVBLGtCQUFBO0VBQ0EsT0FBQTtFQUNBLFFBQUE7RUFDQSxRQUFBO0VBQ0EsMkJBQUE7QUFBRjs7QUFHQTtFQUNFLGVBQUE7RUFDQSxpQkFBQTtBQUFGOztBQUdBO0VBQ0UsZUFBQTtFQUNBLGlCQUFBO0VBRUEsY0FBQTtFQUVBLFNBQUE7QUFGRjs7QUFLQTtFQUNFLHFCQUFBO0FBRkYiLCJmaWxlIjoic3JjL2FwcC9leHBsb3JlLWNvbnRhaW5lci9leHBsb3JlLWNvbnRhaW5lci5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIiNjb250YWluZXIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbn1cblxuI2NvbnRhaW5lciBzdHJvbmcge1xuICBmb250LXNpemU6IDIwcHg7XG4gIGxpbmUtaGVpZ2h0OiAyNnB4O1xufVxuXG4jY29udGFpbmVyIHAge1xuICBmb250LXNpemU6IDE2cHg7XG4gIGxpbmUtaGVpZ2h0OiAyMnB4O1xuXG4gIGNvbG9yOiAjOGM4YzhjO1xuXG4gIG1hcmdpbjogMDtcbn1cblxuI2NvbnRhaW5lciBhIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufSJdfQ== */\";","import { Component, OnInit, Input } from '@angular/core';\n\n@Component({\n selector: 'app-explore-container',\n templateUrl: './explore-container.component.html',\n styleUrls: ['./explore-container.component.scss'],\n})\nexport class ExploreContainerComponent implements OnInit {\n @Input() name: string;\n\n constructor() { }\n\n ngOnInit() {}\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { IonicModule } from '@ionic/angular';\n\nimport { ExploreContainerComponent } from './explore-container.component';\n\n@NgModule({\n imports: [ CommonModule, FormsModule, IonicModule],\n declarations: [ExploreContainerComponent],\n exports: [ExploreContainerComponent]\n})\nexport class ExploreContainerComponentModule {}\n","import { Injectable } from '@angular/core';\nimport { HttpHeaders } from '@angular/common/http';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class GlobalService {\n\n public apiRoot: string;\n public httpOptions;\n\n constructor() { \n this.apiRoot = 'http://163.172.178.146:3000';\n this.httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n })\n };\n }\n\n getHeaderHttpGetConnected(){\n return {\n headers: new HttpHeaders({\n 'Authorization': \"Bearer \" + localStorage.getItem('token'),\n 'user': JSON.parse(localStorage.getItem('user'))\n })\n };\n }\n\n getHeaderHttpPostConnected(){\n return {\n headers: new HttpHeaders({\n 'Authorization': \"Bearer \" + localStorage.getItem('token'),\n 'user': JSON.parse(localStorage.getItem('user')),\n 'Content-Type': 'application/json'\n })\n };\n }\n}\n"]} \ No newline at end of file diff --git a/ionic/www/conversation-conversation-module-es2015.js b/ionic/www/conversation-conversation-module-es2015.js index b3cde34a3a0ea18f77747c3e069f279a21657a79..06e1f31b701aa7d7e5b44e506c3fb39af41c5395 100644 --- a/ionic/www/conversation-conversation-module-es2015.js +++ b/ionic/www/conversation-conversation-module-es2015.js @@ -9,7 +9,7 @@ "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony default export */ __webpack_exports__["default"] = ("<ion-header>\n <ion-toolbar>\n <ion-buttons slot=\"start\">\n <ion-back-button text=\"Retour\"></ion-back-button>\n </ion-buttons>\n <ion-title>Luke Skywalker</ion-title>\n <ion-avatar slot=\"end\">\n <img src=\"../../assets/icon/favicon.png\">\n </ion-avatar>\n </ion-toolbar>\n</ion-header>\n\n<ion-content>\n <div class=\"bg\"></div>\n <ion-item lines=\"none\">\n <ion-badge color=\"warning\" slot=\"end\">Hey Luke comment ça va ?! <ion-note color=\"medium\">21:16 <ion-icon name=\"done-all\"></ion-icon></ion-note></ion-badge>\n </ion-item>\n\n <ion-item lines=\"none\">\n <ion-badge color=\"light\" slot=\"start\">Plutôt bien merci <ion-note color=\"medium\">21:17</ion-note></ion-badge>\n </ion-item>\n</ion-content>\n\n<ion-footer>\n <ion-toolbar>\n <ion-input placeholder=\"Votre message\"></ion-input>\n <ion-buttons slot=\"end\">\n <ion-button >\n Envoyer\n </ion-button>\n </ion-buttons>\n </ion-toolbar>\n</ion-footer>\n"); +/* harmony default export */ __webpack_exports__["default"] = ("<ion-header>\n <ion-toolbar>\n <ion-buttons slot=\"start\">\n <ion-back-button text=\"Retour\" defaultHref=\"/tabs/tab3\"></ion-back-button>\n </ion-buttons>\n <ion-title>Messages</ion-title>\n <ion-avatar slot=\"end\" routerLink=\"/gestion-groupe/{{ id }}\">\n <ion-icon name=\"cog\"></ion-icon>\n </ion-avatar>\n </ion-toolbar>\n</ion-header>\n\n<ion-content #scrollElement padding>\n <div class=\"bg\"></div>\n\n <ion-item *ngFor=\"let message of messages\" lines=\"none\" style=\"padding-bottom: 5px;\">\n <div slot=\"end\" *ngIf=\"message.author._id == idUser\">\n <ion-badge color=\"warning\" style=\"display:block; white-space:normal;text-align: left;\">{{message.body}}</ion-badge>\n <ion-note color=\"medium\" style=\"float: right;\">{{message.date | date: 'dd/MM/yyyy h:mm'}} <ion-icon name=\"done-all\"></ion-icon></ion-note>\n </div>\n <div slot=\"start\" *ngIf=\"message.author._id != idUser\">\n <ion-note color=\"medium\" style=\"display:block; padding-bottom: 2px;\">{{message.author.username}}</ion-note>\n <ion-badge color=\"light\" style=\"display:block; white-space:normal;text-align: left;\">{{message.body}}</ion-badge>\n <ion-note color=\"medium\" style=\"float: left;\">{{message.date | date: 'dd/MM/yyyy h:mm'}} <ion-icon name=\"done-all\"></ion-icon></ion-note>\n </div>\n </ion-item>\n</ion-content>\n\n<ion-footer>\n <ion-toolbar>\n <ion-input type='text' [(ngModel)]=\"text\" placeholder=\"Votre message\"></ion-input>\n <ion-buttons slot=\"end\">\n <ion-button (click) = \"sendMessage()\">\n Envoyer\n </ion-button>\n </ion-buttons>\n </ion-toolbar>\n</ion-footer>\n"); /***/ }), @@ -101,7 +101,7 @@ ConversationPageModule = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"] "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony default export */ __webpack_exports__["default"] = (".bg {\n width: 100%;\n height: 100%;\n position: fixed;\n background-color: lightgray;\n background-size: cover;\n}\n\nion-footer ion-toolbar {\n --background: #f4f4f4;\n}\n\nion-footer ion-button {\n font-weight: 600;\n}\n\nion-input {\n background: white !important;\n height: 31px;\n width: 95%;\n margin-left: 2.5%;\n margin-right: 2.5%;\n border-radius: 4px;\n border: 1px #dfdfdf solid;\n --padding-start: 8px;\n}\n\nion-item {\n --background: transparent;\n}\n\nion-badge {\n padding: 6px 9px;\n border-radius: 6px;\n font-weight: 400;\n font-size: 15px;\n box-shadow: 1px 1px 3px #00000029;\n}\n\nion-item ion-note {\n font-size: 10px;\n margin-left: 8px;\n}\n\nion-item ion-note ion-icon {\n font-size: 20px;\n margin-bottom: -6px;\n margin-left: -2px;\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29udmVyc2F0aW9uL2NvbnZlcnNhdGlvbi5wYWdlLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxXQUFBO0VBQ0EsWUFBQTtFQUNBLGVBQUE7RUFDQSwyQkFBQTtFQUNBLHNCQUFBO0FBQ0Y7O0FBQ0E7RUFDRSxxQkFBQTtBQUVGOztBQUFBO0VBQ0UsZ0JBQUE7QUFHRjs7QUFEQTtFQUNFLDRCQUFBO0VBQ0EsWUFBQTtFQUNBLFVBQUE7RUFDQSxpQkFBQTtFQUNBLGtCQUFBO0VBQ0Esa0JBQUE7RUFDQSx5QkFBQTtFQUNBLG9CQUFBO0FBSUY7O0FBREE7RUFDRSx5QkFBQTtBQUlGOztBQUZBO0VBQ0UsZ0JBQUE7RUFDQSxrQkFBQTtFQUNBLGdCQUFBO0VBQ0EsZUFBQTtFQUNBLGlDQUFBO0FBS0Y7O0FBSEE7RUFDRSxlQUFBO0VBQ0EsZ0JBQUE7QUFNRjs7QUFKQTtFQUNFLGVBQUE7RUFDQSxtQkFBQTtFQUNBLGlCQUFBO0FBT0YiLCJmaWxlIjoic3JjL2FwcC9jb252ZXJzYXRpb24vY29udmVyc2F0aW9uLnBhZ2Uuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5iZyB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRncmF5O1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xufVxuaW9uLWZvb3RlciBpb24tdG9vbGJhciB7XG4gIC0tYmFja2dyb3VuZDogI2Y0ZjRmNDtcbn1cbmlvbi1mb290ZXIgaW9uLWJ1dHRvbiB7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5pb24taW5wdXQge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZSAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDMxcHg7XG4gIHdpZHRoOiA5NSU7XG4gIG1hcmdpbi1sZWZ0OiAyLjUlO1xuICBtYXJnaW4tcmlnaHQ6IDIuNSU7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYm9yZGVyOiAxcHggI2RmZGZkZiBzb2xpZDtcbiAgLS1wYWRkaW5nLXN0YXJ0OiA4cHg7XG59XG5cbmlvbi1pdGVtIHtcbiAgLS1iYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbn1cbmlvbi1iYWRnZSB7XG4gIHBhZGRpbmc6IDZweCA5cHg7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgZm9udC1zaXplOiAxNXB4O1xuICBib3gtc2hhZG93OiAxcHggMXB4IDNweCAjMDAwMDAwMjk7XG59XG5pb24taXRlbSBpb24tbm90ZSB7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgbWFyZ2luLWxlZnQ6IDhweDtcbn1cbmlvbi1pdGVtIGlvbi1ub3RlIGlvbi1pY29ue1xuICBmb250LXNpemU6IDIwcHg7XG4gIG1hcmdpbi1ib3R0b206IC02cHg7XG4gIG1hcmdpbi1sZWZ0OiAtMnB4O1xufVxuIl19 */"); +/* harmony default export */ __webpack_exports__["default"] = (".bg {\n width: 100%;\n height: 100%;\n position: fixed;\n background-color: lightgray;\n background-size: cover;\n}\n\nion-footer ion-toolbar {\n --background: #f4f4f4;\n}\n\nion-footer ion-button {\n font-weight: 600;\n}\n\nion-avatar > ion-icon {\n width: 100% !important;\n height: 100% !important;\n max-width: 80px !important;\n max-height: 80px !important;\n}\n\nion-input {\n background: white !important;\n height: 31px;\n width: 95%;\n margin-left: 2.5%;\n margin-right: 2.5%;\n border-radius: 4px;\n border: 1px #dfdfdf solid;\n --padding-start: 8px;\n}\n\nion-item {\n --background: transparent;\n}\n\nion-badge {\n padding: 6px 9px;\n border-radius: 6px;\n font-weight: 400;\n font-size: 15px;\n box-shadow: 1px 1px 3px #00000029;\n}\n\nion-item ion-note {\n font-size: 10px;\n margin-left: 8px;\n}\n\nion-item ion-note ion-icon {\n font-size: 20px;\n margin-bottom: -6px;\n margin-left: -2px;\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29udmVyc2F0aW9uL2NvbnZlcnNhdGlvbi5wYWdlLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxXQUFBO0VBQ0EsWUFBQTtFQUNBLGVBQUE7RUFDQSwyQkFBQTtFQUNBLHNCQUFBO0FBQ0Y7O0FBQ0E7RUFDRSxxQkFBQTtBQUVGOztBQUFBO0VBQ0UsZ0JBQUE7QUFHRjs7QUFEQTtFQUNFLHNCQUFBO0VBQ0EsdUJBQUE7RUFDQSwwQkFBQTtFQUNBLDJCQUFBO0FBSUY7O0FBREE7RUFDRSw0QkFBQTtFQUNBLFlBQUE7RUFDQSxVQUFBO0VBQ0EsaUJBQUE7RUFDQSxrQkFBQTtFQUNBLGtCQUFBO0VBQ0EseUJBQUE7RUFDQSxvQkFBQTtBQUlGOztBQURBO0VBQ0UseUJBQUE7QUFJRjs7QUFGQTtFQUNFLGdCQUFBO0VBQ0Esa0JBQUE7RUFDQSxnQkFBQTtFQUNBLGVBQUE7RUFDQSxpQ0FBQTtBQUtGOztBQUhBO0VBQ0UsZUFBQTtFQUNBLGdCQUFBO0FBTUY7O0FBSkE7RUFDRSxlQUFBO0VBQ0EsbUJBQUE7RUFDQSxpQkFBQTtBQU9GIiwiZmlsZSI6InNyYy9hcHAvY29udmVyc2F0aW9uL2NvbnZlcnNhdGlvbi5wYWdlLnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuYmcge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0Z3JheTtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3Zlcjtcbn1cbmlvbi1mb290ZXIgaW9uLXRvb2xiYXIge1xuICAtLWJhY2tncm91bmQ6ICNmNGY0ZjQ7XG59XG5pb24tZm9vdGVyIGlvbi1idXR0b24ge1xuICBmb250LXdlaWdodDogNjAwO1xufVxuaW9uLWF2YXRhciA+IGlvbi1pY29uICB7ICAgICBcbiAgd2lkdGg6MTAwJSAhaW1wb3J0YW50OyAgXG4gIGhlaWdodCA6IDEwMCUgIWltcG9ydGFudDsgIFxuICBtYXgtd2lkdGg6IDgwcHggIWltcG9ydGFudDsgIC8vYW55IHNpemVcbiAgbWF4LWhlaWdodDogODBweCAhaW1wb3J0YW50OyAvL2FueSBzaXplIFxuICB9XG5cbmlvbi1pbnB1dCB7XG4gIGJhY2tncm91bmQ6IHdoaXRlICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogMzFweDtcbiAgd2lkdGg6IDk1JTtcbiAgbWFyZ2luLWxlZnQ6IDIuNSU7XG4gIG1hcmdpbi1yaWdodDogMi41JTtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBib3JkZXI6IDFweCAjZGZkZmRmIHNvbGlkO1xuICAtLXBhZGRpbmctc3RhcnQ6IDhweDtcbn1cblxuaW9uLWl0ZW0ge1xuICAtLWJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xufVxuaW9uLWJhZGdlIHtcbiAgcGFkZGluZzogNnB4IDlweDtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBmb250LXNpemU6IDE1cHg7XG4gIGJveC1zaGFkb3c6IDFweCAxcHggM3B4ICMwMDAwMDAyOTtcbn1cbmlvbi1pdGVtIGlvbi1ub3RlIHtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBtYXJnaW4tbGVmdDogOHB4O1xufVxuaW9uLWl0ZW0gaW9uLW5vdGUgaW9uLWljb257XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgbWFyZ2luLWJvdHRvbTogLTZweDtcbiAgbWFyZ2luLWxlZnQ6IC0ycHg7XG59XG4iXX0= */"); /***/ }), @@ -117,14 +117,47 @@ __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ConversationPage", function() { return ConversationPage; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); /* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js"); +/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/router */ "./node_modules/@angular/router/__ivy_ngcc__/fesm2015/router.js"); +/* harmony import */ var _services_conversation_conversation_service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../services/conversation/conversation.service */ "./src/app/services/conversation/conversation.service.ts"); + + let ConversationPage = class ConversationPage { - constructor() { } + constructor(activatedRoute, conversationService) { + this.activatedRoute = activatedRoute; + this.conversationService = conversationService; + } ngOnInit() { + this.id = this.activatedRoute.snapshot.paramMap.get('id'); + this.getMessages(); + this.idUser = JSON.parse(localStorage.getItem('user')).id; } + updateScroll() { + console.log(this.content.scrollToBottom); + this.content.scrollToBottom(200); + } + getMessages() { + this.conversationService.messages(this.id).subscribe(data => { + this.messages = data.reverse(); + setTimeout(() => { this.updateScroll(); }, 200); + }); + } + sendMessage() { + this.conversationService.sendMessage(this.text, this.id).subscribe(data => { + console.log(data); + this.text = ""; + this.getMessages(); + }); + } +}; +ConversationPage.ctorParameters = () => [ + { type: _angular_router__WEBPACK_IMPORTED_MODULE_2__["ActivatedRoute"] }, + { type: _services_conversation_conversation_service__WEBPACK_IMPORTED_MODULE_3__["ConversationService"] } +]; +ConversationPage.propDecorators = { + content: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ViewChild"], args: ["scrollElement", { static: true },] }] }; -ConversationPage.ctorParameters = () => []; ConversationPage = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({ selector: 'app-conversation', @@ -135,6 +168,66 @@ ConversationPage = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ +/***/ }), + +/***/ "./src/app/services/conversation/conversation.service.ts": +/*!***************************************************************!*\ + !*** ./src/app/services/conversation/conversation.service.ts ***! + \***************************************************************/ +/*! exports provided: ConversationService */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ConversationService", function() { return ConversationService; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); +/* harmony import */ var _angular_common_http__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/common/http */ "./node_modules/@angular/common/__ivy_ngcc__/fesm2015/http.js"); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js"); +/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! rxjs/operators */ "./node_modules/rxjs/_esm2015/operators/index.js"); +/* harmony import */ var _global_service__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../global.service */ "./src/app/global.service.ts"); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! rxjs */ "./node_modules/rxjs/_esm2015/index.js"); + + + + + + + +let ConversationService = class ConversationService { + constructor(http, global) { + this.http = http; + this.global = global; + this.urlRooms = this.global.apiRoot + '/rooms/'; + } + messages(id) { + return this.http.get(`${this.urlRooms}` + id + '/messages', this.global.getHeaderHttpPostConnected()).pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["map"])(results => { + console.log('get : ' + results); + return results; + }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["catchError"])(err => Object(rxjs__WEBPACK_IMPORTED_MODULE_5__["of"])(err))); + } + sendMessage(text, idRoom) { + const body = { + body: text, + roomId: idRoom, + }; + return this.http.post(this.global.apiRoot + '/messages', body, this.global.getHeaderHttpPostConnected()).pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["map"])(results => { + console.log('send : ' + results); + return results; + }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["catchError"])(err => Object(rxjs__WEBPACK_IMPORTED_MODULE_5__["of"])(err))); + } +}; +ConversationService.ctorParameters = () => [ + { type: _angular_common_http__WEBPACK_IMPORTED_MODULE_1__["HttpClient"] }, + { type: _global_service__WEBPACK_IMPORTED_MODULE_4__["GlobalService"] } +]; +ConversationService = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ + Object(_angular_core__WEBPACK_IMPORTED_MODULE_2__["Injectable"])({ + providedIn: 'root' + }) +], ConversationService); + + + /***/ }) }]); diff --git a/ionic/www/conversation-conversation-module-es2015.js.map b/ionic/www/conversation-conversation-module-es2015.js.map index 5f795897b720bc57b33cf9ab2b477d582cb20b9d..db2228fba2a51f2398b6b0b6c4ff3d9341b95963 100644 --- a/ionic/www/conversation-conversation-module-es2015.js.map +++ b/ionic/www/conversation-conversation-module-es2015.js.map @@ -1 +1 @@ -{"version":3,"sources":["./src/app/conversation/conversation.page.html","./src/app/conversation/conversation-routing.module.ts","./src/app/conversation/conversation.module.ts","./src/app/conversation/conversation.page.scss","./src/app/conversation/conversation.page.ts"],"names":[],"mappings":";;;;;;;;;;AAAA;AAAe,uiCAAw+B,E;;;;;;;;;;;;;;;;;;;ACA98B;AACc;AAEA;AAEvD,MAAM,MAAM,GAAW;IACrB;QACE,IAAI,EAAE,EAAE;QACR,SAAS,EAAE,mEAAgB;KAC5B;CACF,CAAC;IAMW,6BAA6B,SAA7B,6BAA6B;CAAG;AAAhC,6BAA6B;IAJzC,8DAAQ,CAAC;QACR,OAAO,EAAE,CAAC,4DAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACxC,OAAO,EAAE,CAAC,4DAAY,CAAC;KACxB,CAAC;GACW,6BAA6B,CAAG;AAAH;;;;;;;;;;;;;;;;;;;;;;;AChBD;AACM;AACF;AAEA;AAEiC;AAEvB;IAW1C,sBAAsB,SAAtB,sBAAsB;CAAG;AAAzB,sBAAsB;IATlC,8DAAQ,CAAC;QACR,OAAO,EAAE;YACP,4DAAY;YACZ,0DAAW;YACX,0DAAW;YACX,0FAA6B;SAC9B;QACD,YAAY,EAAE,CAAC,mEAAgB,CAAC;KACjC,CAAC;GACW,sBAAsB,CAAG;AAAH;;;;;;;;;;;;;ACnBnC;AAAe,qEAAM,gBAAgB,iBAAiB,oBAAoB,gCAAgC,2BAA2B,GAAG,4BAA4B,0BAA0B,GAAG,2BAA2B,qBAAqB,GAAG,eAAe,iCAAiC,iBAAiB,eAAe,sBAAsB,uBAAuB,uBAAuB,8BAA8B,yBAAyB,GAAG,cAAc,8BAA8B,GAAG,eAAe,qBAAqB,uBAAuB,qBAAqB,oBAAoB,sCAAsC,GAAG,uBAAuB,oBAAoB,qBAAqB,GAAG,gCAAgC,oBAAoB,wBAAwB,sBAAsB,GAAG,6CAA6C,muDAAmuD,E;;;;;;;;;;;;;;;;;ACApgF;IAOrC,gBAAgB,SAAhB,gBAAgB;IAE3B,gBAAgB,CAAC;IAEjB,QAAQ;IACR,CAAC;CAEF;;AAPY,gBAAgB;IAL5B,+DAAS,CAAC;QACT,QAAQ,EAAE,kBAAkB;QAC5B,sOAAuC;;KAExC,CAAC;GACW,gBAAgB,CAO5B;AAP4B","file":"conversation-conversation-module-es2015.js","sourcesContent":["export default \"<ion-header>\\n <ion-toolbar>\\n <ion-buttons slot=\\\"start\\\">\\n <ion-back-button text=\\\"Retour\\\"></ion-back-button>\\n </ion-buttons>\\n <ion-title>Luke Skywalker</ion-title>\\n <ion-avatar slot=\\\"end\\\">\\n <img src=\\\"../../assets/icon/favicon.png\\\">\\n </ion-avatar>\\n </ion-toolbar>\\n</ion-header>\\n\\n<ion-content>\\n <div class=\\\"bg\\\"></div>\\n <ion-item lines=\\\"none\\\">\\n <ion-badge color=\\\"warning\\\" slot=\\\"end\\\">Hey Luke comment ça va ?! <ion-note color=\\\"medium\\\">21:16 <ion-icon name=\\\"done-all\\\"></ion-icon></ion-note></ion-badge>\\n </ion-item>\\n\\n <ion-item lines=\\\"none\\\">\\n <ion-badge color=\\\"light\\\" slot=\\\"start\\\">Plutôt bien merci <ion-note color=\\\"medium\\\">21:17</ion-note></ion-badge>\\n </ion-item>\\n</ion-content>\\n\\n<ion-footer>\\n <ion-toolbar>\\n <ion-input placeholder=\\\"Votre message\\\"></ion-input>\\n <ion-buttons slot=\\\"end\\\">\\n <ion-button >\\n Envoyer\\n </ion-button>\\n </ion-buttons>\\n </ion-toolbar>\\n</ion-footer>\\n\";","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\n\nimport { ConversationPage } from './conversation.page';\n\nconst routes: Routes = [\n {\n path: '',\n component: ConversationPage\n }\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class ConversationPageRoutingModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { IonicModule } from '@ionic/angular';\n\nimport { ConversationPageRoutingModule } from './conversation-routing.module';\n\nimport { ConversationPage } from './conversation.page';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n IonicModule,\n ConversationPageRoutingModule\n ],\n declarations: [ConversationPage]\n})\nexport class ConversationPageModule {}\n","export default \".bg {\\n width: 100%;\\n height: 100%;\\n position: fixed;\\n background-color: lightgray;\\n background-size: cover;\\n}\\n\\nion-footer ion-toolbar {\\n --background: #f4f4f4;\\n}\\n\\nion-footer ion-button {\\n font-weight: 600;\\n}\\n\\nion-input {\\n background: white !important;\\n height: 31px;\\n width: 95%;\\n margin-left: 2.5%;\\n margin-right: 2.5%;\\n border-radius: 4px;\\n border: 1px #dfdfdf solid;\\n --padding-start: 8px;\\n}\\n\\nion-item {\\n --background: transparent;\\n}\\n\\nion-badge {\\n padding: 6px 9px;\\n border-radius: 6px;\\n font-weight: 400;\\n font-size: 15px;\\n box-shadow: 1px 1px 3px #00000029;\\n}\\n\\nion-item ion-note {\\n font-size: 10px;\\n margin-left: 8px;\\n}\\n\\nion-item ion-note ion-icon {\\n font-size: 20px;\\n margin-bottom: -6px;\\n margin-left: -2px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29udmVyc2F0aW9uL2NvbnZlcnNhdGlvbi5wYWdlLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxXQUFBO0VBQ0EsWUFBQTtFQUNBLGVBQUE7RUFDQSwyQkFBQTtFQUNBLHNCQUFBO0FBQ0Y7O0FBQ0E7RUFDRSxxQkFBQTtBQUVGOztBQUFBO0VBQ0UsZ0JBQUE7QUFHRjs7QUFEQTtFQUNFLDRCQUFBO0VBQ0EsWUFBQTtFQUNBLFVBQUE7RUFDQSxpQkFBQTtFQUNBLGtCQUFBO0VBQ0Esa0JBQUE7RUFDQSx5QkFBQTtFQUNBLG9CQUFBO0FBSUY7O0FBREE7RUFDRSx5QkFBQTtBQUlGOztBQUZBO0VBQ0UsZ0JBQUE7RUFDQSxrQkFBQTtFQUNBLGdCQUFBO0VBQ0EsZUFBQTtFQUNBLGlDQUFBO0FBS0Y7O0FBSEE7RUFDRSxlQUFBO0VBQ0EsZ0JBQUE7QUFNRjs7QUFKQTtFQUNFLGVBQUE7RUFDQSxtQkFBQTtFQUNBLGlCQUFBO0FBT0YiLCJmaWxlIjoic3JjL2FwcC9jb252ZXJzYXRpb24vY29udmVyc2F0aW9uLnBhZ2Uuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5iZyB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRncmF5O1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xufVxuaW9uLWZvb3RlciBpb24tdG9vbGJhciB7XG4gIC0tYmFja2dyb3VuZDogI2Y0ZjRmNDtcbn1cbmlvbi1mb290ZXIgaW9uLWJ1dHRvbiB7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5pb24taW5wdXQge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZSAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDMxcHg7XG4gIHdpZHRoOiA5NSU7XG4gIG1hcmdpbi1sZWZ0OiAyLjUlO1xuICBtYXJnaW4tcmlnaHQ6IDIuNSU7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYm9yZGVyOiAxcHggI2RmZGZkZiBzb2xpZDtcbiAgLS1wYWRkaW5nLXN0YXJ0OiA4cHg7XG59XG5cbmlvbi1pdGVtIHtcbiAgLS1iYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbn1cbmlvbi1iYWRnZSB7XG4gIHBhZGRpbmc6IDZweCA5cHg7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgZm9udC1zaXplOiAxNXB4O1xuICBib3gtc2hhZG93OiAxcHggMXB4IDNweCAjMDAwMDAwMjk7XG59XG5pb24taXRlbSBpb24tbm90ZSB7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgbWFyZ2luLWxlZnQ6IDhweDtcbn1cbmlvbi1pdGVtIGlvbi1ub3RlIGlvbi1pY29ue1xuICBmb250LXNpemU6IDIwcHg7XG4gIG1hcmdpbi1ib3R0b206IC02cHg7XG4gIG1hcmdpbi1sZWZ0OiAtMnB4O1xufVxuIl19 */\";","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-conversation',\n templateUrl: './conversation.page.html',\n styleUrls: ['./conversation.page.scss'],\n})\nexport class ConversationPage implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n"],"sourceRoot":"webpack:///"} \ No newline at end of file +{"version":3,"sources":["./src/app/conversation/conversation.page.html","./src/app/conversation/conversation-routing.module.ts","./src/app/conversation/conversation.module.ts","./src/app/conversation/conversation.page.scss","./src/app/conversation/conversation.page.ts","./src/app/services/conversation/conversation.service.ts"],"names":[],"mappings":";;;;;;;;;;AAAA;AAAe,4UAA6Q,MAAM,mQAAmQ,8HAA8H,oBAAoB,iBAAiB,KAAK,cAAc,oEAAoE,KAAK,wCAAwC,yLAAyL,qBAAqB,KAAK,yBAAyB,qEAAqE,oBAAoB,iBAAiB,KAAK,cAAc,mEAAmE,KAAK,wCAAwC,yYAAyY,E;;;;;;;;;;;;;;;;;;;ACAroD;AACc;AAEA;AAEvD,MAAM,MAAM,GAAW;IACrB;QACE,IAAI,EAAE,EAAE;QACR,SAAS,EAAE,mEAAgB;KAC5B;CACF,CAAC;IAMW,6BAA6B,SAA7B,6BAA6B;CAAG;AAAhC,6BAA6B;IAJzC,8DAAQ,CAAC;QACR,OAAO,EAAE,CAAC,4DAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACxC,OAAO,EAAE,CAAC,4DAAY,CAAC;KACxB,CAAC;GACW,6BAA6B,CAAG;AAAH;;;;;;;;;;;;;;;;;;;;;;;AChBD;AACM;AACF;AAEA;AAEiC;AAEvB;IAW1C,sBAAsB,SAAtB,sBAAsB;CAAG;AAAzB,sBAAsB;IATlC,8DAAQ,CAAC;QACR,OAAO,EAAE;YACP,4DAAY;YACZ,0DAAW;YACX,0DAAW;YACX,0FAA6B;SAC9B;QACD,YAAY,EAAE,CAAC,mEAAgB,CAAC;KACjC,CAAC;GACW,sBAAsB,CAAG;AAAH;;;;;;;;;;;;;ACnBnC;AAAe,qEAAM,gBAAgB,iBAAiB,oBAAoB,gCAAgC,2BAA2B,GAAG,4BAA4B,0BAA0B,GAAG,2BAA2B,qBAAqB,GAAG,2BAA2B,2BAA2B,4BAA4B,+BAA+B,gCAAgC,GAAG,eAAe,iCAAiC,iBAAiB,eAAe,sBAAsB,uBAAuB,uBAAuB,8BAA8B,yBAAyB,GAAG,cAAc,8BAA8B,GAAG,eAAe,qBAAqB,uBAAuB,qBAAqB,oBAAoB,sCAAsC,GAAG,uBAAuB,oBAAoB,qBAAqB,GAAG,gCAAgC,oBAAoB,wBAAwB,sBAAsB,GAAG,6CAA6C,miEAAmiE,E;;;;;;;;;;;;;;;;;;;ACA78F;AACZ;AAEmC;IASvE,gBAAgB,SAAhB,gBAAgB;IAQ3B,YAAoB,cAA8B,EAAU,mBAAwC;QAAhF,mBAAc,GAAd,cAAc,CAAgB;QAAU,wBAAmB,GAAnB,mBAAmB,CAAqB;IAAI,CAAC;IAEzG,QAAQ;QACN,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC1D,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5D,CAAC;IAED,YAAY;QACV,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC;QACxC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC;IAED,WAAW;QACT,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YAC1D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;YAC/B,UAAU,CAAC,GAAE,EAAE,GAAC,IAAI,CAAC,YAAY,EAAE,CAAC,EAAC,EAAC,GAAG,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;IACL,CAAC;IAED,WAAW;QACT,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAG,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YACzE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAClB,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;YACf,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,CAAC,CAAC,CAAC;IACL,CAAC;CACF;;YA9CQ,8DAAc;YAEd,+FAAmB;;;sBAUzB,uDAAS,SAAC,eAAe,EAAE,EAAC,MAAM,EAAE,IAAI,EAAC;;AAD/B,gBAAgB;IAL5B,+DAAS,CAAC;QACT,QAAQ,EAAE,kBAAkB;QAC5B,sOAAuC;;KAExC,CAAC;GACW,gBAAgB,CAmC5B;AAnC4B;;;;;;;;;;;;;;;;;;;;;;ACZqB;AACP;AAEN;AACgB;AACT;AAClB;IAOb,mBAAmB,SAAnB,mBAAmB;IAI9B,YAAoB,IAAgB,EAAU,MAAqB;QAA/C,SAAI,GAAJ,IAAI,CAAY;QAAU,WAAM,GAAN,MAAM,CAAe;QACjE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,SAAS,CAAC;IAClD,CAAC;IAED,QAAQ,CAAC,EAAE;QACT,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,0BAA0B,EAAE,CAAC,CAAC,IAAI,CACxG,0DAAG,CAAC,OAAO,CAAC,EAAE;YACZ,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,OAAO,CAAC,CAAC;YAChC,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC,EACF,iEAAU,CAAC,GAAG,CAAC,EAAE,CAAC,+CAAE,CAAC,GAAG,CAAC,CAAC,CAC3B,CAAC;IACJ,CAAC;IAED,WAAW,CAAC,IAAI,EAAE,MAAM;QACtB,MAAM,IAAI,GAAG;YACX,IAAI,EAAE,IAAI;YACV,MAAM,EAAE,MAAM;SACf,CAAC;QAEF,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,WAAW,EAAE,IAAI,EAAG,IAAI,CAAC,MAAM,CAAC,0BAA0B,EAAE,CAAC,CAAC,IAAI,CAC1G,0DAAG,CAAC,OAAO,CAAC,EAAE;YACZ,OAAO,CAAC,GAAG,CAAC,SAAS,GAAG,OAAO,CAAC,CAAC;YACjC,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC,EACF,iEAAU,CAAC,GAAG,CAAC,EAAE,CAAC,+CAAE,CAAC,GAAG,CAAC,CAAC,CAC7B,CAAC;IACJ,CAAC;CACF;;YA7CQ,+DAAU;YAIV,6DAAa;;AAST,mBAAmB;IAH/B,gEAAU,CAAC;QACV,UAAU,EAAE,MAAM;KACnB,CAAC;GACW,mBAAmB,CAgC/B;AAhC+B","file":"conversation-conversation-module-es2015.js","sourcesContent":["export default \"<ion-header>\\n <ion-toolbar>\\n <ion-buttons slot=\\\"start\\\">\\n <ion-back-button text=\\\"Retour\\\" defaultHref=\\\"/tabs/tab3\\\"></ion-back-button>\\n </ion-buttons>\\n <ion-title>Messages</ion-title>\\n <ion-avatar slot=\\\"end\\\" routerLink=\\\"/gestion-groupe/{{ id }}\\\">\\n <ion-icon name=\\\"cog\\\"></ion-icon>\\n </ion-avatar>\\n </ion-toolbar>\\n</ion-header>\\n\\n<ion-content #scrollElement padding>\\n <div class=\\\"bg\\\"></div>\\n\\n <ion-item *ngFor=\\\"let message of messages\\\" lines=\\\"none\\\" style=\\\"padding-bottom: 5px;\\\">\\n <div slot=\\\"end\\\" *ngIf=\\\"message.author._id == idUser\\\">\\n <ion-badge color=\\\"warning\\\" style=\\\"display:block; white-space:normal;text-align: left;\\\">{{message.body}}</ion-badge>\\n <ion-note color=\\\"medium\\\" style=\\\"float: right;\\\">{{message.date | date: 'dd/MM/yyyy h:mm'}} <ion-icon name=\\\"done-all\\\"></ion-icon></ion-note>\\n </div>\\n <div slot=\\\"start\\\" *ngIf=\\\"message.author._id != idUser\\\">\\n <ion-note color=\\\"medium\\\" style=\\\"display:block; padding-bottom: 2px;\\\">{{message.author.username}}</ion-note>\\n <ion-badge color=\\\"light\\\" style=\\\"display:block; white-space:normal;text-align: left;\\\">{{message.body}}</ion-badge>\\n <ion-note color=\\\"medium\\\" style=\\\"float: left;\\\">{{message.date | date: 'dd/MM/yyyy h:mm'}} <ion-icon name=\\\"done-all\\\"></ion-icon></ion-note>\\n </div>\\n </ion-item>\\n</ion-content>\\n\\n<ion-footer>\\n <ion-toolbar>\\n <ion-input type='text' [(ngModel)]=\\\"text\\\" placeholder=\\\"Votre message\\\"></ion-input>\\n <ion-buttons slot=\\\"end\\\">\\n <ion-button (click) = \\\"sendMessage()\\\">\\n Envoyer\\n </ion-button>\\n </ion-buttons>\\n </ion-toolbar>\\n</ion-footer>\\n\";","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\n\nimport { ConversationPage } from './conversation.page';\n\nconst routes: Routes = [\n {\n path: '',\n component: ConversationPage\n }\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class ConversationPageRoutingModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { IonicModule } from '@ionic/angular';\n\nimport { ConversationPageRoutingModule } from './conversation-routing.module';\n\nimport { ConversationPage } from './conversation.page';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n IonicModule,\n ConversationPageRoutingModule\n ],\n declarations: [ConversationPage]\n})\nexport class ConversationPageModule {}\n","export default \".bg {\\n width: 100%;\\n height: 100%;\\n position: fixed;\\n background-color: lightgray;\\n background-size: cover;\\n}\\n\\nion-footer ion-toolbar {\\n --background: #f4f4f4;\\n}\\n\\nion-footer ion-button {\\n font-weight: 600;\\n}\\n\\nion-avatar > ion-icon {\\n width: 100% !important;\\n height: 100% !important;\\n max-width: 80px !important;\\n max-height: 80px !important;\\n}\\n\\nion-input {\\n background: white !important;\\n height: 31px;\\n width: 95%;\\n margin-left: 2.5%;\\n margin-right: 2.5%;\\n border-radius: 4px;\\n border: 1px #dfdfdf solid;\\n --padding-start: 8px;\\n}\\n\\nion-item {\\n --background: transparent;\\n}\\n\\nion-badge {\\n padding: 6px 9px;\\n border-radius: 6px;\\n font-weight: 400;\\n font-size: 15px;\\n box-shadow: 1px 1px 3px #00000029;\\n}\\n\\nion-item ion-note {\\n font-size: 10px;\\n margin-left: 8px;\\n}\\n\\nion-item ion-note ion-icon {\\n font-size: 20px;\\n margin-bottom: -6px;\\n margin-left: -2px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29udmVyc2F0aW9uL2NvbnZlcnNhdGlvbi5wYWdlLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxXQUFBO0VBQ0EsWUFBQTtFQUNBLGVBQUE7RUFDQSwyQkFBQTtFQUNBLHNCQUFBO0FBQ0Y7O0FBQ0E7RUFDRSxxQkFBQTtBQUVGOztBQUFBO0VBQ0UsZ0JBQUE7QUFHRjs7QUFEQTtFQUNFLHNCQUFBO0VBQ0EsdUJBQUE7RUFDQSwwQkFBQTtFQUNBLDJCQUFBO0FBSUY7O0FBREE7RUFDRSw0QkFBQTtFQUNBLFlBQUE7RUFDQSxVQUFBO0VBQ0EsaUJBQUE7RUFDQSxrQkFBQTtFQUNBLGtCQUFBO0VBQ0EseUJBQUE7RUFDQSxvQkFBQTtBQUlGOztBQURBO0VBQ0UseUJBQUE7QUFJRjs7QUFGQTtFQUNFLGdCQUFBO0VBQ0Esa0JBQUE7RUFDQSxnQkFBQTtFQUNBLGVBQUE7RUFDQSxpQ0FBQTtBQUtGOztBQUhBO0VBQ0UsZUFBQTtFQUNBLGdCQUFBO0FBTUY7O0FBSkE7RUFDRSxlQUFBO0VBQ0EsbUJBQUE7RUFDQSxpQkFBQTtBQU9GIiwiZmlsZSI6InNyYy9hcHAvY29udmVyc2F0aW9uL2NvbnZlcnNhdGlvbi5wYWdlLnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuYmcge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0Z3JheTtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3Zlcjtcbn1cbmlvbi1mb290ZXIgaW9uLXRvb2xiYXIge1xuICAtLWJhY2tncm91bmQ6ICNmNGY0ZjQ7XG59XG5pb24tZm9vdGVyIGlvbi1idXR0b24ge1xuICBmb250LXdlaWdodDogNjAwO1xufVxuaW9uLWF2YXRhciA+IGlvbi1pY29uICB7ICAgICBcbiAgd2lkdGg6MTAwJSAhaW1wb3J0YW50OyAgXG4gIGhlaWdodCA6IDEwMCUgIWltcG9ydGFudDsgIFxuICBtYXgtd2lkdGg6IDgwcHggIWltcG9ydGFudDsgIC8vYW55IHNpemVcbiAgbWF4LWhlaWdodDogODBweCAhaW1wb3J0YW50OyAvL2FueSBzaXplIFxuICB9XG5cbmlvbi1pbnB1dCB7XG4gIGJhY2tncm91bmQ6IHdoaXRlICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogMzFweDtcbiAgd2lkdGg6IDk1JTtcbiAgbWFyZ2luLWxlZnQ6IDIuNSU7XG4gIG1hcmdpbi1yaWdodDogMi41JTtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBib3JkZXI6IDFweCAjZGZkZmRmIHNvbGlkO1xuICAtLXBhZGRpbmctc3RhcnQ6IDhweDtcbn1cblxuaW9uLWl0ZW0ge1xuICAtLWJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xufVxuaW9uLWJhZGdlIHtcbiAgcGFkZGluZzogNnB4IDlweDtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBmb250LXNpemU6IDE1cHg7XG4gIGJveC1zaGFkb3c6IDFweCAxcHggM3B4ICMwMDAwMDAyOTtcbn1cbmlvbi1pdGVtIGlvbi1ub3RlIHtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBtYXJnaW4tbGVmdDogOHB4O1xufVxuaW9uLWl0ZW0gaW9uLW5vdGUgaW9uLWljb257XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgbWFyZ2luLWJvdHRvbTogLTZweDtcbiAgbWFyZ2luLWxlZnQ6IC0ycHg7XG59XG4iXX0= */\";","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { IonContent } from '@ionic/angular';\nimport { ConversationService } from '../services/conversation/conversation.service';\n\n\n\n@Component({\n selector: 'app-conversation',\n templateUrl: './conversation.page.html',\n styleUrls: ['./conversation.page.scss'],\n})\nexport class ConversationPage implements OnInit {\n @ViewChild(\"scrollElement\", {static: true}) content: IonContent;\n\n messages;\n id;\n text: string;\n idUser;\n\n constructor(private activatedRoute: ActivatedRoute, private conversationService: ConversationService) { }\n\n ngOnInit() {\n this.id = this.activatedRoute.snapshot.paramMap.get('id');\n this.getMessages();\n this.idUser = JSON.parse(localStorage.getItem('user')).id;\n }\n\n updateScroll() {\n console.log(this.content.scrollToBottom)\n this.content.scrollToBottom(200);\n }\n\n getMessages(){\n this.conversationService.messages(this.id).subscribe(data => {\n this.messages = data.reverse();\n setTimeout(()=>{this.updateScroll();},200); \n });\n }\n\n sendMessage(){\n this.conversationService.sendMessage(this.text , this.id).subscribe(data => {\n console.log(data);\n this.text = \"\";\n this.getMessages();\n });\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { GlobalService } from '../../global.service';\nimport { catchError } from 'rxjs/operators';\nimport { of } from 'rxjs';\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ConversationService {\n\n private urlRooms: string;\n\n constructor(private http: HttpClient, private global: GlobalService) {\n this.urlRooms = this.global.apiRoot + '/rooms/';\n }\n\n messages(id): Observable<any> {\n return this.http.get(`${this.urlRooms}` + id + '/messages', this.global.getHeaderHttpPostConnected()).pipe(\n map(results => {\n console.log('get : ' + results);\n return results;\n }),\n catchError(err => of(err))\n );\n }\n\n sendMessage(text, idRoom){\n const body = {\n body: text,\n roomId: idRoom,\n };\n\n return this.http.post(this.global.apiRoot + '/messages', body , this.global.getHeaderHttpPostConnected()).pipe(\n map(results => {\n console.log('send : ' + results);\n return results;\n }),\n catchError(err => of(err))\n );\n }\n}\n"],"sourceRoot":"webpack:///"} \ No newline at end of file diff --git a/ionic/www/conversation-conversation-module-es5.js b/ionic/www/conversation-conversation-module-es5.js index b864d17c357291d68c01d32a736c0bf88007b883..de687f4ba99e6c8372a4966f46a082a489e98f80 100644 --- a/ionic/www/conversation-conversation-module-es5.js +++ b/ionic/www/conversation-conversation-module-es5.js @@ -22,7 +22,7 @@ /* harmony default export */ - __webpack_exports__["default"] = "<ion-header>\n <ion-toolbar>\n <ion-buttons slot=\"start\">\n <ion-back-button text=\"Retour\"></ion-back-button>\n </ion-buttons>\n <ion-title>Luke Skywalker</ion-title>\n <ion-avatar slot=\"end\">\n <img src=\"../../assets/icon/favicon.png\">\n </ion-avatar>\n </ion-toolbar>\n</ion-header>\n\n<ion-content>\n <div class=\"bg\"></div>\n <ion-item lines=\"none\">\n <ion-badge color=\"warning\" slot=\"end\">Hey Luke comment ça va ?! <ion-note color=\"medium\">21:16 <ion-icon name=\"done-all\"></ion-icon></ion-note></ion-badge>\n </ion-item>\n\n <ion-item lines=\"none\">\n <ion-badge color=\"light\" slot=\"start\">Plutôt bien merci <ion-note color=\"medium\">21:17</ion-note></ion-badge>\n </ion-item>\n</ion-content>\n\n<ion-footer>\n <ion-toolbar>\n <ion-input placeholder=\"Votre message\"></ion-input>\n <ion-buttons slot=\"end\">\n <ion-button >\n Envoyer\n </ion-button>\n </ion-buttons>\n </ion-toolbar>\n</ion-footer>\n"; + __webpack_exports__["default"] = "<ion-header>\n <ion-toolbar>\n <ion-buttons slot=\"start\">\n <ion-back-button text=\"Retour\" defaultHref=\"/tabs/tab3\"></ion-back-button>\n </ion-buttons>\n <ion-title>Messages</ion-title>\n <ion-avatar slot=\"end\" routerLink=\"/gestion-groupe/{{ id }}\">\n <ion-icon name=\"cog\"></ion-icon>\n </ion-avatar>\n </ion-toolbar>\n</ion-header>\n\n<ion-content #scrollElement padding>\n <div class=\"bg\"></div>\n\n <ion-item *ngFor=\"let message of messages\" lines=\"none\" style=\"padding-bottom: 5px;\">\n <div slot=\"end\" *ngIf=\"message.author._id == idUser\">\n <ion-badge color=\"warning\" style=\"display:block; white-space:normal;text-align: left;\">{{message.body}}</ion-badge>\n <ion-note color=\"medium\" style=\"float: right;\">{{message.date | date: 'dd/MM/yyyy h:mm'}} <ion-icon name=\"done-all\"></ion-icon></ion-note>\n </div>\n <div slot=\"start\" *ngIf=\"message.author._id != idUser\">\n <ion-note color=\"medium\" style=\"display:block; padding-bottom: 2px;\">{{message.author.username}}</ion-note>\n <ion-badge color=\"light\" style=\"display:block; white-space:normal;text-align: left;\">{{message.body}}</ion-badge>\n <ion-note color=\"medium\" style=\"float: left;\">{{message.date | date: 'dd/MM/yyyy h:mm'}} <ion-icon name=\"done-all\"></ion-icon></ion-note>\n </div>\n </ion-item>\n</ion-content>\n\n<ion-footer>\n <ion-toolbar>\n <ion-input type='text' [(ngModel)]=\"text\" placeholder=\"Votre message\"></ion-input>\n <ion-buttons slot=\"end\">\n <ion-button (click) = \"sendMessage()\">\n Envoyer\n </ion-button>\n </ion-buttons>\n </ion-toolbar>\n</ion-footer>\n"; /***/ }, @@ -175,7 +175,7 @@ /* harmony default export */ - __webpack_exports__["default"] = ".bg {\n width: 100%;\n height: 100%;\n position: fixed;\n background-color: lightgray;\n background-size: cover;\n}\n\nion-footer ion-toolbar {\n --background: #f4f4f4;\n}\n\nion-footer ion-button {\n font-weight: 600;\n}\n\nion-input {\n background: white !important;\n height: 31px;\n width: 95%;\n margin-left: 2.5%;\n margin-right: 2.5%;\n border-radius: 4px;\n border: 1px #dfdfdf solid;\n --padding-start: 8px;\n}\n\nion-item {\n --background: transparent;\n}\n\nion-badge {\n padding: 6px 9px;\n border-radius: 6px;\n font-weight: 400;\n font-size: 15px;\n box-shadow: 1px 1px 3px #00000029;\n}\n\nion-item ion-note {\n font-size: 10px;\n margin-left: 8px;\n}\n\nion-item ion-note ion-icon {\n font-size: 20px;\n margin-bottom: -6px;\n margin-left: -2px;\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29udmVyc2F0aW9uL2NvbnZlcnNhdGlvbi5wYWdlLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxXQUFBO0VBQ0EsWUFBQTtFQUNBLGVBQUE7RUFDQSwyQkFBQTtFQUNBLHNCQUFBO0FBQ0Y7O0FBQ0E7RUFDRSxxQkFBQTtBQUVGOztBQUFBO0VBQ0UsZ0JBQUE7QUFHRjs7QUFEQTtFQUNFLDRCQUFBO0VBQ0EsWUFBQTtFQUNBLFVBQUE7RUFDQSxpQkFBQTtFQUNBLGtCQUFBO0VBQ0Esa0JBQUE7RUFDQSx5QkFBQTtFQUNBLG9CQUFBO0FBSUY7O0FBREE7RUFDRSx5QkFBQTtBQUlGOztBQUZBO0VBQ0UsZ0JBQUE7RUFDQSxrQkFBQTtFQUNBLGdCQUFBO0VBQ0EsZUFBQTtFQUNBLGlDQUFBO0FBS0Y7O0FBSEE7RUFDRSxlQUFBO0VBQ0EsZ0JBQUE7QUFNRjs7QUFKQTtFQUNFLGVBQUE7RUFDQSxtQkFBQTtFQUNBLGlCQUFBO0FBT0YiLCJmaWxlIjoic3JjL2FwcC9jb252ZXJzYXRpb24vY29udmVyc2F0aW9uLnBhZ2Uuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5iZyB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRncmF5O1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xufVxuaW9uLWZvb3RlciBpb24tdG9vbGJhciB7XG4gIC0tYmFja2dyb3VuZDogI2Y0ZjRmNDtcbn1cbmlvbi1mb290ZXIgaW9uLWJ1dHRvbiB7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5pb24taW5wdXQge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZSAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDMxcHg7XG4gIHdpZHRoOiA5NSU7XG4gIG1hcmdpbi1sZWZ0OiAyLjUlO1xuICBtYXJnaW4tcmlnaHQ6IDIuNSU7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYm9yZGVyOiAxcHggI2RmZGZkZiBzb2xpZDtcbiAgLS1wYWRkaW5nLXN0YXJ0OiA4cHg7XG59XG5cbmlvbi1pdGVtIHtcbiAgLS1iYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbn1cbmlvbi1iYWRnZSB7XG4gIHBhZGRpbmc6IDZweCA5cHg7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgZm9udC1zaXplOiAxNXB4O1xuICBib3gtc2hhZG93OiAxcHggMXB4IDNweCAjMDAwMDAwMjk7XG59XG5pb24taXRlbSBpb24tbm90ZSB7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgbWFyZ2luLWxlZnQ6IDhweDtcbn1cbmlvbi1pdGVtIGlvbi1ub3RlIGlvbi1pY29ue1xuICBmb250LXNpemU6IDIwcHg7XG4gIG1hcmdpbi1ib3R0b206IC02cHg7XG4gIG1hcmdpbi1sZWZ0OiAtMnB4O1xufVxuIl19 */"; + __webpack_exports__["default"] = ".bg {\n width: 100%;\n height: 100%;\n position: fixed;\n background-color: lightgray;\n background-size: cover;\n}\n\nion-footer ion-toolbar {\n --background: #f4f4f4;\n}\n\nion-footer ion-button {\n font-weight: 600;\n}\n\nion-avatar > ion-icon {\n width: 100% !important;\n height: 100% !important;\n max-width: 80px !important;\n max-height: 80px !important;\n}\n\nion-input {\n background: white !important;\n height: 31px;\n width: 95%;\n margin-left: 2.5%;\n margin-right: 2.5%;\n border-radius: 4px;\n border: 1px #dfdfdf solid;\n --padding-start: 8px;\n}\n\nion-item {\n --background: transparent;\n}\n\nion-badge {\n padding: 6px 9px;\n border-radius: 6px;\n font-weight: 400;\n font-size: 15px;\n box-shadow: 1px 1px 3px #00000029;\n}\n\nion-item ion-note {\n font-size: 10px;\n margin-left: 8px;\n}\n\nion-item ion-note ion-icon {\n font-size: 20px;\n margin-bottom: -6px;\n margin-left: -2px;\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29udmVyc2F0aW9uL2NvbnZlcnNhdGlvbi5wYWdlLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxXQUFBO0VBQ0EsWUFBQTtFQUNBLGVBQUE7RUFDQSwyQkFBQTtFQUNBLHNCQUFBO0FBQ0Y7O0FBQ0E7RUFDRSxxQkFBQTtBQUVGOztBQUFBO0VBQ0UsZ0JBQUE7QUFHRjs7QUFEQTtFQUNFLHNCQUFBO0VBQ0EsdUJBQUE7RUFDQSwwQkFBQTtFQUNBLDJCQUFBO0FBSUY7O0FBREE7RUFDRSw0QkFBQTtFQUNBLFlBQUE7RUFDQSxVQUFBO0VBQ0EsaUJBQUE7RUFDQSxrQkFBQTtFQUNBLGtCQUFBO0VBQ0EseUJBQUE7RUFDQSxvQkFBQTtBQUlGOztBQURBO0VBQ0UseUJBQUE7QUFJRjs7QUFGQTtFQUNFLGdCQUFBO0VBQ0Esa0JBQUE7RUFDQSxnQkFBQTtFQUNBLGVBQUE7RUFDQSxpQ0FBQTtBQUtGOztBQUhBO0VBQ0UsZUFBQTtFQUNBLGdCQUFBO0FBTUY7O0FBSkE7RUFDRSxlQUFBO0VBQ0EsbUJBQUE7RUFDQSxpQkFBQTtBQU9GIiwiZmlsZSI6InNyYy9hcHAvY29udmVyc2F0aW9uL2NvbnZlcnNhdGlvbi5wYWdlLnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuYmcge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0Z3JheTtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3Zlcjtcbn1cbmlvbi1mb290ZXIgaW9uLXRvb2xiYXIge1xuICAtLWJhY2tncm91bmQ6ICNmNGY0ZjQ7XG59XG5pb24tZm9vdGVyIGlvbi1idXR0b24ge1xuICBmb250LXdlaWdodDogNjAwO1xufVxuaW9uLWF2YXRhciA+IGlvbi1pY29uICB7ICAgICBcbiAgd2lkdGg6MTAwJSAhaW1wb3J0YW50OyAgXG4gIGhlaWdodCA6IDEwMCUgIWltcG9ydGFudDsgIFxuICBtYXgtd2lkdGg6IDgwcHggIWltcG9ydGFudDsgIC8vYW55IHNpemVcbiAgbWF4LWhlaWdodDogODBweCAhaW1wb3J0YW50OyAvL2FueSBzaXplIFxuICB9XG5cbmlvbi1pbnB1dCB7XG4gIGJhY2tncm91bmQ6IHdoaXRlICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogMzFweDtcbiAgd2lkdGg6IDk1JTtcbiAgbWFyZ2luLWxlZnQ6IDIuNSU7XG4gIG1hcmdpbi1yaWdodDogMi41JTtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBib3JkZXI6IDFweCAjZGZkZmRmIHNvbGlkO1xuICAtLXBhZGRpbmctc3RhcnQ6IDhweDtcbn1cblxuaW9uLWl0ZW0ge1xuICAtLWJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xufVxuaW9uLWJhZGdlIHtcbiAgcGFkZGluZzogNnB4IDlweDtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBmb250LXNpemU6IDE1cHg7XG4gIGJveC1zaGFkb3c6IDFweCAxcHggM3B4ICMwMDAwMDAyOTtcbn1cbmlvbi1pdGVtIGlvbi1ub3RlIHtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBtYXJnaW4tbGVmdDogOHB4O1xufVxuaW9uLWl0ZW0gaW9uLW5vdGUgaW9uLWljb257XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgbWFyZ2luLWJvdHRvbTogLTZweDtcbiAgbWFyZ2luLWxlZnQ6IC0ycHg7XG59XG4iXX0= */"; /***/ }, @@ -210,24 +210,85 @@ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( /*! @angular/core */ "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js"); + /* harmony import */ + + + var _angular_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( + /*! @angular/router */ + "./node_modules/@angular/router/__ivy_ngcc__/fesm2015/router.js"); + /* harmony import */ + + + var _services_conversation_conversation_service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( + /*! ../services/conversation/conversation.service */ + "./src/app/services/conversation/conversation.service.ts"); var ConversationPage = /*#__PURE__*/function () { - function ConversationPage() { + function ConversationPage(activatedRoute, conversationService) { _classCallCheck(this, ConversationPage); + + this.activatedRoute = activatedRoute; + this.conversationService = conversationService; } _createClass(ConversationPage, [{ key: "ngOnInit", - value: function ngOnInit() {} + value: function ngOnInit() { + this.id = this.activatedRoute.snapshot.paramMap.get('id'); + this.getMessages(); + this.idUser = JSON.parse(localStorage.getItem('user')).id; + } + }, { + key: "updateScroll", + value: function updateScroll() { + console.log(this.content.scrollToBottom); + this.content.scrollToBottom(200); + } + }, { + key: "getMessages", + value: function getMessages() { + var _this = this; + + this.conversationService.messages(this.id).subscribe(function (data) { + _this.messages = data.reverse(); + setTimeout(function () { + _this.updateScroll(); + }, 200); + }); + } + }, { + key: "sendMessage", + value: function sendMessage() { + var _this2 = this; + + this.conversationService.sendMessage(this.text, this.id).subscribe(function (data) { + console.log(data); + _this2.text = ""; + + _this2.getMessages(); + }); + } }]); return ConversationPage; }(); ConversationPage.ctorParameters = function () { - return []; + return [{ + type: _angular_router__WEBPACK_IMPORTED_MODULE_2__["ActivatedRoute"] + }, { + type: _services_conversation_conversation_service__WEBPACK_IMPORTED_MODULE_3__["ConversationService"] + }]; }; + ConversationPage.propDecorators = { + content: [{ + type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ViewChild"], + args: ["scrollElement", { + "static": true + }] + }] + }; ConversationPage = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({ selector: 'app-conversation', template: Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"])(__webpack_require__( @@ -238,6 +299,114 @@ "./src/app/conversation/conversation.page.scss"))["default"]] })], ConversationPage); /***/ + }, + + /***/ + "./src/app/services/conversation/conversation.service.ts": + /*!***************************************************************!*\ + !*** ./src/app/services/conversation/conversation.service.ts ***! + \***************************************************************/ + + /*! exports provided: ConversationService */ + + /***/ + function srcAppServicesConversationConversationServiceTs(module, __webpack_exports__, __webpack_require__) { + "use strict"; + + __webpack_require__.r(__webpack_exports__); + /* harmony export (binding) */ + + + __webpack_require__.d(__webpack_exports__, "ConversationService", function () { + return ConversationService; + }); + /* harmony import */ + + + var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( + /*! tslib */ + "./node_modules/tslib/tslib.es6.js"); + /* harmony import */ + + + var _angular_common_http__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( + /*! @angular/common/http */ + "./node_modules/@angular/common/__ivy_ngcc__/fesm2015/http.js"); + /* harmony import */ + + + var _angular_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( + /*! @angular/core */ + "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js"); + /* harmony import */ + + + var rxjs_operators__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( + /*! rxjs/operators */ + "./node_modules/rxjs/_esm2015/operators/index.js"); + /* harmony import */ + + + var _global_service__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( + /*! ../../global.service */ + "./src/app/global.service.ts"); + /* harmony import */ + + + var rxjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( + /*! rxjs */ + "./node_modules/rxjs/_esm2015/index.js"); + + var ConversationService = /*#__PURE__*/function () { + function ConversationService(http, global) { + _classCallCheck(this, ConversationService); + + this.http = http; + this.global = global; + this.urlRooms = this.global.apiRoot + '/rooms/'; + } + + _createClass(ConversationService, [{ + key: "messages", + value: function messages(id) { + return this.http.get("".concat(this.urlRooms) + id + '/messages', this.global.getHeaderHttpPostConnected()).pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["map"])(function (results) { + console.log('get : ' + results); + return results; + }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["catchError"])(function (err) { + return Object(rxjs__WEBPACK_IMPORTED_MODULE_5__["of"])(err); + })); + } + }, { + key: "sendMessage", + value: function sendMessage(text, idRoom) { + var body = { + body: text, + roomId: idRoom + }; + return this.http.post(this.global.apiRoot + '/messages', body, this.global.getHeaderHttpPostConnected()).pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["map"])(function (results) { + console.log('send : ' + results); + return results; + }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["catchError"])(function (err) { + return Object(rxjs__WEBPACK_IMPORTED_MODULE_5__["of"])(err); + })); + } + }]); + + return ConversationService; + }(); + + ConversationService.ctorParameters = function () { + return [{ + type: _angular_common_http__WEBPACK_IMPORTED_MODULE_1__["HttpClient"] + }, { + type: _global_service__WEBPACK_IMPORTED_MODULE_4__["GlobalService"] + }]; + }; + + ConversationService = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([Object(_angular_core__WEBPACK_IMPORTED_MODULE_2__["Injectable"])({ + providedIn: 'root' + })], ConversationService); + /***/ } }]); })(); diff --git a/ionic/www/conversation-conversation-module-es5.js.map b/ionic/www/conversation-conversation-module-es5.js.map index cf52f7d8a0d90af43ed9e5cb09f80e0e8da15793..af89fe403923a9893efc4501eb5e80b069a47d66 100644 --- a/ionic/www/conversation-conversation-module-es5.js.map +++ b/ionic/www/conversation-conversation-module-es5.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///src/app/conversation/conversation.page.html","webpack:///src/app/conversation/conversation-routing.module.ts","webpack:///src/app/conversation/conversation.module.ts","webpack:///src/app/conversation/conversation.page.scss","webpack:///src/app/conversation/conversation.page.ts"],"names":["routes","path","component","ConversationPageRoutingModule","imports","forChild","exports","ConversationPageModule","declarations","ConversationPage","selector","template"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAe;;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACKf,UAAMA,MAAM,GAAW,CACrB;AACEC,YAAI,EAAE,EADR;AAEEC,iBAAS,EAAE;AAFb,OADqB,CAAvB;;UAWaC,6BAA6B;AAAA;AAAA,O;;AAA7BA,mCAA6B,6DAJzC,+DAAS;AACRC,eAAO,EAAE,CAAC,6DAAaC,QAAb,CAAsBL,MAAtB,CAAD,CADD;AAERM,eAAO,EAAE,CAAC,4DAAD;AAFD,OAAT,CAIyC,GAA7BH,6BAA6B,CAA7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UCGAI,sBAAsB;AAAA;AAAA,O;;AAAtBA,4BAAsB,6DATlC,+DAAS;AACRH,eAAO,EAAE,CACP,4DADO,EAEP,0DAFO,EAGP,0DAHO,EAIP,0FAJO,CADD;AAORI,oBAAY,EAAE,CAAC,mEAAD;AAPN,OAAT,CASkC,GAAtBD,sBAAsB,CAAtB;;;;;;;;;;;;;;;;ACnBb;AAAe;;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UCOFE,gBAAgB;AAE3B,oCAAc;AAAA;AAAG;;AAFU;AAAA;AAAA,qCAIhB,CACV;AAL0B;;AAAA;AAAA,S;;;;;;AAAhBA,sBAAgB,6DAL5B,gEAAU;AACTC,gBAAQ,EAAE,kBADD;AAETC,gBAAQ,EAAR;AAAA;AAAA,0GAFS;;;;AAAA,OAAV,CAK4B,GAAhBF,gBAAgB,CAAhB","file":"conversation-conversation-module-es5.js","sourcesContent":["export default \"<ion-header>\\n <ion-toolbar>\\n <ion-buttons slot=\\\"start\\\">\\n <ion-back-button text=\\\"Retour\\\"></ion-back-button>\\n </ion-buttons>\\n <ion-title>Luke Skywalker</ion-title>\\n <ion-avatar slot=\\\"end\\\">\\n <img src=\\\"../../assets/icon/favicon.png\\\">\\n </ion-avatar>\\n </ion-toolbar>\\n</ion-header>\\n\\n<ion-content>\\n <div class=\\\"bg\\\"></div>\\n <ion-item lines=\\\"none\\\">\\n <ion-badge color=\\\"warning\\\" slot=\\\"end\\\">Hey Luke comment ça va ?! <ion-note color=\\\"medium\\\">21:16 <ion-icon name=\\\"done-all\\\"></ion-icon></ion-note></ion-badge>\\n </ion-item>\\n\\n <ion-item lines=\\\"none\\\">\\n <ion-badge color=\\\"light\\\" slot=\\\"start\\\">Plutôt bien merci <ion-note color=\\\"medium\\\">21:17</ion-note></ion-badge>\\n </ion-item>\\n</ion-content>\\n\\n<ion-footer>\\n <ion-toolbar>\\n <ion-input placeholder=\\\"Votre message\\\"></ion-input>\\n <ion-buttons slot=\\\"end\\\">\\n <ion-button >\\n Envoyer\\n </ion-button>\\n </ion-buttons>\\n </ion-toolbar>\\n</ion-footer>\\n\";","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\n\nimport { ConversationPage } from './conversation.page';\n\nconst routes: Routes = [\n {\n path: '',\n component: ConversationPage\n }\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class ConversationPageRoutingModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { IonicModule } from '@ionic/angular';\n\nimport { ConversationPageRoutingModule } from './conversation-routing.module';\n\nimport { ConversationPage } from './conversation.page';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n IonicModule,\n ConversationPageRoutingModule\n ],\n declarations: [ConversationPage]\n})\nexport class ConversationPageModule {}\n","export default \".bg {\\n width: 100%;\\n height: 100%;\\n position: fixed;\\n background-color: lightgray;\\n background-size: cover;\\n}\\n\\nion-footer ion-toolbar {\\n --background: #f4f4f4;\\n}\\n\\nion-footer ion-button {\\n font-weight: 600;\\n}\\n\\nion-input {\\n background: white !important;\\n height: 31px;\\n width: 95%;\\n margin-left: 2.5%;\\n margin-right: 2.5%;\\n border-radius: 4px;\\n border: 1px #dfdfdf solid;\\n --padding-start: 8px;\\n}\\n\\nion-item {\\n --background: transparent;\\n}\\n\\nion-badge {\\n padding: 6px 9px;\\n border-radius: 6px;\\n font-weight: 400;\\n font-size: 15px;\\n box-shadow: 1px 1px 3px #00000029;\\n}\\n\\nion-item ion-note {\\n font-size: 10px;\\n margin-left: 8px;\\n}\\n\\nion-item ion-note ion-icon {\\n font-size: 20px;\\n margin-bottom: -6px;\\n margin-left: -2px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29udmVyc2F0aW9uL2NvbnZlcnNhdGlvbi5wYWdlLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxXQUFBO0VBQ0EsWUFBQTtFQUNBLGVBQUE7RUFDQSwyQkFBQTtFQUNBLHNCQUFBO0FBQ0Y7O0FBQ0E7RUFDRSxxQkFBQTtBQUVGOztBQUFBO0VBQ0UsZ0JBQUE7QUFHRjs7QUFEQTtFQUNFLDRCQUFBO0VBQ0EsWUFBQTtFQUNBLFVBQUE7RUFDQSxpQkFBQTtFQUNBLGtCQUFBO0VBQ0Esa0JBQUE7RUFDQSx5QkFBQTtFQUNBLG9CQUFBO0FBSUY7O0FBREE7RUFDRSx5QkFBQTtBQUlGOztBQUZBO0VBQ0UsZ0JBQUE7RUFDQSxrQkFBQTtFQUNBLGdCQUFBO0VBQ0EsZUFBQTtFQUNBLGlDQUFBO0FBS0Y7O0FBSEE7RUFDRSxlQUFBO0VBQ0EsZ0JBQUE7QUFNRjs7QUFKQTtFQUNFLGVBQUE7RUFDQSxtQkFBQTtFQUNBLGlCQUFBO0FBT0YiLCJmaWxlIjoic3JjL2FwcC9jb252ZXJzYXRpb24vY29udmVyc2F0aW9uLnBhZ2Uuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5iZyB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRncmF5O1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xufVxuaW9uLWZvb3RlciBpb24tdG9vbGJhciB7XG4gIC0tYmFja2dyb3VuZDogI2Y0ZjRmNDtcbn1cbmlvbi1mb290ZXIgaW9uLWJ1dHRvbiB7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5pb24taW5wdXQge1xuICBiYWNrZ3JvdW5kOiB3aGl0ZSAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IDMxcHg7XG4gIHdpZHRoOiA5NSU7XG4gIG1hcmdpbi1sZWZ0OiAyLjUlO1xuICBtYXJnaW4tcmlnaHQ6IDIuNSU7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYm9yZGVyOiAxcHggI2RmZGZkZiBzb2xpZDtcbiAgLS1wYWRkaW5nLXN0YXJ0OiA4cHg7XG59XG5cbmlvbi1pdGVtIHtcbiAgLS1iYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbn1cbmlvbi1iYWRnZSB7XG4gIHBhZGRpbmc6IDZweCA5cHg7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgZm9udC1zaXplOiAxNXB4O1xuICBib3gtc2hhZG93OiAxcHggMXB4IDNweCAjMDAwMDAwMjk7XG59XG5pb24taXRlbSBpb24tbm90ZSB7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgbWFyZ2luLWxlZnQ6IDhweDtcbn1cbmlvbi1pdGVtIGlvbi1ub3RlIGlvbi1pY29ue1xuICBmb250LXNpemU6IDIwcHg7XG4gIG1hcmdpbi1ib3R0b206IC02cHg7XG4gIG1hcmdpbi1sZWZ0OiAtMnB4O1xufVxuIl19 */\";","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-conversation',\n templateUrl: './conversation.page.html',\n styleUrls: ['./conversation.page.scss'],\n})\nexport class ConversationPage implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n"]} \ No newline at end of file +{"version":3,"sources":["webpack:///src/app/conversation/conversation.page.html","webpack:///src/app/conversation/conversation-routing.module.ts","webpack:///src/app/conversation/conversation.module.ts","webpack:///src/app/conversation/conversation.page.scss","webpack:///src/app/conversation/conversation.page.ts","webpack:///src/app/services/conversation/conversation.service.ts"],"names":["routes","path","component","ConversationPageRoutingModule","imports","forChild","exports","ConversationPageModule","declarations","ConversationPage","activatedRoute","conversationService","id","snapshot","paramMap","get","getMessages","idUser","JSON","parse","localStorage","getItem","console","log","content","scrollToBottom","messages","subscribe","data","reverse","setTimeout","updateScroll","sendMessage","text","selector","template","ConversationService","http","global","urlRooms","apiRoot","getHeaderHttpPostConnected","pipe","results","err","idRoom","body","roomId","post","providedIn"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAe;;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACKf,UAAMA,MAAM,GAAW,CACrB;AACEC,YAAI,EAAE,EADR;AAEEC,iBAAS,EAAE;AAFb,OADqB,CAAvB;;UAWaC,6BAA6B;AAAA;AAAA,O;;AAA7BA,mCAA6B,6DAJzC,+DAAS;AACRC,eAAO,EAAE,CAAC,6DAAaC,QAAb,CAAsBL,MAAtB,CAAD,CADD;AAERM,eAAO,EAAE,CAAC,4DAAD;AAFD,OAAT,CAIyC,GAA7BH,6BAA6B,CAA7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UCGAI,sBAAsB;AAAA;AAAA,O;;AAAtBA,4BAAsB,6DATlC,+DAAS;AACRH,eAAO,EAAE,CACP,4DADO,EAEP,0DAFO,EAGP,0DAHO,EAIP,0FAJO,CADD;AAORI,oBAAY,EAAE,CAAC,mEAAD;AAPN,OAAT,CASkC,GAAtBD,sBAAsB,CAAtB;;;;;;;;;;;;;;;;ACnBb;AAAe;;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UCYFE,gBAAgB;AAQ3B,kCAAoBC,cAApB,EAA4DC,mBAA5D,EAAsG;AAAA;;AAAlF,eAAAD,cAAA,GAAAA,cAAA;AAAwC,eAAAC,mBAAA,GAAAA,mBAAA;AAA6C;;AAR9E;AAAA;AAAA,qCAUhB;AACT,iBAAKC,EAAL,GAAU,KAAKF,cAAL,CAAoBG,QAApB,CAA6BC,QAA7B,CAAsCC,GAAtC,CAA0C,IAA1C,CAAV;AACA,iBAAKC,WAAL;AACA,iBAAKC,MAAL,GAAcC,IAAI,CAACC,KAAL,CAAWC,YAAY,CAACC,OAAb,CAAqB,MAArB,CAAX,EAAyCT,EAAvD;AACD;AAd0B;AAAA;AAAA,yCAgBZ;AACbU,mBAAO,CAACC,GAAR,CAAY,KAAKC,OAAL,CAAaC,cAAzB;AACA,iBAAKD,OAAL,CAAaC,cAAb,CAA4B,GAA5B;AACD;AAnB0B;AAAA;AAAA,wCAqBhB;AAAA;;AACT,iBAAKd,mBAAL,CAAyBe,QAAzB,CAAkC,KAAKd,EAAvC,EAA2Ce,SAA3C,CAAqD,UAAAC,IAAI,EAAI;AAC3D,mBAAI,CAACF,QAAL,GAAgBE,IAAI,CAACC,OAAL,EAAhB;AACAC,wBAAU,CAAC,YAAI;AAAC,qBAAI,CAACC,YAAL;AAAqB,eAA3B,EAA4B,GAA5B,CAAV;AACD,aAHD;AAID;AA1B0B;AAAA;AAAA,wCA4BhB;AAAA;;AACT,iBAAKpB,mBAAL,CAAyBqB,WAAzB,CAAqC,KAAKC,IAA1C,EAAiD,KAAKrB,EAAtD,EAA0De,SAA1D,CAAoE,UAAAC,IAAI,EAAI;AAC1EN,qBAAO,CAACC,GAAR,CAAYK,IAAZ;AACA,oBAAI,CAACK,IAAL,GAAY,EAAZ;;AACA,oBAAI,CAACjB,WAAL;AACD,aAJD;AAKD;AAlC0B;;AAAA;AAAA,S;;;;gBAXpB;;gBAEA;;;;;;gBAUN,uD;AAAS,iBAAC,eAAD,EAAkB;AAAC,sBAAQ;AAAT,WAAlB;;;AADCP,sBAAgB,6DAL5B,gEAAU;AACTyB,gBAAQ,EAAE,kBADD;AAETC,gBAAQ,EAAR;AAAA;AAAA,0GAFS;;;;AAAA,OAAV,CAK4B,GAAhB1B,gBAAgB,CAAhB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UCCA2B,mBAAmB;AAI9B,qCAAoBC,IAApB,EAA8CC,MAA9C,EAAqE;AAAA;;AAAjD,eAAAD,IAAA,GAAAA,IAAA;AAA0B,eAAAC,MAAA,GAAAA,MAAA;AAC5C,eAAKC,QAAL,GAAgB,KAAKD,MAAL,CAAYE,OAAZ,GAAsB,SAAtC;AACD;;AAN6B;AAAA;AAAA,mCAQrB5B,EARqB,EAQnB;AACT,mBAAO,KAAKyB,IAAL,CAAUtB,GAAV,CAAc,UAAG,KAAKwB,QAAR,IAAqB3B,EAArB,GAA0B,WAAxC,EAAqD,KAAK0B,MAAL,CAAYG,0BAAZ,EAArD,EAA+FC,IAA/F,CACL,2DAAI,UAAAC,OAAO,EAAI;AACbrB,qBAAO,CAACC,GAAR,CAAY,WAAWoB,OAAvB;AACA,qBAAOA,OAAP;AACD,aAHD,CADK,EAKL,kEAAW,UAAAC,GAAG;AAAA,qBAAI,gDAAGA,GAAH,CAAJ;AAAA,aAAd,CALK,CAAP;AAOD;AAhB6B;AAAA;AAAA,sCAkBlBX,IAlBkB,EAkBZY,MAlBY,EAkBN;AACtB,gBAAMC,IAAI,GAAG;AACXA,kBAAI,EAAEb,IADK;AAEXc,oBAAM,EAAEF;AAFG,aAAb;AAKA,mBAAO,KAAKR,IAAL,CAAUW,IAAV,CAAe,KAAKV,MAAL,CAAYE,OAAZ,GAAsB,WAArC,EAAkDM,IAAlD,EAAyD,KAAKR,MAAL,CAAYG,0BAAZ,EAAzD,EAAmGC,IAAnG,CACH,2DAAI,UAAAC,OAAO,EAAI;AACbrB,qBAAO,CAACC,GAAR,CAAY,YAAYoB,OAAxB;AACA,qBAAOA,OAAP;AACD,aAHD,CADG,EAKH,kEAAW,UAAAC,GAAG;AAAA,qBAAI,gDAAGA,GAAH,CAAJ;AAAA,aAAd,CALG,CAAP;AAOD;AA/B6B;;AAAA;AAAA,S;;;;gBAbvB;;gBAIA;;;;AASIR,yBAAmB,6DAH/B,iEAAW;AACVa,kBAAU,EAAE;AADF,OAAX,CAG+B,GAAnBb,mBAAmB,CAAnB","file":"conversation-conversation-module-es5.js","sourcesContent":["export default \"<ion-header>\\n <ion-toolbar>\\n <ion-buttons slot=\\\"start\\\">\\n <ion-back-button text=\\\"Retour\\\" defaultHref=\\\"/tabs/tab3\\\"></ion-back-button>\\n </ion-buttons>\\n <ion-title>Messages</ion-title>\\n <ion-avatar slot=\\\"end\\\" routerLink=\\\"/gestion-groupe/{{ id }}\\\">\\n <ion-icon name=\\\"cog\\\"></ion-icon>\\n </ion-avatar>\\n </ion-toolbar>\\n</ion-header>\\n\\n<ion-content #scrollElement padding>\\n <div class=\\\"bg\\\"></div>\\n\\n <ion-item *ngFor=\\\"let message of messages\\\" lines=\\\"none\\\" style=\\\"padding-bottom: 5px;\\\">\\n <div slot=\\\"end\\\" *ngIf=\\\"message.author._id == idUser\\\">\\n <ion-badge color=\\\"warning\\\" style=\\\"display:block; white-space:normal;text-align: left;\\\">{{message.body}}</ion-badge>\\n <ion-note color=\\\"medium\\\" style=\\\"float: right;\\\">{{message.date | date: 'dd/MM/yyyy h:mm'}} <ion-icon name=\\\"done-all\\\"></ion-icon></ion-note>\\n </div>\\n <div slot=\\\"start\\\" *ngIf=\\\"message.author._id != idUser\\\">\\n <ion-note color=\\\"medium\\\" style=\\\"display:block; padding-bottom: 2px;\\\">{{message.author.username}}</ion-note>\\n <ion-badge color=\\\"light\\\" style=\\\"display:block; white-space:normal;text-align: left;\\\">{{message.body}}</ion-badge>\\n <ion-note color=\\\"medium\\\" style=\\\"float: left;\\\">{{message.date | date: 'dd/MM/yyyy h:mm'}} <ion-icon name=\\\"done-all\\\"></ion-icon></ion-note>\\n </div>\\n </ion-item>\\n</ion-content>\\n\\n<ion-footer>\\n <ion-toolbar>\\n <ion-input type='text' [(ngModel)]=\\\"text\\\" placeholder=\\\"Votre message\\\"></ion-input>\\n <ion-buttons slot=\\\"end\\\">\\n <ion-button (click) = \\\"sendMessage()\\\">\\n Envoyer\\n </ion-button>\\n </ion-buttons>\\n </ion-toolbar>\\n</ion-footer>\\n\";","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\n\nimport { ConversationPage } from './conversation.page';\n\nconst routes: Routes = [\n {\n path: '',\n component: ConversationPage\n }\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class ConversationPageRoutingModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { IonicModule } from '@ionic/angular';\n\nimport { ConversationPageRoutingModule } from './conversation-routing.module';\n\nimport { ConversationPage } from './conversation.page';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n IonicModule,\n ConversationPageRoutingModule\n ],\n declarations: [ConversationPage]\n})\nexport class ConversationPageModule {}\n","export default \".bg {\\n width: 100%;\\n height: 100%;\\n position: fixed;\\n background-color: lightgray;\\n background-size: cover;\\n}\\n\\nion-footer ion-toolbar {\\n --background: #f4f4f4;\\n}\\n\\nion-footer ion-button {\\n font-weight: 600;\\n}\\n\\nion-avatar > ion-icon {\\n width: 100% !important;\\n height: 100% !important;\\n max-width: 80px !important;\\n max-height: 80px !important;\\n}\\n\\nion-input {\\n background: white !important;\\n height: 31px;\\n width: 95%;\\n margin-left: 2.5%;\\n margin-right: 2.5%;\\n border-radius: 4px;\\n border: 1px #dfdfdf solid;\\n --padding-start: 8px;\\n}\\n\\nion-item {\\n --background: transparent;\\n}\\n\\nion-badge {\\n padding: 6px 9px;\\n border-radius: 6px;\\n font-weight: 400;\\n font-size: 15px;\\n box-shadow: 1px 1px 3px #00000029;\\n}\\n\\nion-item ion-note {\\n font-size: 10px;\\n margin-left: 8px;\\n}\\n\\nion-item ion-note ion-icon {\\n font-size: 20px;\\n margin-bottom: -6px;\\n margin-left: -2px;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29udmVyc2F0aW9uL2NvbnZlcnNhdGlvbi5wYWdlLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxXQUFBO0VBQ0EsWUFBQTtFQUNBLGVBQUE7RUFDQSwyQkFBQTtFQUNBLHNCQUFBO0FBQ0Y7O0FBQ0E7RUFDRSxxQkFBQTtBQUVGOztBQUFBO0VBQ0UsZ0JBQUE7QUFHRjs7QUFEQTtFQUNFLHNCQUFBO0VBQ0EsdUJBQUE7RUFDQSwwQkFBQTtFQUNBLDJCQUFBO0FBSUY7O0FBREE7RUFDRSw0QkFBQTtFQUNBLFlBQUE7RUFDQSxVQUFBO0VBQ0EsaUJBQUE7RUFDQSxrQkFBQTtFQUNBLGtCQUFBO0VBQ0EseUJBQUE7RUFDQSxvQkFBQTtBQUlGOztBQURBO0VBQ0UseUJBQUE7QUFJRjs7QUFGQTtFQUNFLGdCQUFBO0VBQ0Esa0JBQUE7RUFDQSxnQkFBQTtFQUNBLGVBQUE7RUFDQSxpQ0FBQTtBQUtGOztBQUhBO0VBQ0UsZUFBQTtFQUNBLGdCQUFBO0FBTUY7O0FBSkE7RUFDRSxlQUFBO0VBQ0EsbUJBQUE7RUFDQSxpQkFBQTtBQU9GIiwiZmlsZSI6InNyYy9hcHAvY29udmVyc2F0aW9uL2NvbnZlcnNhdGlvbi5wYWdlLnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuYmcge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0Z3JheTtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3Zlcjtcbn1cbmlvbi1mb290ZXIgaW9uLXRvb2xiYXIge1xuICAtLWJhY2tncm91bmQ6ICNmNGY0ZjQ7XG59XG5pb24tZm9vdGVyIGlvbi1idXR0b24ge1xuICBmb250LXdlaWdodDogNjAwO1xufVxuaW9uLWF2YXRhciA+IGlvbi1pY29uICB7ICAgICBcbiAgd2lkdGg6MTAwJSAhaW1wb3J0YW50OyAgXG4gIGhlaWdodCA6IDEwMCUgIWltcG9ydGFudDsgIFxuICBtYXgtd2lkdGg6IDgwcHggIWltcG9ydGFudDsgIC8vYW55IHNpemVcbiAgbWF4LWhlaWdodDogODBweCAhaW1wb3J0YW50OyAvL2FueSBzaXplIFxuICB9XG5cbmlvbi1pbnB1dCB7XG4gIGJhY2tncm91bmQ6IHdoaXRlICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogMzFweDtcbiAgd2lkdGg6IDk1JTtcbiAgbWFyZ2luLWxlZnQ6IDIuNSU7XG4gIG1hcmdpbi1yaWdodDogMi41JTtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBib3JkZXI6IDFweCAjZGZkZmRmIHNvbGlkO1xuICAtLXBhZGRpbmctc3RhcnQ6IDhweDtcbn1cblxuaW9uLWl0ZW0ge1xuICAtLWJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xufVxuaW9uLWJhZGdlIHtcbiAgcGFkZGluZzogNnB4IDlweDtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBmb250LXNpemU6IDE1cHg7XG4gIGJveC1zaGFkb3c6IDFweCAxcHggM3B4ICMwMDAwMDAyOTtcbn1cbmlvbi1pdGVtIGlvbi1ub3RlIHtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBtYXJnaW4tbGVmdDogOHB4O1xufVxuaW9uLWl0ZW0gaW9uLW5vdGUgaW9uLWljb257XG4gIGZvbnQtc2l6ZTogMjBweDtcbiAgbWFyZ2luLWJvdHRvbTogLTZweDtcbiAgbWFyZ2luLWxlZnQ6IC0ycHg7XG59XG4iXX0= */\";","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { IonContent } from '@ionic/angular';\nimport { ConversationService } from '../services/conversation/conversation.service';\n\n\n\n@Component({\n selector: 'app-conversation',\n templateUrl: './conversation.page.html',\n styleUrls: ['./conversation.page.scss'],\n})\nexport class ConversationPage implements OnInit {\n @ViewChild(\"scrollElement\", {static: true}) content: IonContent;\n\n messages;\n id;\n text: string;\n idUser;\n\n constructor(private activatedRoute: ActivatedRoute, private conversationService: ConversationService) { }\n\n ngOnInit() {\n this.id = this.activatedRoute.snapshot.paramMap.get('id');\n this.getMessages();\n this.idUser = JSON.parse(localStorage.getItem('user')).id;\n }\n\n updateScroll() {\n console.log(this.content.scrollToBottom)\n this.content.scrollToBottom(200);\n }\n\n getMessages(){\n this.conversationService.messages(this.id).subscribe(data => {\n this.messages = data.reverse();\n setTimeout(()=>{this.updateScroll();},200); \n });\n }\n\n sendMessage(){\n this.conversationService.sendMessage(this.text , this.id).subscribe(data => {\n console.log(data);\n this.text = \"\";\n this.getMessages();\n });\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { GlobalService } from '../../global.service';\nimport { catchError } from 'rxjs/operators';\nimport { of } from 'rxjs';\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ConversationService {\n\n private urlRooms: string;\n\n constructor(private http: HttpClient, private global: GlobalService) {\n this.urlRooms = this.global.apiRoot + '/rooms/';\n }\n\n messages(id): Observable<any> {\n return this.http.get(`${this.urlRooms}` + id + '/messages', this.global.getHeaderHttpPostConnected()).pipe(\n map(results => {\n console.log('get : ' + results);\n return results;\n }),\n catchError(err => of(err))\n );\n }\n\n sendMessage(text, idRoom){\n const body = {\n body: text,\n roomId: idRoom,\n };\n\n return this.http.post(this.global.apiRoot + '/messages', body , this.global.getHeaderHttpPostConnected()).pipe(\n map(results => {\n console.log('send : ' + results);\n return results;\n }),\n catchError(err => of(err))\n );\n }\n}\n"]} \ No newline at end of file diff --git a/ionic/www/cordova-js-src/android/nativeapiprovider.js b/ionic/www/cordova-js-src/android/nativeapiprovider.js deleted file mode 100644 index 44f4aacf3ab1829a45f7bac375e3f64d399a2178..0000000000000000000000000000000000000000 --- a/ionic/www/cordova-js-src/android/nativeapiprovider.js +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. -*/ - -/** - * Exports the ExposedJsApi.java object if available, otherwise exports the PromptBasedNativeApi. - */ - -var nativeApi = this._cordovaNative || require('cordova/android/promptbasednativeapi'); -var currentApi = nativeApi; - -module.exports = { - get: function () { return currentApi; }, - setPreferPrompt: function (value) { - currentApi = value ? require('cordova/android/promptbasednativeapi') : nativeApi; - }, - // Used only by tests. - set: function (value) { - currentApi = value; - } -}; diff --git a/ionic/www/cordova-js-src/android/promptbasednativeapi.js b/ionic/www/cordova-js-src/android/promptbasednativeapi.js deleted file mode 100644 index 86fc1d9fe17b16ba8de1e6fbebd6015443631cce..0000000000000000000000000000000000000000 --- a/ionic/www/cordova-js-src/android/promptbasednativeapi.js +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. -*/ - -/** - * Implements the API of ExposedJsApi.java, but uses prompt() to communicate. - * This is used pre-JellyBean, where addJavascriptInterface() is disabled. - */ - -module.exports = { - exec: function (bridgeSecret, service, action, callbackId, argsJson) { - return prompt(argsJson, 'gap:' + JSON.stringify([bridgeSecret, service, action, callbackId])); - }, - setNativeToJsBridgeMode: function (bridgeSecret, value) { - prompt(value, 'gap_bridge_mode:' + bridgeSecret); - }, - retrieveJsMessages: function (bridgeSecret, fromOnlineEvent) { - return prompt(+fromOnlineEvent, 'gap_poll:' + bridgeSecret); - } -}; diff --git a/ionic/www/cordova-js-src/exec.js b/ionic/www/cordova-js-src/exec.js deleted file mode 100644 index c98212ee2074a2e1147790f1ccc5bebd348a89d7..0000000000000000000000000000000000000000 --- a/ionic/www/cordova-js-src/exec.js +++ /dev/null @@ -1,287 +0,0 @@ -/* - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - * -*/ - -/** - * Execute a cordova command. It is up to the native side whether this action - * is synchronous or asynchronous. The native side can return: - * Synchronous: PluginResult object as a JSON string - * Asynchronous: Empty string "" - * If async, the native side will cordova.callbackSuccess or cordova.callbackError, - * depending upon the result of the action. - * - * @param {Function} success The success callback - * @param {Function} fail The fail callback - * @param {String} service The name of the service to use - * @param {String} action Action to be run in cordova - * @param {String[]} [args] Zero or more arguments to pass to the method - */ -var cordova = require('cordova'); -var nativeApiProvider = require('cordova/android/nativeapiprovider'); -var utils = require('cordova/utils'); -var base64 = require('cordova/base64'); -var channel = require('cordova/channel'); -var jsToNativeModes = { - PROMPT: 0, - JS_OBJECT: 1 -}; -var nativeToJsModes = { - // Polls for messages using the JS->Native bridge. - POLLING: 0, - // For LOAD_URL to be viable, it would need to have a work-around for - // the bug where the soft-keyboard gets dismissed when a message is sent. - LOAD_URL: 1, - // For the ONLINE_EVENT to be viable, it would need to intercept all event - // listeners (both through addEventListener and window.ononline) as well - // as set the navigator property itself. - ONLINE_EVENT: 2, - EVAL_BRIDGE: 3 -}; -var jsToNativeBridgeMode; // Set lazily. -var nativeToJsBridgeMode = nativeToJsModes.EVAL_BRIDGE; -var pollEnabled = false; -var bridgeSecret = -1; - -var messagesFromNative = []; -var isProcessing = false; -var resolvedPromise = typeof Promise === 'undefined' ? null : Promise.resolve(); -var nextTick = resolvedPromise ? function (fn) { resolvedPromise.then(fn); } : function (fn) { setTimeout(fn); }; - -function androidExec (success, fail, service, action, args) { - if (bridgeSecret < 0) { - // If we ever catch this firing, we'll need to queue up exec()s - // and fire them once we get a secret. For now, I don't think - // it's possible for exec() to be called since plugins are parsed but - // not run until until after onNativeReady. - throw new Error('exec() called without bridgeSecret'); - } - // Set default bridge modes if they have not already been set. - // By default, we use the failsafe, since addJavascriptInterface breaks too often - if (jsToNativeBridgeMode === undefined) { - androidExec.setJsToNativeBridgeMode(jsToNativeModes.JS_OBJECT); - } - - // If args is not provided, default to an empty array - args = args || []; - - // Process any ArrayBuffers in the args into a string. - for (var i = 0; i < args.length; i++) { - if (utils.typeName(args[i]) === 'ArrayBuffer') { - args[i] = base64.fromArrayBuffer(args[i]); - } - } - - var callbackId = service + cordova.callbackId++; - var argsJson = JSON.stringify(args); - if (success || fail) { - cordova.callbacks[callbackId] = { success: success, fail: fail }; - } - - var msgs = nativeApiProvider.get().exec(bridgeSecret, service, action, callbackId, argsJson); - // If argsJson was received by Java as null, try again with the PROMPT bridge mode. - // This happens in rare circumstances, such as when certain Unicode characters are passed over the bridge on a Galaxy S2. See CB-2666. - if (jsToNativeBridgeMode === jsToNativeModes.JS_OBJECT && msgs === '@Null arguments.') { - androidExec.setJsToNativeBridgeMode(jsToNativeModes.PROMPT); - androidExec(success, fail, service, action, args); - androidExec.setJsToNativeBridgeMode(jsToNativeModes.JS_OBJECT); - } else if (msgs) { - messagesFromNative.push(msgs); - // Always process async to avoid exceptions messing up stack. - nextTick(processMessages); - } -} - -androidExec.init = function () { - bridgeSecret = +prompt('', 'gap_init:' + nativeToJsBridgeMode); - channel.onNativeReady.fire(); -}; - -function pollOnceFromOnlineEvent () { - pollOnce(true); -} - -function pollOnce (opt_fromOnlineEvent) { - if (bridgeSecret < 0) { - // This can happen when the NativeToJsMessageQueue resets the online state on page transitions. - // We know there's nothing to retrieve, so no need to poll. - return; - } - var msgs = nativeApiProvider.get().retrieveJsMessages(bridgeSecret, !!opt_fromOnlineEvent); - if (msgs) { - messagesFromNative.push(msgs); - // Process sync since we know we're already top-of-stack. - processMessages(); - } -} - -function pollingTimerFunc () { - if (pollEnabled) { - pollOnce(); - setTimeout(pollingTimerFunc, 50); - } -} - -function hookOnlineApis () { - function proxyEvent (e) { - cordova.fireWindowEvent(e.type); - } - // The network module takes care of firing online and offline events. - // It currently fires them only on document though, so we bridge them - // to window here (while first listening for exec()-releated online/offline - // events). - window.addEventListener('online', pollOnceFromOnlineEvent, false); - window.addEventListener('offline', pollOnceFromOnlineEvent, false); - cordova.addWindowEventHandler('online'); - cordova.addWindowEventHandler('offline'); - document.addEventListener('online', proxyEvent, false); - document.addEventListener('offline', proxyEvent, false); -} - -hookOnlineApis(); - -androidExec.jsToNativeModes = jsToNativeModes; -androidExec.nativeToJsModes = nativeToJsModes; - -androidExec.setJsToNativeBridgeMode = function (mode) { - if (mode === jsToNativeModes.JS_OBJECT && !window._cordovaNative) { - mode = jsToNativeModes.PROMPT; - } - nativeApiProvider.setPreferPrompt(mode === jsToNativeModes.PROMPT); - jsToNativeBridgeMode = mode; -}; - -androidExec.setNativeToJsBridgeMode = function (mode) { - if (mode === nativeToJsBridgeMode) { - return; - } - if (nativeToJsBridgeMode === nativeToJsModes.POLLING) { - pollEnabled = false; - } - - nativeToJsBridgeMode = mode; - // Tell the native side to switch modes. - // Otherwise, it will be set by androidExec.init() - if (bridgeSecret >= 0) { - nativeApiProvider.get().setNativeToJsBridgeMode(bridgeSecret, mode); - } - - if (mode === nativeToJsModes.POLLING) { - pollEnabled = true; - setTimeout(pollingTimerFunc, 1); - } -}; - -function buildPayload (payload, message) { - var payloadKind = message.charAt(0); - if (payloadKind === 's') { - payload.push(message.slice(1)); - } else if (payloadKind === 't') { - payload.push(true); - } else if (payloadKind === 'f') { - payload.push(false); - } else if (payloadKind === 'N') { - payload.push(null); - } else if (payloadKind === 'n') { - payload.push(+message.slice(1)); - } else if (payloadKind === 'A') { - var data = message.slice(1); - payload.push(base64.toArrayBuffer(data)); - } else if (payloadKind === 'S') { - payload.push(window.atob(message.slice(1))); - } else if (payloadKind === 'M') { - var multipartMessages = message.slice(1); - while (multipartMessages !== '') { - var spaceIdx = multipartMessages.indexOf(' '); - var msgLen = +multipartMessages.slice(0, spaceIdx); - var multipartMessage = multipartMessages.substr(spaceIdx + 1, msgLen); - multipartMessages = multipartMessages.slice(spaceIdx + msgLen + 1); - buildPayload(payload, multipartMessage); - } - } else { - payload.push(JSON.parse(message)); - } -} - -// Processes a single message, as encoded by NativeToJsMessageQueue.java. -function processMessage (message) { - var firstChar = message.charAt(0); - if (firstChar === 'J') { - // This is deprecated on the .java side. It doesn't work with CSP enabled. - // eslint-disable-next-line no-eval - eval(message.slice(1)); - } else if (firstChar === 'S' || firstChar === 'F') { - var success = firstChar === 'S'; - var keepCallback = message.charAt(1) === '1'; - var spaceIdx = message.indexOf(' ', 2); - var status = +message.slice(2, spaceIdx); - var nextSpaceIdx = message.indexOf(' ', spaceIdx + 1); - var callbackId = message.slice(spaceIdx + 1, nextSpaceIdx); - var payloadMessage = message.slice(nextSpaceIdx + 1); - var payload = []; - buildPayload(payload, payloadMessage); - cordova.callbackFromNative(callbackId, success, status, payload, keepCallback); - } else { - console.log('processMessage failed: invalid message: ' + JSON.stringify(message)); - } -} - -function processMessages () { - // Check for the reentrant case. - if (isProcessing) { - return; - } - if (messagesFromNative.length === 0) { - return; - } - isProcessing = true; - try { - var msg = popMessageFromQueue(); - // The Java side can send a * message to indicate that it - // still has messages waiting to be retrieved. - if (msg === '*' && messagesFromNative.length === 0) { - nextTick(pollOnce); - return; - } - processMessage(msg); - } finally { - isProcessing = false; - if (messagesFromNative.length > 0) { - nextTick(processMessages); - } - } -} - -function popMessageFromQueue () { - var messageBatch = messagesFromNative.shift(); - if (messageBatch === '*') { - return '*'; - } - - var spaceIdx = messageBatch.indexOf(' '); - var msgLen = +messageBatch.slice(0, spaceIdx); - var message = messageBatch.substr(spaceIdx + 1, msgLen); - messageBatch = messageBatch.slice(spaceIdx + msgLen + 1); - if (messageBatch) { - messagesFromNative.unshift(messageBatch); - } - return message; -} - -module.exports = androidExec; diff --git a/ionic/www/cordova-js-src/platform.js b/ionic/www/cordova-js-src/platform.js deleted file mode 100644 index 14eddd7f705d40f35c17aea37a56652545f11cbc..0000000000000000000000000000000000000000 --- a/ionic/www/cordova-js-src/platform.js +++ /dev/null @@ -1,122 +0,0 @@ -/* - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - * -*/ - -// The last resume event that was received that had the result of a plugin call. -var lastResumeEvent = null; - -module.exports = { - id: 'android', - bootstrap: function () { - var channel = require('cordova/channel'); - var cordova = require('cordova'); - var exec = require('cordova/exec'); - var modulemapper = require('cordova/modulemapper'); - - // Get the shared secret needed to use the bridge. - exec.init(); - - // TODO: Extract this as a proper plugin. - modulemapper.clobbers('cordova/plugin/android/app', 'navigator.app'); - - var APP_PLUGIN_NAME = Number(cordova.platformVersion.split('.')[0]) >= 4 ? 'CoreAndroid' : 'App'; - - // Inject a listener for the backbutton on the document. - var backButtonChannel = cordova.addDocumentEventHandler('backbutton'); - backButtonChannel.onHasSubscribersChange = function () { - // If we just attached the first handler or detached the last handler, - // let native know we need to override the back button. - exec(null, null, APP_PLUGIN_NAME, 'overrideBackbutton', [this.numHandlers === 1]); - }; - - // Add hardware MENU and SEARCH button handlers - cordova.addDocumentEventHandler('menubutton'); - cordova.addDocumentEventHandler('searchbutton'); - - function bindButtonChannel (buttonName) { - // generic button bind used for volumeup/volumedown buttons - var volumeButtonChannel = cordova.addDocumentEventHandler(buttonName + 'button'); - volumeButtonChannel.onHasSubscribersChange = function () { - exec(null, null, APP_PLUGIN_NAME, 'overrideButton', [buttonName, this.numHandlers === 1]); - }; - } - // Inject a listener for the volume buttons on the document. - bindButtonChannel('volumeup'); - bindButtonChannel('volumedown'); - - // The resume event is not "sticky", but it is possible that the event - // will contain the result of a plugin call. We need to ensure that the - // plugin result is delivered even after the event is fired (CB-10498) - var cordovaAddEventListener = document.addEventListener; - - document.addEventListener = function (evt, handler, capture) { - cordovaAddEventListener(evt, handler, capture); - - if (evt === 'resume' && lastResumeEvent) { - handler(lastResumeEvent); - } - }; - - // Let native code know we are all done on the JS side. - // Native code will then un-hide the WebView. - channel.onCordovaReady.subscribe(function () { - exec(onMessageFromNative, null, APP_PLUGIN_NAME, 'messageChannel', []); - exec(null, null, APP_PLUGIN_NAME, 'show', []); - }); - } -}; - -function onMessageFromNative (msg) { - var cordova = require('cordova'); - var action = msg.action; - - switch (action) { - // pause and resume are Android app life cycle events - case 'backbutton': - case 'menubutton': - case 'searchbutton': - case 'pause': - case 'volumedownbutton': - case 'volumeupbutton': - cordova.fireDocumentEvent(action); - break; - case 'resume': - if (arguments.length > 1 && msg.pendingResult) { - if (arguments.length === 2) { - msg.pendingResult.result = arguments[1]; - } else { - // The plugin returned a multipart message - var res = []; - for (var i = 1; i < arguments.length; i++) { - res.push(arguments[i]); - } - msg.pendingResult.result = res; - } - - // Save the plugin result so that it can be delivered to the js - // even if they miss the initial firing of the event - lastResumeEvent = msg; - } - cordova.fireDocumentEvent(action, msg); - break; - default: - throw new Error('Unknown event action ' + action); - } -} diff --git a/ionic/www/cordova-js-src/plugin/android/app.js b/ionic/www/cordova-js-src/plugin/android/app.js deleted file mode 100644 index 027ce31b11fe411c28fd20574c1812cbe138dc21..0000000000000000000000000000000000000000 --- a/ionic/www/cordova-js-src/plugin/android/app.js +++ /dev/null @@ -1,108 +0,0 @@ -/* - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - * -*/ - -var exec = require('cordova/exec'); -var APP_PLUGIN_NAME = Number(require('cordova').platformVersion.split('.')[0]) >= 4 ? 'CoreAndroid' : 'App'; - -module.exports = { - /** - * Clear the resource cache. - */ - clearCache: function () { - exec(null, null, APP_PLUGIN_NAME, 'clearCache', []); - }, - - /** - * Load the url into the webview or into new browser instance. - * - * @param url The URL to load - * @param props Properties that can be passed in to the activity: - * wait: int => wait msec before loading URL - * loadingDialog: "Title,Message" => display a native loading dialog - * loadUrlTimeoutValue: int => time in msec to wait before triggering a timeout error - * clearHistory: boolean => clear webview history (default=false) - * openExternal: boolean => open in a new browser (default=false) - * - * Example: - * navigator.app.loadUrl("http://server/myapp/index.html", {wait:2000, loadingDialog:"Wait,Loading App", loadUrlTimeoutValue: 60000}); - */ - loadUrl: function (url, props) { - exec(null, null, APP_PLUGIN_NAME, 'loadUrl', [url, props]); - }, - - /** - * Cancel loadUrl that is waiting to be loaded. - */ - cancelLoadUrl: function () { - exec(null, null, APP_PLUGIN_NAME, 'cancelLoadUrl', []); - }, - - /** - * Clear web history in this web view. - * Instead of BACK button loading the previous web page, it will exit the app. - */ - clearHistory: function () { - exec(null, null, APP_PLUGIN_NAME, 'clearHistory', []); - }, - - /** - * Go to previous page displayed. - * This is the same as pressing the backbutton on Android device. - */ - backHistory: function () { - exec(null, null, APP_PLUGIN_NAME, 'backHistory', []); - }, - - /** - * Override the default behavior of the Android back button. - * If overridden, when the back button is pressed, the "backKeyDown" JavaScript event will be fired. - * - * Note: The user should not have to call this method. Instead, when the user - * registers for the "backbutton" event, this is automatically done. - * - * @param override T=override, F=cancel override - */ - overrideBackbutton: function (override) { - exec(null, null, APP_PLUGIN_NAME, 'overrideBackbutton', [override]); - }, - - /** - * Override the default behavior of the Android volume button. - * If overridden, when the volume button is pressed, the "volume[up|down]button" - * JavaScript event will be fired. - * - * Note: The user should not have to call this method. Instead, when the user - * registers for the "volume[up|down]button" event, this is automatically done. - * - * @param button volumeup, volumedown - * @param override T=override, F=cancel override - */ - overrideButton: function (button, override) { - exec(null, null, APP_PLUGIN_NAME, 'overrideButton', [button, override]); - }, - - /** - * Exit and terminate the application. - */ - exitApp: function () { - return exec(null, null, APP_PLUGIN_NAME, 'exitApp', []); - } -}; diff --git a/ionic/www/cordova.js b/ionic/www/cordova.js deleted file mode 100644 index 3d71792ddbdbfa1eda6b681d412729c7cc5ffef1..0000000000000000000000000000000000000000 --- a/ionic/www/cordova.js +++ /dev/null @@ -1,1904 +0,0 @@ -// Platform: android -// 538a985db128858c0a0eb4dd40fb9c8e5433fc94 -/* - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. -*/ -;(function() { -var PLATFORM_VERSION_BUILD_LABEL = '9.0.0'; -// file: src/scripts/require.js -var require; -var define; - -(function () { - var modules = {}; - // Stack of moduleIds currently being built. - var requireStack = []; - // Map of module ID -> index into requireStack of modules currently being built. - var inProgressModules = {}; - var SEPARATOR = '.'; - - function build (module) { - var factory = module.factory; - var localRequire = function (id) { - var resultantId = id; - // Its a relative path, so lop off the last portion and add the id (minus "./") - if (id.charAt(0) === '.') { - resultantId = module.id.slice(0, module.id.lastIndexOf(SEPARATOR)) + SEPARATOR + id.slice(2); - } - return require(resultantId); - }; - module.exports = {}; - delete module.factory; - factory(localRequire, module.exports, module); - return module.exports; - } - - require = function (id) { - if (!modules[id]) { - throw new Error('module ' + id + ' not found'); - } else if (id in inProgressModules) { - var cycle = requireStack.slice(inProgressModules[id]).join('->') + '->' + id; - throw new Error('Cycle in require graph: ' + cycle); - } - if (modules[id].factory) { - try { - inProgressModules[id] = requireStack.length; - requireStack.push(id); - return build(modules[id]); - } finally { - delete inProgressModules[id]; - requireStack.pop(); - } - } - return modules[id].exports; - }; - - define = function (id, factory) { - if (Object.prototype.hasOwnProperty.call(modules, id)) { - throw new Error('module ' + id + ' already defined'); - } - - modules[id] = { - id: id, - factory: factory - }; - }; - - define.remove = function (id) { - delete modules[id]; - }; - - define.moduleMap = modules; -})(); - -// Export for use in node -if (typeof module === 'object' && typeof require === 'function') { - module.exports.require = require; - module.exports.define = define; -} - -// file: src/cordova.js -define("cordova", function(require, exports, module) { - -// Workaround for Windows 10 in hosted environment case -// http://www.w3.org/html/wg/drafts/html/master/browsers.html#named-access-on-the-window-object -if (window.cordova && !(window.cordova instanceof HTMLElement)) { - throw new Error('cordova already defined'); -} - -var channel = require('cordova/channel'); -var platform = require('cordova/platform'); - -/** - * Intercept calls to addEventListener + removeEventListener and handle deviceready, - * resume, and pause events. - */ -var m_document_addEventListener = document.addEventListener; -var m_document_removeEventListener = document.removeEventListener; -var m_window_addEventListener = window.addEventListener; -var m_window_removeEventListener = window.removeEventListener; - -/** - * Houses custom event handlers to intercept on document + window event listeners. - */ -var documentEventHandlers = {}; -var windowEventHandlers = {}; - -document.addEventListener = function (evt, handler, capture) { - var e = evt.toLowerCase(); - if (typeof documentEventHandlers[e] !== 'undefined') { - documentEventHandlers[e].subscribe(handler); - } else { - m_document_addEventListener.call(document, evt, handler, capture); - } -}; - -window.addEventListener = function (evt, handler, capture) { - var e = evt.toLowerCase(); - if (typeof windowEventHandlers[e] !== 'undefined') { - windowEventHandlers[e].subscribe(handler); - } else { - m_window_addEventListener.call(window, evt, handler, capture); - } -}; - -document.removeEventListener = function (evt, handler, capture) { - var e = evt.toLowerCase(); - // If unsubscribing from an event that is handled by a plugin - if (typeof documentEventHandlers[e] !== 'undefined') { - documentEventHandlers[e].unsubscribe(handler); - } else { - m_document_removeEventListener.call(document, evt, handler, capture); - } -}; - -window.removeEventListener = function (evt, handler, capture) { - var e = evt.toLowerCase(); - // If unsubscribing from an event that is handled by a plugin - if (typeof windowEventHandlers[e] !== 'undefined') { - windowEventHandlers[e].unsubscribe(handler); - } else { - m_window_removeEventListener.call(window, evt, handler, capture); - } -}; - -function createEvent (type, data) { - var event = document.createEvent('Events'); - event.initEvent(type, false, false); - if (data) { - for (var i in data) { - if (Object.prototype.hasOwnProperty.call(data, i)) { - event[i] = data[i]; - } - } - } - return event; -} - -var cordova = { - define: define, - require: require, - version: PLATFORM_VERSION_BUILD_LABEL, - platformVersion: PLATFORM_VERSION_BUILD_LABEL, - platformId: platform.id, - - /** - * Methods to add/remove your own addEventListener hijacking on document + window. - */ - addWindowEventHandler: function (event) { - return (windowEventHandlers[event] = channel.create(event)); - }, - addStickyDocumentEventHandler: function (event) { - return (documentEventHandlers[event] = channel.createSticky(event)); - }, - addDocumentEventHandler: function (event) { - return (documentEventHandlers[event] = channel.create(event)); - }, - removeWindowEventHandler: function (event) { - delete windowEventHandlers[event]; - }, - removeDocumentEventHandler: function (event) { - delete documentEventHandlers[event]; - }, - - /** - * Retrieve original event handlers that were replaced by Cordova - * - * @return object - */ - getOriginalHandlers: function () { - return { - document: { - addEventListener: m_document_addEventListener, - removeEventListener: m_document_removeEventListener - }, - window: { - addEventListener: m_window_addEventListener, - removeEventListener: m_window_removeEventListener - } - }; - }, - - /** - * Method to fire event from native code - * bNoDetach is required for events which cause an exception which needs to be caught in native code - */ - fireDocumentEvent: function (type, data, bNoDetach) { - var evt = createEvent(type, data); - if (typeof documentEventHandlers[type] !== 'undefined') { - if (bNoDetach) { - documentEventHandlers[type].fire(evt); - } else { - setTimeout(function () { - // Fire deviceready on listeners that were registered before cordova.js was loaded. - if (type === 'deviceready') { - document.dispatchEvent(evt); - } - documentEventHandlers[type].fire(evt); - }, 0); - } - } else { - document.dispatchEvent(evt); - } - }, - - fireWindowEvent: function (type, data) { - var evt = createEvent(type, data); - if (typeof windowEventHandlers[type] !== 'undefined') { - setTimeout(function () { - windowEventHandlers[type].fire(evt); - }, 0); - } else { - window.dispatchEvent(evt); - } - }, - - /** - * Plugin callback mechanism. - */ - // Randomize the starting callbackId to avoid collisions after refreshing or navigating. - // This way, it's very unlikely that any new callback would get the same callbackId as an old callback. - callbackId: Math.floor(Math.random() * 2000000000), - callbacks: {}, - callbackStatus: { - NO_RESULT: 0, - OK: 1, - CLASS_NOT_FOUND_EXCEPTION: 2, - ILLEGAL_ACCESS_EXCEPTION: 3, - INSTANTIATION_EXCEPTION: 4, - MALFORMED_URL_EXCEPTION: 5, - IO_EXCEPTION: 6, - INVALID_ACTION: 7, - JSON_EXCEPTION: 8, - ERROR: 9 - }, - - /** - * Called by native code when returning successful result from an action. - */ - callbackSuccess: function (callbackId, args) { - cordova.callbackFromNative(callbackId, true, args.status, [args.message], args.keepCallback); - }, - - /** - * Called by native code when returning error result from an action. - */ - callbackError: function (callbackId, args) { - // TODO: Deprecate callbackSuccess and callbackError in favour of callbackFromNative. - // Derive success from status. - cordova.callbackFromNative(callbackId, false, args.status, [args.message], args.keepCallback); - }, - - /** - * Called by native code when returning the result from an action. - */ - callbackFromNative: function (callbackId, isSuccess, status, args, keepCallback) { - try { - var callback = cordova.callbacks[callbackId]; - if (callback) { - if (isSuccess && status === cordova.callbackStatus.OK) { - callback.success && callback.success.apply(null, args); - } else if (!isSuccess) { - callback.fail && callback.fail.apply(null, args); - } - /* - else - Note, this case is intentionally not caught. - this can happen if isSuccess is true, but callbackStatus is NO_RESULT - which is used to remove a callback from the list without calling the callbacks - typically keepCallback is false in this case - */ - // Clear callback if not expecting any more results - if (!keepCallback) { - delete cordova.callbacks[callbackId]; - } - } - } catch (err) { - var msg = 'Error in ' + (isSuccess ? 'Success' : 'Error') + ' callbackId: ' + callbackId + ' : ' + err; - cordova.fireWindowEvent('cordovacallbackerror', { message: msg, error: err }); - throw err; - } - }, - - addConstructor: function (func) { - channel.onCordovaReady.subscribe(function () { - try { - func(); - } catch (e) { - console.log('Failed to run constructor: ' + e); - } - }); - } -}; - -module.exports = cordova; - -}); - -// file: ../cordova-android/cordova-js-src/android/nativeapiprovider.js -define("cordova/android/nativeapiprovider", function(require, exports, module) { - -/** - * Exports the ExposedJsApi.java object if available, otherwise exports the PromptBasedNativeApi. - */ - -var nativeApi = this._cordovaNative || require('cordova/android/promptbasednativeapi'); -var currentApi = nativeApi; - -module.exports = { - get: function () { return currentApi; }, - setPreferPrompt: function (value) { - currentApi = value ? require('cordova/android/promptbasednativeapi') : nativeApi; - }, - // Used only by tests. - set: function (value) { - currentApi = value; - } -}; - -}); - -// file: ../cordova-android/cordova-js-src/android/promptbasednativeapi.js -define("cordova/android/promptbasednativeapi", function(require, exports, module) { - -/** - * Implements the API of ExposedJsApi.java, but uses prompt() to communicate. - * This is used pre-JellyBean, where addJavascriptInterface() is disabled. - */ - -module.exports = { - exec: function (bridgeSecret, service, action, callbackId, argsJson) { - return prompt(argsJson, 'gap:' + JSON.stringify([bridgeSecret, service, action, callbackId])); - }, - setNativeToJsBridgeMode: function (bridgeSecret, value) { - prompt(value, 'gap_bridge_mode:' + bridgeSecret); - }, - retrieveJsMessages: function (bridgeSecret, fromOnlineEvent) { - return prompt(+fromOnlineEvent, 'gap_poll:' + bridgeSecret); - } -}; - -}); - -// file: src/common/argscheck.js -define("cordova/argscheck", function(require, exports, module) { - -var utils = require('cordova/utils'); - -var moduleExports = module.exports; - -var typeMap = { - A: 'Array', - D: 'Date', - N: 'Number', - S: 'String', - F: 'Function', - O: 'Object' -}; - -function extractParamName (callee, argIndex) { - return (/\(\s*([^)]*?)\s*\)/).exec(callee)[1].split(/\s*,\s*/)[argIndex]; -} - -/** - * Checks the given arguments' types and throws if they are not as expected. - * - * `spec` is a string where each character stands for the required type of the - * argument at the same position. In other words: the character at `spec[i]` - * specifies the required type for `args[i]`. The characters in `spec` are the - * first letter of the required type's name. The supported types are: - * - * Array, Date, Number, String, Function, Object - * - * Lowercase characters specify arguments that must not be `null` or `undefined` - * while uppercase characters allow those values to be passed. - * - * Finally, `*` can be used to allow any type at the corresponding position. - * - * @example - * function foo (arr, opts) { - * // require `arr` to be an Array and `opts` an Object, null or undefined - * checkArgs('aO', 'my.package.foo', arguments); - * // ... - * } - * @param {String} spec - the type specification for `args` as described above - * @param {String} functionName - full name of the callee. - * Used in the error message - * @param {Array|arguments} args - the arguments to be checked against `spec` - * @param {Function} [opt_callee=args.callee] - the recipient of `args`. - * Used to extract parameter names for the error message - * @throws {TypeError} if args do not satisfy spec - */ -function checkArgs (spec, functionName, args, opt_callee) { - if (!moduleExports.enableChecks) { - return; - } - var errMsg = null; - var typeName; - for (var i = 0; i < spec.length; ++i) { - var c = spec.charAt(i); - var cUpper = c.toUpperCase(); - var arg = args[i]; - // Asterix means allow anything. - if (c === '*') { - continue; - } - typeName = utils.typeName(arg); - if ((arg === null || arg === undefined) && c === cUpper) { - continue; - } - if (typeName !== typeMap[cUpper]) { - errMsg = 'Expected ' + typeMap[cUpper]; - break; - } - } - if (errMsg) { - errMsg += ', but got ' + typeName + '.'; - errMsg = 'Wrong type for parameter "' + extractParamName(opt_callee || args.callee, i) + '" of ' + functionName + ': ' + errMsg; - // Don't log when running unit tests. - if (typeof jasmine === 'undefined') { - console.error(errMsg); - } - throw TypeError(errMsg); - } -} - -function getValue (value, defaultValue) { - return value === undefined ? defaultValue : value; -} - -moduleExports.checkArgs = checkArgs; -moduleExports.getValue = getValue; -moduleExports.enableChecks = true; - -}); - -// file: src/common/base64.js -define("cordova/base64", function(require, exports, module) { - -var base64 = exports; - -base64.fromArrayBuffer = function (arrayBuffer) { - var array = new Uint8Array(arrayBuffer); - return uint8ToBase64(array); -}; - -base64.toArrayBuffer = function (str) { - var decodedStr = atob(str); - var arrayBuffer = new ArrayBuffer(decodedStr.length); - var array = new Uint8Array(arrayBuffer); - for (var i = 0, len = decodedStr.length; i < len; i++) { - array[i] = decodedStr.charCodeAt(i); - } - return arrayBuffer; -}; - -// ------------------------------------------------------------------------------ - -/* This code is based on the performance tests at http://jsperf.com/b64tests - * This 12-bit-at-a-time algorithm was the best performing version on all - * platforms tested. - */ - -var b64_6bit = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; -var b64_12bit; - -var b64_12bitTable = function () { - b64_12bit = []; - for (var i = 0; i < 64; i++) { - for (var j = 0; j < 64; j++) { - b64_12bit[i * 64 + j] = b64_6bit[i] + b64_6bit[j]; - } - } - b64_12bitTable = function () { return b64_12bit; }; - return b64_12bit; -}; - -function uint8ToBase64 (rawData) { - var numBytes = rawData.byteLength; - var output = ''; - var segment; - var table = b64_12bitTable(); - for (var i = 0; i < numBytes - 2; i += 3) { - segment = (rawData[i] << 16) + (rawData[i + 1] << 8) + rawData[i + 2]; - output += table[segment >> 12]; - output += table[segment & 0xfff]; - } - if (numBytes - i === 2) { - segment = (rawData[i] << 16) + (rawData[i + 1] << 8); - output += table[segment >> 12]; - output += b64_6bit[(segment & 0xfff) >> 6]; - output += '='; - } else if (numBytes - i === 1) { - segment = (rawData[i] << 16); - output += table[segment >> 12]; - output += '=='; - } - return output; -} - -}); - -// file: src/common/builder.js -define("cordova/builder", function(require, exports, module) { - -var utils = require('cordova/utils'); - -function each (objects, func, context) { - for (var prop in objects) { - if (Object.prototype.hasOwnProperty.call(objects, prop)) { - func.apply(context, [objects[prop], prop]); - } - } -} - -function clobber (obj, key, value) { - var needsProperty = false; - try { - obj[key] = value; - } catch (e) { - needsProperty = true; - } - // Getters can only be overridden by getters. - if (needsProperty || obj[key] !== value) { - utils.defineGetter(obj, key, function () { - return value; - }); - } -} - -function assignOrWrapInDeprecateGetter (obj, key, value, message) { - if (message) { - utils.defineGetter(obj, key, function () { - console.log(message); - delete obj[key]; - clobber(obj, key, value); - return value; - }); - } else { - clobber(obj, key, value); - } -} - -function include (parent, objects, clobber, merge) { - each(objects, function (obj, key) { - try { - var result = obj.path ? require(obj.path) : {}; - - if (clobber) { - // Clobber if it doesn't exist. - if (typeof parent[key] === 'undefined') { - assignOrWrapInDeprecateGetter(parent, key, result, obj.deprecated); - } else if (typeof obj.path !== 'undefined') { - // If merging, merge properties onto parent, otherwise, clobber. - if (merge) { - recursiveMerge(parent[key], result); - } else { - assignOrWrapInDeprecateGetter(parent, key, result, obj.deprecated); - } - } - result = parent[key]; - } else { - // Overwrite if not currently defined. - if (typeof parent[key] === 'undefined') { - assignOrWrapInDeprecateGetter(parent, key, result, obj.deprecated); - } else { - // Set result to what already exists, so we can build children into it if they exist. - result = parent[key]; - } - } - - if (obj.children) { - include(result, obj.children, clobber, merge); - } - } catch (e) { - utils.alert('Exception building Cordova JS globals: ' + e + ' for key "' + key + '"'); - } - }); -} - -/** - * Merge properties from one object onto another recursively. Properties from - * the src object will overwrite existing target property. - * - * @param target Object to merge properties into. - * @param src Object to merge properties from. - */ -function recursiveMerge (target, src) { - for (var prop in src) { - if (Object.prototype.hasOwnProperty.call(src, prop)) { - if (target.prototype && target.prototype.constructor === target) { - // If the target object is a constructor override off prototype. - clobber(target.prototype, prop, src[prop]); - } else { - if (typeof src[prop] === 'object' && typeof target[prop] === 'object') { - recursiveMerge(target[prop], src[prop]); - } else { - clobber(target, prop, src[prop]); - } - } - } - } -} - -exports.buildIntoButDoNotClobber = function (objects, target) { - include(target, objects, false, false); -}; -exports.buildIntoAndClobber = function (objects, target) { - include(target, objects, true, false); -}; -exports.buildIntoAndMerge = function (objects, target) { - include(target, objects, true, true); -}; -exports.recursiveMerge = recursiveMerge; -exports.assignOrWrapInDeprecateGetter = assignOrWrapInDeprecateGetter; - -}); - -// file: src/common/channel.js -define("cordova/channel", function(require, exports, module) { - -var utils = require('cordova/utils'); -var nextGuid = 1; - -/** - * Custom pub-sub "channel" that can have functions subscribed to it - * This object is used to define and control firing of events for - * cordova initialization, as well as for custom events thereafter. - * - * The order of events during page load and Cordova startup is as follows: - * - * onDOMContentLoaded* Internal event that is received when the web page is loaded and parsed. - * onNativeReady* Internal event that indicates the Cordova native side is ready. - * onCordovaReady* Internal event fired when all Cordova JavaScript objects have been created. - * onDeviceReady* User event fired to indicate that Cordova is ready - * onResume User event fired to indicate a start/resume lifecycle event - * onPause User event fired to indicate a pause lifecycle event - * - * The events marked with an * are sticky. Once they have fired, they will stay in the fired state. - * All listeners that subscribe after the event is fired will be executed right away. - * - * The only Cordova events that user code should register for are: - * deviceready Cordova native code is initialized and Cordova APIs can be called from JavaScript - * pause App has moved to background - * resume App has returned to foreground - * - * Listeners can be registered as: - * document.addEventListener("deviceready", myDeviceReadyListener, false); - * document.addEventListener("resume", myResumeListener, false); - * document.addEventListener("pause", myPauseListener, false); - * - * The DOM lifecycle events should be used for saving and restoring state - * window.onload - * window.onunload - * - */ - -/** - * Channel - * @constructor - * @param type String the channel name - */ -var Channel = function (type, sticky) { - this.type = type; - // Map of guid -> function. - this.handlers = {}; - // 0 = Non-sticky, 1 = Sticky non-fired, 2 = Sticky fired. - this.state = sticky ? 1 : 0; - // Used in sticky mode to remember args passed to fire(). - this.fireArgs = null; - // Used by onHasSubscribersChange to know if there are any listeners. - this.numHandlers = 0; - // Function that is called when the first listener is subscribed, or when - // the last listener is unsubscribed. - this.onHasSubscribersChange = null; -}; -var channel = { - /** - * Calls the provided function only after all of the channels specified - * have been fired. All channels must be sticky channels. - */ - join: function (h, c) { - var len = c.length; - var i = len; - var f = function () { - if (!(--i)) h(); - }; - for (var j = 0; j < len; j++) { - if (c[j].state === 0) { - throw Error('Can only use join with sticky channels.'); - } - c[j].subscribe(f); - } - if (!len) h(); - }, - - create: function (type) { - return (channel[type] = new Channel(type, false)); - }, - createSticky: function (type) { - return (channel[type] = new Channel(type, true)); - }, - - /** - * cordova Channels that must fire before "deviceready" is fired. - */ - deviceReadyChannelsArray: [], - deviceReadyChannelsMap: {}, - - /** - * Indicate that a feature needs to be initialized before it is ready to be used. - * This holds up Cordova's "deviceready" event until the feature has been initialized - * and Cordova.initComplete(feature) is called. - * - * @param feature {String} The unique feature name - */ - waitForInitialization: function (feature) { - if (feature) { - var c = channel[feature] || this.createSticky(feature); - this.deviceReadyChannelsMap[feature] = c; - this.deviceReadyChannelsArray.push(c); - } - }, - - /** - * Indicate that initialization code has completed and the feature is ready to be used. - * - * @param feature {String} The unique feature name - */ - initializationComplete: function (feature) { - var c = this.deviceReadyChannelsMap[feature]; - if (c) { - c.fire(); - } - } -}; - -function checkSubscriptionArgument (argument) { - if (typeof argument !== 'function' && typeof argument.handleEvent !== 'function') { - throw new Error( - 'Must provide a function or an EventListener object ' + - 'implementing the handleEvent interface.' - ); - } -} - -/** - * Subscribes the given function to the channel. Any time that - * Channel.fire is called so too will the function. - * Optionally specify an execution context for the function - * and a guid that can be used to stop subscribing to the channel. - * Returns the guid. - */ -Channel.prototype.subscribe = function (eventListenerOrFunction, eventListener) { - checkSubscriptionArgument(eventListenerOrFunction); - var handleEvent, guid; - - if (eventListenerOrFunction && typeof eventListenerOrFunction === 'object') { - // Received an EventListener object implementing the handleEvent interface - handleEvent = eventListenerOrFunction.handleEvent; - eventListener = eventListenerOrFunction; - } else { - // Received a function to handle event - handleEvent = eventListenerOrFunction; - } - - if (this.state === 2) { - handleEvent.apply(eventListener || this, this.fireArgs); - return; - } - - guid = eventListenerOrFunction.observer_guid; - if (typeof eventListener === 'object') { - handleEvent = utils.close(eventListener, handleEvent); - } - - if (!guid) { - // First time any channel has seen this subscriber - guid = '' + nextGuid++; - } - handleEvent.observer_guid = guid; - eventListenerOrFunction.observer_guid = guid; - - // Don't add the same handler more than once. - if (!this.handlers[guid]) { - this.handlers[guid] = handleEvent; - this.numHandlers++; - if (this.numHandlers === 1) { - this.onHasSubscribersChange && this.onHasSubscribersChange(); - } - } -}; - -/** - * Unsubscribes the function with the given guid from the channel. - */ -Channel.prototype.unsubscribe = function (eventListenerOrFunction) { - checkSubscriptionArgument(eventListenerOrFunction); - var handleEvent, guid, handler; - - if (eventListenerOrFunction && typeof eventListenerOrFunction === 'object') { - // Received an EventListener object implementing the handleEvent interface - handleEvent = eventListenerOrFunction.handleEvent; - } else { - // Received a function to handle event - handleEvent = eventListenerOrFunction; - } - - guid = handleEvent.observer_guid; - handler = this.handlers[guid]; - if (handler) { - delete this.handlers[guid]; - this.numHandlers--; - if (this.numHandlers === 0) { - this.onHasSubscribersChange && this.onHasSubscribersChange(); - } - } -}; - -/** - * Calls all functions subscribed to this channel. - */ -Channel.prototype.fire = function (e) { - var fireArgs = Array.prototype.slice.call(arguments); - // Apply stickiness. - if (this.state === 1) { - this.state = 2; - this.fireArgs = fireArgs; - } - if (this.numHandlers) { - // Copy the values first so that it is safe to modify it from within - // callbacks. - var toCall = []; - for (var item in this.handlers) { - toCall.push(this.handlers[item]); - } - for (var i = 0; i < toCall.length; ++i) { - toCall[i].apply(this, fireArgs); - } - if (this.state === 2 && this.numHandlers) { - this.numHandlers = 0; - this.handlers = {}; - this.onHasSubscribersChange && this.onHasSubscribersChange(); - } - } -}; - -// defining them here so they are ready super fast! -// DOM event that is received when the web page is loaded and parsed. -channel.createSticky('onDOMContentLoaded'); - -// Event to indicate the Cordova native side is ready. -channel.createSticky('onNativeReady'); - -// Event to indicate that all Cordova JavaScript objects have been created -// and it's time to run plugin constructors. -channel.createSticky('onCordovaReady'); - -// Event to indicate that all automatically loaded JS plugins are loaded and ready. -// FIXME remove this -channel.createSticky('onPluginsReady'); - -// Event to indicate that Cordova is ready -channel.createSticky('onDeviceReady'); - -// Event to indicate a resume lifecycle event -channel.create('onResume'); - -// Event to indicate a pause lifecycle event -channel.create('onPause'); - -// Channels that must fire before "deviceready" is fired. -channel.waitForInitialization('onCordovaReady'); -channel.waitForInitialization('onDOMContentLoaded'); - -module.exports = channel; - -}); - -// file: ../cordova-android/cordova-js-src/exec.js -define("cordova/exec", function(require, exports, module) { - -/** - * Execute a cordova command. It is up to the native side whether this action - * is synchronous or asynchronous. The native side can return: - * Synchronous: PluginResult object as a JSON string - * Asynchronous: Empty string "" - * If async, the native side will cordova.callbackSuccess or cordova.callbackError, - * depending upon the result of the action. - * - * @param {Function} success The success callback - * @param {Function} fail The fail callback - * @param {String} service The name of the service to use - * @param {String} action Action to be run in cordova - * @param {String[]} [args] Zero or more arguments to pass to the method - */ -var cordova = require('cordova'); -var nativeApiProvider = require('cordova/android/nativeapiprovider'); -var utils = require('cordova/utils'); -var base64 = require('cordova/base64'); -var channel = require('cordova/channel'); -var jsToNativeModes = { - PROMPT: 0, - JS_OBJECT: 1 -}; -var nativeToJsModes = { - // Polls for messages using the JS->Native bridge. - POLLING: 0, - // For LOAD_URL to be viable, it would need to have a work-around for - // the bug where the soft-keyboard gets dismissed when a message is sent. - LOAD_URL: 1, - // For the ONLINE_EVENT to be viable, it would need to intercept all event - // listeners (both through addEventListener and window.ononline) as well - // as set the navigator property itself. - ONLINE_EVENT: 2, - EVAL_BRIDGE: 3 -}; -var jsToNativeBridgeMode; // Set lazily. -var nativeToJsBridgeMode = nativeToJsModes.EVAL_BRIDGE; -var pollEnabled = false; -var bridgeSecret = -1; - -var messagesFromNative = []; -var isProcessing = false; -var resolvedPromise = typeof Promise === 'undefined' ? null : Promise.resolve(); -var nextTick = resolvedPromise ? function (fn) { resolvedPromise.then(fn); } : function (fn) { setTimeout(fn); }; - -function androidExec (success, fail, service, action, args) { - if (bridgeSecret < 0) { - // If we ever catch this firing, we'll need to queue up exec()s - // and fire them once we get a secret. For now, I don't think - // it's possible for exec() to be called since plugins are parsed but - // not run until until after onNativeReady. - throw new Error('exec() called without bridgeSecret'); - } - // Set default bridge modes if they have not already been set. - // By default, we use the failsafe, since addJavascriptInterface breaks too often - if (jsToNativeBridgeMode === undefined) { - androidExec.setJsToNativeBridgeMode(jsToNativeModes.JS_OBJECT); - } - - // If args is not provided, default to an empty array - args = args || []; - - // Process any ArrayBuffers in the args into a string. - for (var i = 0; i < args.length; i++) { - if (utils.typeName(args[i]) === 'ArrayBuffer') { - args[i] = base64.fromArrayBuffer(args[i]); - } - } - - var callbackId = service + cordova.callbackId++; - var argsJson = JSON.stringify(args); - if (success || fail) { - cordova.callbacks[callbackId] = { success: success, fail: fail }; - } - - var msgs = nativeApiProvider.get().exec(bridgeSecret, service, action, callbackId, argsJson); - // If argsJson was received by Java as null, try again with the PROMPT bridge mode. - // This happens in rare circumstances, such as when certain Unicode characters are passed over the bridge on a Galaxy S2. See CB-2666. - if (jsToNativeBridgeMode === jsToNativeModes.JS_OBJECT && msgs === '@Null arguments.') { - androidExec.setJsToNativeBridgeMode(jsToNativeModes.PROMPT); - androidExec(success, fail, service, action, args); - androidExec.setJsToNativeBridgeMode(jsToNativeModes.JS_OBJECT); - } else if (msgs) { - messagesFromNative.push(msgs); - // Always process async to avoid exceptions messing up stack. - nextTick(processMessages); - } -} - -androidExec.init = function () { - bridgeSecret = +prompt('', 'gap_init:' + nativeToJsBridgeMode); - channel.onNativeReady.fire(); -}; - -function pollOnceFromOnlineEvent () { - pollOnce(true); -} - -function pollOnce (opt_fromOnlineEvent) { - if (bridgeSecret < 0) { - // This can happen when the NativeToJsMessageQueue resets the online state on page transitions. - // We know there's nothing to retrieve, so no need to poll. - return; - } - var msgs = nativeApiProvider.get().retrieveJsMessages(bridgeSecret, !!opt_fromOnlineEvent); - if (msgs) { - messagesFromNative.push(msgs); - // Process sync since we know we're already top-of-stack. - processMessages(); - } -} - -function pollingTimerFunc () { - if (pollEnabled) { - pollOnce(); - setTimeout(pollingTimerFunc, 50); - } -} - -function hookOnlineApis () { - function proxyEvent (e) { - cordova.fireWindowEvent(e.type); - } - // The network module takes care of firing online and offline events. - // It currently fires them only on document though, so we bridge them - // to window here (while first listening for exec()-releated online/offline - // events). - window.addEventListener('online', pollOnceFromOnlineEvent, false); - window.addEventListener('offline', pollOnceFromOnlineEvent, false); - cordova.addWindowEventHandler('online'); - cordova.addWindowEventHandler('offline'); - document.addEventListener('online', proxyEvent, false); - document.addEventListener('offline', proxyEvent, false); -} - -hookOnlineApis(); - -androidExec.jsToNativeModes = jsToNativeModes; -androidExec.nativeToJsModes = nativeToJsModes; - -androidExec.setJsToNativeBridgeMode = function (mode) { - if (mode === jsToNativeModes.JS_OBJECT && !window._cordovaNative) { - mode = jsToNativeModes.PROMPT; - } - nativeApiProvider.setPreferPrompt(mode === jsToNativeModes.PROMPT); - jsToNativeBridgeMode = mode; -}; - -androidExec.setNativeToJsBridgeMode = function (mode) { - if (mode === nativeToJsBridgeMode) { - return; - } - if (nativeToJsBridgeMode === nativeToJsModes.POLLING) { - pollEnabled = false; - } - - nativeToJsBridgeMode = mode; - // Tell the native side to switch modes. - // Otherwise, it will be set by androidExec.init() - if (bridgeSecret >= 0) { - nativeApiProvider.get().setNativeToJsBridgeMode(bridgeSecret, mode); - } - - if (mode === nativeToJsModes.POLLING) { - pollEnabled = true; - setTimeout(pollingTimerFunc, 1); - } -}; - -function buildPayload (payload, message) { - var payloadKind = message.charAt(0); - if (payloadKind === 's') { - payload.push(message.slice(1)); - } else if (payloadKind === 't') { - payload.push(true); - } else if (payloadKind === 'f') { - payload.push(false); - } else if (payloadKind === 'N') { - payload.push(null); - } else if (payloadKind === 'n') { - payload.push(+message.slice(1)); - } else if (payloadKind === 'A') { - var data = message.slice(1); - payload.push(base64.toArrayBuffer(data)); - } else if (payloadKind === 'S') { - payload.push(window.atob(message.slice(1))); - } else if (payloadKind === 'M') { - var multipartMessages = message.slice(1); - while (multipartMessages !== '') { - var spaceIdx = multipartMessages.indexOf(' '); - var msgLen = +multipartMessages.slice(0, spaceIdx); - var multipartMessage = multipartMessages.substr(spaceIdx + 1, msgLen); - multipartMessages = multipartMessages.slice(spaceIdx + msgLen + 1); - buildPayload(payload, multipartMessage); - } - } else { - payload.push(JSON.parse(message)); - } -} - -// Processes a single message, as encoded by NativeToJsMessageQueue.java. -function processMessage (message) { - var firstChar = message.charAt(0); - if (firstChar === 'J') { - // This is deprecated on the .java side. It doesn't work with CSP enabled. - // eslint-disable-next-line no-eval - eval(message.slice(1)); - } else if (firstChar === 'S' || firstChar === 'F') { - var success = firstChar === 'S'; - var keepCallback = message.charAt(1) === '1'; - var spaceIdx = message.indexOf(' ', 2); - var status = +message.slice(2, spaceIdx); - var nextSpaceIdx = message.indexOf(' ', spaceIdx + 1); - var callbackId = message.slice(spaceIdx + 1, nextSpaceIdx); - var payloadMessage = message.slice(nextSpaceIdx + 1); - var payload = []; - buildPayload(payload, payloadMessage); - cordova.callbackFromNative(callbackId, success, status, payload, keepCallback); - } else { - console.log('processMessage failed: invalid message: ' + JSON.stringify(message)); - } -} - -function processMessages () { - // Check for the reentrant case. - if (isProcessing) { - return; - } - if (messagesFromNative.length === 0) { - return; - } - isProcessing = true; - try { - var msg = popMessageFromQueue(); - // The Java side can send a * message to indicate that it - // still has messages waiting to be retrieved. - if (msg === '*' && messagesFromNative.length === 0) { - nextTick(pollOnce); - return; - } - processMessage(msg); - } finally { - isProcessing = false; - if (messagesFromNative.length > 0) { - nextTick(processMessages); - } - } -} - -function popMessageFromQueue () { - var messageBatch = messagesFromNative.shift(); - if (messageBatch === '*') { - return '*'; - } - - var spaceIdx = messageBatch.indexOf(' '); - var msgLen = +messageBatch.slice(0, spaceIdx); - var message = messageBatch.substr(spaceIdx + 1, msgLen); - messageBatch = messageBatch.slice(spaceIdx + msgLen + 1); - if (messageBatch) { - messagesFromNative.unshift(messageBatch); - } - return message; -} - -module.exports = androidExec; - -}); - -// file: src/common/exec/proxy.js -define("cordova/exec/proxy", function(require, exports, module) { - -// internal map of proxy function -var CommandProxyMap = {}; - -module.exports = { - - // example: cordova.commandProxy.add("Accelerometer",{getCurrentAcceleration: function(successCallback, errorCallback, options) {...},...); - add: function (id, proxyObj) { - console.log('adding proxy for ' + id); - CommandProxyMap[id] = proxyObj; - return proxyObj; - }, - - // cordova.commandProxy.remove("Accelerometer"); - remove: function (id) { - var proxy = CommandProxyMap[id]; - delete CommandProxyMap[id]; - CommandProxyMap[id] = null; - return proxy; - }, - - get: function (service, action) { - return (CommandProxyMap[service] ? CommandProxyMap[service][action] : null); - } -}; - -}); - -// file: src/common/init.js -define("cordova/init", function(require, exports, module) { - -var channel = require('cordova/channel'); -var cordova = require('cordova'); -var modulemapper = require('cordova/modulemapper'); -var platform = require('cordova/platform'); -var pluginloader = require('cordova/pluginloader'); - -var platformInitChannelsArray = [channel.onNativeReady, channel.onPluginsReady]; - -function logUnfiredChannels (arr) { - for (var i = 0; i < arr.length; ++i) { - if (arr[i].state !== 2) { - console.log('Channel not fired: ' + arr[i].type); - } - } -} - -window.setTimeout(function () { - if (channel.onDeviceReady.state !== 2) { - console.log('deviceready has not fired after 5 seconds.'); - logUnfiredChannels(platformInitChannelsArray); - logUnfiredChannels(channel.deviceReadyChannelsArray); - } -}, 5000); - -if (!window.console) { - window.console = { - log: function () {} - }; -} -if (!window.console.warn) { - window.console.warn = function (msg) { - this.log('warn: ' + msg); - }; -} - -// Register pause, resume and deviceready channels as events on document. -channel.onPause = cordova.addDocumentEventHandler('pause'); -channel.onResume = cordova.addDocumentEventHandler('resume'); -channel.onActivated = cordova.addDocumentEventHandler('activated'); -channel.onDeviceReady = cordova.addStickyDocumentEventHandler('deviceready'); - -// Listen for DOMContentLoaded and notify our channel subscribers. -if (document.readyState === 'complete' || document.readyState === 'interactive') { - channel.onDOMContentLoaded.fire(); -} else { - document.addEventListener('DOMContentLoaded', function () { - channel.onDOMContentLoaded.fire(); - }, false); -} - -// _nativeReady is global variable that the native side can set -// to signify that the native code is ready. It is a global since -// it may be called before any cordova JS is ready. -if (window._nativeReady) { - channel.onNativeReady.fire(); -} - -modulemapper.clobbers('cordova', 'cordova'); -modulemapper.clobbers('cordova/exec', 'cordova.exec'); -modulemapper.clobbers('cordova/exec', 'Cordova.exec'); - -// Call the platform-specific initialization. -platform.bootstrap && platform.bootstrap(); - -// Wrap in a setTimeout to support the use-case of having plugin JS appended to cordova.js. -// The delay allows the attached modules to be defined before the plugin loader looks for them. -setTimeout(function () { - pluginloader.load(function () { - channel.onPluginsReady.fire(); - }); -}, 0); - -/** - * Create all cordova objects once native side is ready. - */ -channel.join(function () { - modulemapper.mapModules(window); - - platform.initialize && platform.initialize(); - - // Fire event to notify that all objects are created - channel.onCordovaReady.fire(); - - // Fire onDeviceReady event once page has fully loaded, all - // constructors have run and cordova info has been received from native - // side. - channel.join(function () { - require('cordova').fireDocumentEvent('deviceready'); - }, channel.deviceReadyChannelsArray); -}, platformInitChannelsArray); - -}); - -// file: src/common/modulemapper.js -define("cordova/modulemapper", function(require, exports, module) { - -var builder = require('cordova/builder'); -var moduleMap = define.moduleMap; -var symbolList; -var deprecationMap; - -exports.reset = function () { - symbolList = []; - deprecationMap = {}; -}; - -function addEntry (strategy, moduleName, symbolPath, opt_deprecationMessage) { - if (!(moduleName in moduleMap)) { - throw new Error('Module ' + moduleName + ' does not exist.'); - } - symbolList.push(strategy, moduleName, symbolPath); - if (opt_deprecationMessage) { - deprecationMap[symbolPath] = opt_deprecationMessage; - } -} - -// Note: Android 2.3 does have Function.bind(). -exports.clobbers = function (moduleName, symbolPath, opt_deprecationMessage) { - addEntry('c', moduleName, symbolPath, opt_deprecationMessage); -}; - -exports.merges = function (moduleName, symbolPath, opt_deprecationMessage) { - addEntry('m', moduleName, symbolPath, opt_deprecationMessage); -}; - -exports.defaults = function (moduleName, symbolPath, opt_deprecationMessage) { - addEntry('d', moduleName, symbolPath, opt_deprecationMessage); -}; - -exports.runs = function (moduleName) { - addEntry('r', moduleName, null); -}; - -function prepareNamespace (symbolPath, context) { - if (!symbolPath) { - return context; - } - return symbolPath.split('.').reduce(function (cur, part) { - return (cur[part] = cur[part] || {}); - }, context); -} - -exports.mapModules = function (context) { - var origSymbols = {}; - context.CDV_origSymbols = origSymbols; - for (var i = 0, len = symbolList.length; i < len; i += 3) { - var strategy = symbolList[i]; - var moduleName = symbolList[i + 1]; - var module = require(moduleName); - // <runs/> - if (strategy === 'r') { - continue; - } - var symbolPath = symbolList[i + 2]; - var lastDot = symbolPath.lastIndexOf('.'); - var namespace = symbolPath.substr(0, lastDot); - var lastName = symbolPath.substr(lastDot + 1); - - var deprecationMsg = symbolPath in deprecationMap ? 'Access made to deprecated symbol: ' + symbolPath + '. ' + deprecationMsg : null; - var parentObj = prepareNamespace(namespace, context); - var target = parentObj[lastName]; - - if (strategy === 'm' && target) { - builder.recursiveMerge(target, module); - } else if ((strategy === 'd' && !target) || (strategy !== 'd')) { - if (!(symbolPath in origSymbols)) { - origSymbols[symbolPath] = target; - } - builder.assignOrWrapInDeprecateGetter(parentObj, lastName, module, deprecationMsg); - } - } -}; - -exports.getOriginalSymbol = function (context, symbolPath) { - var origSymbols = context.CDV_origSymbols; - if (origSymbols && (symbolPath in origSymbols)) { - return origSymbols[symbolPath]; - } - var parts = symbolPath.split('.'); - var obj = context; - for (var i = 0; i < parts.length; ++i) { - obj = obj && obj[parts[i]]; - } - return obj; -}; - -exports.reset(); - -}); - -// file: ../cordova-android/cordova-js-src/platform.js -define("cordova/platform", function(require, exports, module) { - -// The last resume event that was received that had the result of a plugin call. -var lastResumeEvent = null; - -module.exports = { - id: 'android', - bootstrap: function () { - var channel = require('cordova/channel'); - var cordova = require('cordova'); - var exec = require('cordova/exec'); - var modulemapper = require('cordova/modulemapper'); - - // Get the shared secret needed to use the bridge. - exec.init(); - - // TODO: Extract this as a proper plugin. - modulemapper.clobbers('cordova/plugin/android/app', 'navigator.app'); - - var APP_PLUGIN_NAME = Number(cordova.platformVersion.split('.')[0]) >= 4 ? 'CoreAndroid' : 'App'; - - // Inject a listener for the backbutton on the document. - var backButtonChannel = cordova.addDocumentEventHandler('backbutton'); - backButtonChannel.onHasSubscribersChange = function () { - // If we just attached the first handler or detached the last handler, - // let native know we need to override the back button. - exec(null, null, APP_PLUGIN_NAME, 'overrideBackbutton', [this.numHandlers === 1]); - }; - - // Add hardware MENU and SEARCH button handlers - cordova.addDocumentEventHandler('menubutton'); - cordova.addDocumentEventHandler('searchbutton'); - - function bindButtonChannel (buttonName) { - // generic button bind used for volumeup/volumedown buttons - var volumeButtonChannel = cordova.addDocumentEventHandler(buttonName + 'button'); - volumeButtonChannel.onHasSubscribersChange = function () { - exec(null, null, APP_PLUGIN_NAME, 'overrideButton', [buttonName, this.numHandlers === 1]); - }; - } - // Inject a listener for the volume buttons on the document. - bindButtonChannel('volumeup'); - bindButtonChannel('volumedown'); - - // The resume event is not "sticky", but it is possible that the event - // will contain the result of a plugin call. We need to ensure that the - // plugin result is delivered even after the event is fired (CB-10498) - var cordovaAddEventListener = document.addEventListener; - - document.addEventListener = function (evt, handler, capture) { - cordovaAddEventListener(evt, handler, capture); - - if (evt === 'resume' && lastResumeEvent) { - handler(lastResumeEvent); - } - }; - - // Let native code know we are all done on the JS side. - // Native code will then un-hide the WebView. - channel.onCordovaReady.subscribe(function () { - exec(onMessageFromNative, null, APP_PLUGIN_NAME, 'messageChannel', []); - exec(null, null, APP_PLUGIN_NAME, 'show', []); - }); - } -}; - -function onMessageFromNative (msg) { - var cordova = require('cordova'); - var action = msg.action; - - switch (action) { - // pause and resume are Android app life cycle events - case 'backbutton': - case 'menubutton': - case 'searchbutton': - case 'pause': - case 'volumedownbutton': - case 'volumeupbutton': - cordova.fireDocumentEvent(action); - break; - case 'resume': - if (arguments.length > 1 && msg.pendingResult) { - if (arguments.length === 2) { - msg.pendingResult.result = arguments[1]; - } else { - // The plugin returned a multipart message - var res = []; - for (var i = 1; i < arguments.length; i++) { - res.push(arguments[i]); - } - msg.pendingResult.result = res; - } - - // Save the plugin result so that it can be delivered to the js - // even if they miss the initial firing of the event - lastResumeEvent = msg; - } - cordova.fireDocumentEvent(action, msg); - break; - default: - throw new Error('Unknown event action ' + action); - } -} - -}); - -// file: ../cordova-android/cordova-js-src/plugin/android/app.js -define("cordova/plugin/android/app", function(require, exports, module) { - -var exec = require('cordova/exec'); -var APP_PLUGIN_NAME = Number(require('cordova').platformVersion.split('.')[0]) >= 4 ? 'CoreAndroid' : 'App'; - -module.exports = { - /** - * Clear the resource cache. - */ - clearCache: function () { - exec(null, null, APP_PLUGIN_NAME, 'clearCache', []); - }, - - /** - * Load the url into the webview or into new browser instance. - * - * @param url The URL to load - * @param props Properties that can be passed in to the activity: - * wait: int => wait msec before loading URL - * loadingDialog: "Title,Message" => display a native loading dialog - * loadUrlTimeoutValue: int => time in msec to wait before triggering a timeout error - * clearHistory: boolean => clear webview history (default=false) - * openExternal: boolean => open in a new browser (default=false) - * - * Example: - * navigator.app.loadUrl("http://server/myapp/index.html", {wait:2000, loadingDialog:"Wait,Loading App", loadUrlTimeoutValue: 60000}); - */ - loadUrl: function (url, props) { - exec(null, null, APP_PLUGIN_NAME, 'loadUrl', [url, props]); - }, - - /** - * Cancel loadUrl that is waiting to be loaded. - */ - cancelLoadUrl: function () { - exec(null, null, APP_PLUGIN_NAME, 'cancelLoadUrl', []); - }, - - /** - * Clear web history in this web view. - * Instead of BACK button loading the previous web page, it will exit the app. - */ - clearHistory: function () { - exec(null, null, APP_PLUGIN_NAME, 'clearHistory', []); - }, - - /** - * Go to previous page displayed. - * This is the same as pressing the backbutton on Android device. - */ - backHistory: function () { - exec(null, null, APP_PLUGIN_NAME, 'backHistory', []); - }, - - /** - * Override the default behavior of the Android back button. - * If overridden, when the back button is pressed, the "backKeyDown" JavaScript event will be fired. - * - * Note: The user should not have to call this method. Instead, when the user - * registers for the "backbutton" event, this is automatically done. - * - * @param override T=override, F=cancel override - */ - overrideBackbutton: function (override) { - exec(null, null, APP_PLUGIN_NAME, 'overrideBackbutton', [override]); - }, - - /** - * Override the default behavior of the Android volume button. - * If overridden, when the volume button is pressed, the "volume[up|down]button" - * JavaScript event will be fired. - * - * Note: The user should not have to call this method. Instead, when the user - * registers for the "volume[up|down]button" event, this is automatically done. - * - * @param button volumeup, volumedown - * @param override T=override, F=cancel override - */ - overrideButton: function (button, override) { - exec(null, null, APP_PLUGIN_NAME, 'overrideButton', [button, override]); - }, - - /** - * Exit and terminate the application. - */ - exitApp: function () { - return exec(null, null, APP_PLUGIN_NAME, 'exitApp', []); - } -}; - -}); - -// file: src/common/pluginloader.js -define("cordova/pluginloader", function(require, exports, module) { - -var modulemapper = require('cordova/modulemapper'); - -// Helper function to inject a <script> tag. -// Exported for testing. -exports.injectScript = function (url, onload, onerror) { - var script = document.createElement('script'); - // onload fires even when script fails loads with an error. - script.onload = onload; - // onerror fires for malformed URLs. - script.onerror = onerror; - script.src = url; - document.head.appendChild(script); -}; - -function injectIfNecessary (id, url, onload, onerror) { - onerror = onerror || onload; - if (id in define.moduleMap) { - onload(); - } else { - exports.injectScript(url, function () { - if (id in define.moduleMap) { - onload(); - } else { - onerror(); - } - }, onerror); - } -} - -function onScriptLoadingComplete (moduleList, finishPluginLoading) { - // Loop through all the plugins and then through their clobbers and merges. - for (var i = 0, module; (module = moduleList[i]); i++) { - if (module.clobbers && module.clobbers.length) { - for (var j = 0; j < module.clobbers.length; j++) { - modulemapper.clobbers(module.id, module.clobbers[j]); - } - } - - if (module.merges && module.merges.length) { - for (var k = 0; k < module.merges.length; k++) { - modulemapper.merges(module.id, module.merges[k]); - } - } - - // Finally, if runs is truthy we want to simply require() the module. - if (module.runs) { - modulemapper.runs(module.id); - } - } - - finishPluginLoading(); -} - -// Handler for the cordova_plugins.js content. -// See plugman's plugin_loader.js for the details of this object. -// This function is only called if the really is a plugins array that isn't empty. -// Otherwise the onerror response handler will just call finishPluginLoading(). -function handlePluginsObject (path, moduleList, finishPluginLoading) { - // Now inject the scripts. - var scriptCounter = moduleList.length; - - if (!scriptCounter) { - finishPluginLoading(); - return; - } - function scriptLoadedCallback () { - if (!--scriptCounter) { - onScriptLoadingComplete(moduleList, finishPluginLoading); - } - } - - for (var i = 0; i < moduleList.length; i++) { - injectIfNecessary(moduleList[i].id, path + moduleList[i].file, scriptLoadedCallback); - } -} - -function findCordovaPath () { - var path = null; - var scripts = document.getElementsByTagName('script'); - var term = '/cordova.js'; - for (var n = scripts.length - 1; n > -1; n--) { - var src = scripts[n].src.replace(/\?.*$/, ''); // Strip any query param (CB-6007). - if (src.indexOf(term) === (src.length - term.length)) { - path = src.substring(0, src.length - term.length) + '/'; - break; - } - } - return path; -} - -// Tries to load all plugins' js-modules. -// This is an async process, but onDeviceReady is blocked on onPluginsReady. -// onPluginsReady is fired when there are no plugins to load, or they are all done. -exports.load = function (callback) { - var pathPrefix = findCordovaPath(); - if (pathPrefix === null) { - console.log('Could not find cordova.js script tag. Plugin loading may fail.'); - pathPrefix = ''; - } - injectIfNecessary('cordova/plugin_list', pathPrefix + 'cordova_plugins.js', function () { - var moduleList = require('cordova/plugin_list'); - handlePluginsObject(pathPrefix, moduleList, callback); - }, callback); -}; - -}); - -// file: src/common/urlutil.js -define("cordova/urlutil", function(require, exports, module) { - -/** - * For already absolute URLs, returns what is passed in. - * For relative URLs, converts them to absolute ones. - */ -exports.makeAbsolute = function makeAbsolute (url) { - var anchorEl = document.createElement('a'); - anchorEl.href = url; - return anchorEl.href; -}; - -}); - -// file: src/common/utils.js -define("cordova/utils", function(require, exports, module) { - -var utils = exports; - -/** - * Defines a property getter / setter for obj[key]. - */ -utils.defineGetterSetter = function (obj, key, getFunc, opt_setFunc) { - if (Object.defineProperty) { - var desc = { - get: getFunc, - configurable: true - }; - if (opt_setFunc) { - desc.set = opt_setFunc; - } - Object.defineProperty(obj, key, desc); - } else { - obj.__defineGetter__(key, getFunc); - if (opt_setFunc) { - obj.__defineSetter__(key, opt_setFunc); - } - } -}; - -/** - * Defines a property getter for obj[key]. - */ -utils.defineGetter = utils.defineGetterSetter; - -utils.arrayIndexOf = function (a, item) { - if (a.indexOf) { - return a.indexOf(item); - } - var len = a.length; - for (var i = 0; i < len; ++i) { - if (a[i] === item) { - return i; - } - } - return -1; -}; - -/** - * Returns whether the item was found in the array. - */ -utils.arrayRemove = function (a, item) { - var index = utils.arrayIndexOf(a, item); - if (index !== -1) { - a.splice(index, 1); - } - return index !== -1; -}; - -utils.typeName = function (val) { - return Object.prototype.toString.call(val).slice(8, -1); -}; - -/** - * Returns an indication of whether the argument is an array or not - */ -utils.isArray = Array.isArray || - function (a) { return utils.typeName(a) === 'Array'; }; - -/** - * Returns an indication of whether the argument is a Date or not - */ -utils.isDate = function (d) { - return (d instanceof Date); -}; - -/** - * Does a deep clone of the object. - */ -utils.clone = function (obj) { - if (!obj || typeof obj === 'function' || utils.isDate(obj) || typeof obj !== 'object') { - return obj; - } - - var retVal, i; - - if (utils.isArray(obj)) { - retVal = []; - for (i = 0; i < obj.length; ++i) { - retVal.push(utils.clone(obj[i])); - } - return retVal; - } - - retVal = {}; - for (i in obj) { - // 'unknown' type may be returned in custom protocol activation case on - // Windows Phone 8.1 causing "No such interface supported" exception on - // cloning (https://issues.apache.org/jira/browse/CB-11522) - // eslint-disable-next-line valid-typeof - if ((!(i in retVal) || retVal[i] !== obj[i]) && typeof obj[i] !== 'undefined' && typeof obj[i] !== 'unknown') { - retVal[i] = utils.clone(obj[i]); - } - } - return retVal; -}; - -/** - * Returns a wrapped version of the function - */ -utils.close = function (context, func, params) { - return function () { - var args = params || arguments; - return func.apply(context, args); - }; -}; - -// ------------------------------------------------------------------------------ -function UUIDcreatePart (length) { - var uuidpart = ''; - for (var i = 0; i < length; i++) { - var uuidchar = parseInt((Math.random() * 256), 10).toString(16); - if (uuidchar.length === 1) { - uuidchar = '0' + uuidchar; - } - uuidpart += uuidchar; - } - return uuidpart; -} - -/** - * Create a UUID - */ -utils.createUUID = function () { - return UUIDcreatePart(4) + '-' + - UUIDcreatePart(2) + '-' + - UUIDcreatePart(2) + '-' + - UUIDcreatePart(2) + '-' + - UUIDcreatePart(6); -}; - -/** - * Extends a child object from a parent object using classical inheritance - * pattern. - */ -utils.extend = (function () { - // proxy used to establish prototype chain - var F = function () {}; - // extend Child from Parent - return function (Child, Parent) { - F.prototype = Parent.prototype; - Child.prototype = new F(); - Child.__super__ = Parent.prototype; - Child.prototype.constructor = Child; - }; -}()); - -/** - * Alerts a message in any available way: alert or console.log. - */ -utils.alert = function (msg) { - if (window.alert) { - window.alert(msg); - } else if (console && console.log) { - console.log(msg); - } -}; - -}); - -window.cordova = require('cordova'); -// file: src/scripts/bootstrap.js -require('cordova/init'); - -})(); diff --git a/ionic/www/cordova.js.map b/ionic/www/cordova.js.map deleted file mode 100644 index 53fdb38ff65a72f19ece724fc2e744c252298c02..0000000000000000000000000000000000000000 --- a/ionic/www/cordova.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["platforms/android/platform_www/cordova.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,6DAA6D,2BAA2B;AACxF;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;;AAEA;;AAEA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,sBAAsB,mBAAmB,EAAE;AAC3C;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA,CAAC;;AAED;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA,WAAW,gBAAgB;AAC3B,WAAW,SAAS;AACpB;AACA,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,CAAC;;AAED;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,4CAA4C,SAAS;AACrD;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,mBAAmB,QAAQ;AAC3B,uBAAuB,QAAQ;AAC/B;AACA;AACA;AACA,kCAAkC,kBAAkB;AACpD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,kBAAkB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;;AAED;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;;AAED;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,SAAS;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,8BAA8B;;AAE9B;AACA;AACA;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,mBAAmB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;;AAEA;AACA;AACA;AACA,gDAAgD,0BAA0B,EAAE,kBAAkB,gBAAgB;;AAE9G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,yCAAyC;AACzC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,CAAC;;AAED;AACA;;AAEA;AACA;;AAEA;;AAEA,0DAA0D,2EAA2E,IAAI;AACzI;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,mBAAmB,gBAAgB;AACnC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,CAAC;;AAED,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C,KAAK;AACL;;AAEA;AACA;AACA;AACA,4CAA4C,SAAS;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,kBAAkB;AACrC;AACA;AACA;AACA;;AAEA;;AAEA,CAAC;;AAED;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,+BAA+B,sBAAsB;AACrD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;;AAED;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,wEAAwE;AAC5I;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;;AAED;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA,2BAA2B,0BAA0B;AACrD;AACA,2BAA2B,4BAA4B;AACvD;AACA;AACA;;AAEA;AACA,2BAA2B,0BAA0B;AACrD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,uBAAuB;AAC1C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oCAAoC,QAAQ;AAC5C,sDAAsD;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;;AAED;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,SAAS;AAC5B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,8BAA8B,sCAAsC;;AAEpE;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,mBAAmB,gBAAgB;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,YAAY;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA,CAAC;;AAED;AACA;AACA;;AAEA,CAAC","file":"cordova.js","sourcesContent":["// Platform: android\n// 538a985db128858c0a0eb4dd40fb9c8e5433fc94\n/*\n Licensed to the Apache Software Foundation (ASF) under one\n or more contributor license agreements. See the NOTICE file\n distributed with this work for additional information\n regarding copyright ownership. The ASF licenses this file\n to you under the Apache License, Version 2.0 (the\n \"License\"); you may not use this file except in compliance\n with the License. You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing,\n software distributed under the License is distributed on an\n \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n KIND, either express or implied. See the License for the\n specific language governing permissions and limitations\n under the License.\n*/\n;(function() {\nvar PLATFORM_VERSION_BUILD_LABEL = '9.0.0';\n// file: src/scripts/require.js\nvar require;\nvar define;\n\n(function () {\n var modules = {};\n // Stack of moduleIds currently being built.\n var requireStack = [];\n // Map of module ID -> index into requireStack of modules currently being built.\n var inProgressModules = {};\n var SEPARATOR = '.';\n\n function build (module) {\n var factory = module.factory;\n var localRequire = function (id) {\n var resultantId = id;\n // Its a relative path, so lop off the last portion and add the id (minus \"./\")\n if (id.charAt(0) === '.') {\n resultantId = module.id.slice(0, module.id.lastIndexOf(SEPARATOR)) + SEPARATOR + id.slice(2);\n }\n return require(resultantId);\n };\n module.exports = {};\n delete module.factory;\n factory(localRequire, module.exports, module);\n return module.exports;\n }\n\n require = function (id) {\n if (!modules[id]) {\n throw new Error('module ' + id + ' not found');\n } else if (id in inProgressModules) {\n var cycle = requireStack.slice(inProgressModules[id]).join('->') + '->' + id;\n throw new Error('Cycle in require graph: ' + cycle);\n }\n if (modules[id].factory) {\n try {\n inProgressModules[id] = requireStack.length;\n requireStack.push(id);\n return build(modules[id]);\n } finally {\n delete inProgressModules[id];\n requireStack.pop();\n }\n }\n return modules[id].exports;\n };\n\n define = function (id, factory) {\n if (Object.prototype.hasOwnProperty.call(modules, id)) {\n throw new Error('module ' + id + ' already defined');\n }\n\n modules[id] = {\n id: id,\n factory: factory\n };\n };\n\n define.remove = function (id) {\n delete modules[id];\n };\n\n define.moduleMap = modules;\n})();\n\n// Export for use in node\nif (typeof module === 'object' && typeof require === 'function') {\n module.exports.require = require;\n module.exports.define = define;\n}\n\n// file: src/cordova.js\ndefine(\"cordova\", function(require, exports, module) {\n\n// Workaround for Windows 10 in hosted environment case\n// http://www.w3.org/html/wg/drafts/html/master/browsers.html#named-access-on-the-window-object\nif (window.cordova && !(window.cordova instanceof HTMLElement)) {\n throw new Error('cordova already defined');\n}\n\nvar channel = require('cordova/channel');\nvar platform = require('cordova/platform');\n\n/**\n * Intercept calls to addEventListener + removeEventListener and handle deviceready,\n * resume, and pause events.\n */\nvar m_document_addEventListener = document.addEventListener;\nvar m_document_removeEventListener = document.removeEventListener;\nvar m_window_addEventListener = window.addEventListener;\nvar m_window_removeEventListener = window.removeEventListener;\n\n/**\n * Houses custom event handlers to intercept on document + window event listeners.\n */\nvar documentEventHandlers = {};\nvar windowEventHandlers = {};\n\ndocument.addEventListener = function (evt, handler, capture) {\n var e = evt.toLowerCase();\n if (typeof documentEventHandlers[e] !== 'undefined') {\n documentEventHandlers[e].subscribe(handler);\n } else {\n m_document_addEventListener.call(document, evt, handler, capture);\n }\n};\n\nwindow.addEventListener = function (evt, handler, capture) {\n var e = evt.toLowerCase();\n if (typeof windowEventHandlers[e] !== 'undefined') {\n windowEventHandlers[e].subscribe(handler);\n } else {\n m_window_addEventListener.call(window, evt, handler, capture);\n }\n};\n\ndocument.removeEventListener = function (evt, handler, capture) {\n var e = evt.toLowerCase();\n // If unsubscribing from an event that is handled by a plugin\n if (typeof documentEventHandlers[e] !== 'undefined') {\n documentEventHandlers[e].unsubscribe(handler);\n } else {\n m_document_removeEventListener.call(document, evt, handler, capture);\n }\n};\n\nwindow.removeEventListener = function (evt, handler, capture) {\n var e = evt.toLowerCase();\n // If unsubscribing from an event that is handled by a plugin\n if (typeof windowEventHandlers[e] !== 'undefined') {\n windowEventHandlers[e].unsubscribe(handler);\n } else {\n m_window_removeEventListener.call(window, evt, handler, capture);\n }\n};\n\nfunction createEvent (type, data) {\n var event = document.createEvent('Events');\n event.initEvent(type, false, false);\n if (data) {\n for (var i in data) {\n if (Object.prototype.hasOwnProperty.call(data, i)) {\n event[i] = data[i];\n }\n }\n }\n return event;\n}\n\nvar cordova = {\n define: define,\n require: require,\n version: PLATFORM_VERSION_BUILD_LABEL,\n platformVersion: PLATFORM_VERSION_BUILD_LABEL,\n platformId: platform.id,\n\n /**\n * Methods to add/remove your own addEventListener hijacking on document + window.\n */\n addWindowEventHandler: function (event) {\n return (windowEventHandlers[event] = channel.create(event));\n },\n addStickyDocumentEventHandler: function (event) {\n return (documentEventHandlers[event] = channel.createSticky(event));\n },\n addDocumentEventHandler: function (event) {\n return (documentEventHandlers[event] = channel.create(event));\n },\n removeWindowEventHandler: function (event) {\n delete windowEventHandlers[event];\n },\n removeDocumentEventHandler: function (event) {\n delete documentEventHandlers[event];\n },\n\n /**\n * Retrieve original event handlers that were replaced by Cordova\n *\n * @return object\n */\n getOriginalHandlers: function () {\n return {\n document: {\n addEventListener: m_document_addEventListener,\n removeEventListener: m_document_removeEventListener\n },\n window: {\n addEventListener: m_window_addEventListener,\n removeEventListener: m_window_removeEventListener\n }\n };\n },\n\n /**\n * Method to fire event from native code\n * bNoDetach is required for events which cause an exception which needs to be caught in native code\n */\n fireDocumentEvent: function (type, data, bNoDetach) {\n var evt = createEvent(type, data);\n if (typeof documentEventHandlers[type] !== 'undefined') {\n if (bNoDetach) {\n documentEventHandlers[type].fire(evt);\n } else {\n setTimeout(function () {\n // Fire deviceready on listeners that were registered before cordova.js was loaded.\n if (type === 'deviceready') {\n document.dispatchEvent(evt);\n }\n documentEventHandlers[type].fire(evt);\n }, 0);\n }\n } else {\n document.dispatchEvent(evt);\n }\n },\n\n fireWindowEvent: function (type, data) {\n var evt = createEvent(type, data);\n if (typeof windowEventHandlers[type] !== 'undefined') {\n setTimeout(function () {\n windowEventHandlers[type].fire(evt);\n }, 0);\n } else {\n window.dispatchEvent(evt);\n }\n },\n\n /**\n * Plugin callback mechanism.\n */\n // Randomize the starting callbackId to avoid collisions after refreshing or navigating.\n // This way, it's very unlikely that any new callback would get the same callbackId as an old callback.\n callbackId: Math.floor(Math.random() * 2000000000),\n callbacks: {},\n callbackStatus: {\n NO_RESULT: 0,\n OK: 1,\n CLASS_NOT_FOUND_EXCEPTION: 2,\n ILLEGAL_ACCESS_EXCEPTION: 3,\n INSTANTIATION_EXCEPTION: 4,\n MALFORMED_URL_EXCEPTION: 5,\n IO_EXCEPTION: 6,\n INVALID_ACTION: 7,\n JSON_EXCEPTION: 8,\n ERROR: 9\n },\n\n /**\n * Called by native code when returning successful result from an action.\n */\n callbackSuccess: function (callbackId, args) {\n cordova.callbackFromNative(callbackId, true, args.status, [args.message], args.keepCallback);\n },\n\n /**\n * Called by native code when returning error result from an action.\n */\n callbackError: function (callbackId, args) {\n // TODO: Deprecate callbackSuccess and callbackError in favour of callbackFromNative.\n // Derive success from status.\n cordova.callbackFromNative(callbackId, false, args.status, [args.message], args.keepCallback);\n },\n\n /**\n * Called by native code when returning the result from an action.\n */\n callbackFromNative: function (callbackId, isSuccess, status, args, keepCallback) {\n try {\n var callback = cordova.callbacks[callbackId];\n if (callback) {\n if (isSuccess && status === cordova.callbackStatus.OK) {\n callback.success && callback.success.apply(null, args);\n } else if (!isSuccess) {\n callback.fail && callback.fail.apply(null, args);\n }\n /*\n else\n Note, this case is intentionally not caught.\n this can happen if isSuccess is true, but callbackStatus is NO_RESULT\n which is used to remove a callback from the list without calling the callbacks\n typically keepCallback is false in this case\n */\n // Clear callback if not expecting any more results\n if (!keepCallback) {\n delete cordova.callbacks[callbackId];\n }\n }\n } catch (err) {\n var msg = 'Error in ' + (isSuccess ? 'Success' : 'Error') + ' callbackId: ' + callbackId + ' : ' + err;\n cordova.fireWindowEvent('cordovacallbackerror', { message: msg, error: err });\n throw err;\n }\n },\n\n addConstructor: function (func) {\n channel.onCordovaReady.subscribe(function () {\n try {\n func();\n } catch (e) {\n console.log('Failed to run constructor: ' + e);\n }\n });\n }\n};\n\nmodule.exports = cordova;\n\n});\n\n// file: ../cordova-android/cordova-js-src/android/nativeapiprovider.js\ndefine(\"cordova/android/nativeapiprovider\", function(require, exports, module) {\n\n/**\n * Exports the ExposedJsApi.java object if available, otherwise exports the PromptBasedNativeApi.\n */\n\nvar nativeApi = this._cordovaNative || require('cordova/android/promptbasednativeapi');\nvar currentApi = nativeApi;\n\nmodule.exports = {\n get: function () { return currentApi; },\n setPreferPrompt: function (value) {\n currentApi = value ? require('cordova/android/promptbasednativeapi') : nativeApi;\n },\n // Used only by tests.\n set: function (value) {\n currentApi = value;\n }\n};\n\n});\n\n// file: ../cordova-android/cordova-js-src/android/promptbasednativeapi.js\ndefine(\"cordova/android/promptbasednativeapi\", function(require, exports, module) {\n\n/**\n * Implements the API of ExposedJsApi.java, but uses prompt() to communicate.\n * This is used pre-JellyBean, where addJavascriptInterface() is disabled.\n */\n\nmodule.exports = {\n exec: function (bridgeSecret, service, action, callbackId, argsJson) {\n return prompt(argsJson, 'gap:' + JSON.stringify([bridgeSecret, service, action, callbackId]));\n },\n setNativeToJsBridgeMode: function (bridgeSecret, value) {\n prompt(value, 'gap_bridge_mode:' + bridgeSecret);\n },\n retrieveJsMessages: function (bridgeSecret, fromOnlineEvent) {\n return prompt(+fromOnlineEvent, 'gap_poll:' + bridgeSecret);\n }\n};\n\n});\n\n// file: src/common/argscheck.js\ndefine(\"cordova/argscheck\", function(require, exports, module) {\n\nvar utils = require('cordova/utils');\n\nvar moduleExports = module.exports;\n\nvar typeMap = {\n A: 'Array',\n D: 'Date',\n N: 'Number',\n S: 'String',\n F: 'Function',\n O: 'Object'\n};\n\nfunction extractParamName (callee, argIndex) {\n return (/\\(\\s*([^)]*?)\\s*\\)/).exec(callee)[1].split(/\\s*,\\s*/)[argIndex];\n}\n\n/**\n * Checks the given arguments' types and throws if they are not as expected.\n *\n * `spec` is a string where each character stands for the required type of the\n * argument at the same position. In other words: the character at `spec[i]`\n * specifies the required type for `args[i]`. The characters in `spec` are the\n * first letter of the required type's name. The supported types are:\n *\n * Array, Date, Number, String, Function, Object\n *\n * Lowercase characters specify arguments that must not be `null` or `undefined`\n * while uppercase characters allow those values to be passed.\n *\n * Finally, `*` can be used to allow any type at the corresponding position.\n *\n * @example\n * function foo (arr, opts) {\n * // require `arr` to be an Array and `opts` an Object, null or undefined\n * checkArgs('aO', 'my.package.foo', arguments);\n * // ...\n * }\n * @param {String} spec - the type specification for `args` as described above\n * @param {String} functionName - full name of the callee.\n * Used in the error message\n * @param {Array|arguments} args - the arguments to be checked against `spec`\n * @param {Function} [opt_callee=args.callee] - the recipient of `args`.\n * Used to extract parameter names for the error message\n * @throws {TypeError} if args do not satisfy spec\n */\nfunction checkArgs (spec, functionName, args, opt_callee) {\n if (!moduleExports.enableChecks) {\n return;\n }\n var errMsg = null;\n var typeName;\n for (var i = 0; i < spec.length; ++i) {\n var c = spec.charAt(i);\n var cUpper = c.toUpperCase();\n var arg = args[i];\n // Asterix means allow anything.\n if (c === '*') {\n continue;\n }\n typeName = utils.typeName(arg);\n if ((arg === null || arg === undefined) && c === cUpper) {\n continue;\n }\n if (typeName !== typeMap[cUpper]) {\n errMsg = 'Expected ' + typeMap[cUpper];\n break;\n }\n }\n if (errMsg) {\n errMsg += ', but got ' + typeName + '.';\n errMsg = 'Wrong type for parameter \"' + extractParamName(opt_callee || args.callee, i) + '\" of ' + functionName + ': ' + errMsg;\n // Don't log when running unit tests.\n if (typeof jasmine === 'undefined') {\n console.error(errMsg);\n }\n throw TypeError(errMsg);\n }\n}\n\nfunction getValue (value, defaultValue) {\n return value === undefined ? defaultValue : value;\n}\n\nmoduleExports.checkArgs = checkArgs;\nmoduleExports.getValue = getValue;\nmoduleExports.enableChecks = true;\n\n});\n\n// file: src/common/base64.js\ndefine(\"cordova/base64\", function(require, exports, module) {\n\nvar base64 = exports;\n\nbase64.fromArrayBuffer = function (arrayBuffer) {\n var array = new Uint8Array(arrayBuffer);\n return uint8ToBase64(array);\n};\n\nbase64.toArrayBuffer = function (str) {\n var decodedStr = atob(str);\n var arrayBuffer = new ArrayBuffer(decodedStr.length);\n var array = new Uint8Array(arrayBuffer);\n for (var i = 0, len = decodedStr.length; i < len; i++) {\n array[i] = decodedStr.charCodeAt(i);\n }\n return arrayBuffer;\n};\n\n// ------------------------------------------------------------------------------\n\n/* This code is based on the performance tests at http://jsperf.com/b64tests\n * This 12-bit-at-a-time algorithm was the best performing version on all\n * platforms tested.\n */\n\nvar b64_6bit = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\nvar b64_12bit;\n\nvar b64_12bitTable = function () {\n b64_12bit = [];\n for (var i = 0; i < 64; i++) {\n for (var j = 0; j < 64; j++) {\n b64_12bit[i * 64 + j] = b64_6bit[i] + b64_6bit[j];\n }\n }\n b64_12bitTable = function () { return b64_12bit; };\n return b64_12bit;\n};\n\nfunction uint8ToBase64 (rawData) {\n var numBytes = rawData.byteLength;\n var output = '';\n var segment;\n var table = b64_12bitTable();\n for (var i = 0; i < numBytes - 2; i += 3) {\n segment = (rawData[i] << 16) + (rawData[i + 1] << 8) + rawData[i + 2];\n output += table[segment >> 12];\n output += table[segment & 0xfff];\n }\n if (numBytes - i === 2) {\n segment = (rawData[i] << 16) + (rawData[i + 1] << 8);\n output += table[segment >> 12];\n output += b64_6bit[(segment & 0xfff) >> 6];\n output += '=';\n } else if (numBytes - i === 1) {\n segment = (rawData[i] << 16);\n output += table[segment >> 12];\n output += '==';\n }\n return output;\n}\n\n});\n\n// file: src/common/builder.js\ndefine(\"cordova/builder\", function(require, exports, module) {\n\nvar utils = require('cordova/utils');\n\nfunction each (objects, func, context) {\n for (var prop in objects) {\n if (Object.prototype.hasOwnProperty.call(objects, prop)) {\n func.apply(context, [objects[prop], prop]);\n }\n }\n}\n\nfunction clobber (obj, key, value) {\n var needsProperty = false;\n try {\n obj[key] = value;\n } catch (e) {\n needsProperty = true;\n }\n // Getters can only be overridden by getters.\n if (needsProperty || obj[key] !== value) {\n utils.defineGetter(obj, key, function () {\n return value;\n });\n }\n}\n\nfunction assignOrWrapInDeprecateGetter (obj, key, value, message) {\n if (message) {\n utils.defineGetter(obj, key, function () {\n console.log(message);\n delete obj[key];\n clobber(obj, key, value);\n return value;\n });\n } else {\n clobber(obj, key, value);\n }\n}\n\nfunction include (parent, objects, clobber, merge) {\n each(objects, function (obj, key) {\n try {\n var result = obj.path ? require(obj.path) : {};\n\n if (clobber) {\n // Clobber if it doesn't exist.\n if (typeof parent[key] === 'undefined') {\n assignOrWrapInDeprecateGetter(parent, key, result, obj.deprecated);\n } else if (typeof obj.path !== 'undefined') {\n // If merging, merge properties onto parent, otherwise, clobber.\n if (merge) {\n recursiveMerge(parent[key], result);\n } else {\n assignOrWrapInDeprecateGetter(parent, key, result, obj.deprecated);\n }\n }\n result = parent[key];\n } else {\n // Overwrite if not currently defined.\n if (typeof parent[key] === 'undefined') {\n assignOrWrapInDeprecateGetter(parent, key, result, obj.deprecated);\n } else {\n // Set result to what already exists, so we can build children into it if they exist.\n result = parent[key];\n }\n }\n\n if (obj.children) {\n include(result, obj.children, clobber, merge);\n }\n } catch (e) {\n utils.alert('Exception building Cordova JS globals: ' + e + ' for key \"' + key + '\"');\n }\n });\n}\n\n/**\n * Merge properties from one object onto another recursively. Properties from\n * the src object will overwrite existing target property.\n *\n * @param target Object to merge properties into.\n * @param src Object to merge properties from.\n */\nfunction recursiveMerge (target, src) {\n for (var prop in src) {\n if (Object.prototype.hasOwnProperty.call(src, prop)) {\n if (target.prototype && target.prototype.constructor === target) {\n // If the target object is a constructor override off prototype.\n clobber(target.prototype, prop, src[prop]);\n } else {\n if (typeof src[prop] === 'object' && typeof target[prop] === 'object') {\n recursiveMerge(target[prop], src[prop]);\n } else {\n clobber(target, prop, src[prop]);\n }\n }\n }\n }\n}\n\nexports.buildIntoButDoNotClobber = function (objects, target) {\n include(target, objects, false, false);\n};\nexports.buildIntoAndClobber = function (objects, target) {\n include(target, objects, true, false);\n};\nexports.buildIntoAndMerge = function (objects, target) {\n include(target, objects, true, true);\n};\nexports.recursiveMerge = recursiveMerge;\nexports.assignOrWrapInDeprecateGetter = assignOrWrapInDeprecateGetter;\n\n});\n\n// file: src/common/channel.js\ndefine(\"cordova/channel\", function(require, exports, module) {\n\nvar utils = require('cordova/utils');\nvar nextGuid = 1;\n\n/**\n * Custom pub-sub \"channel\" that can have functions subscribed to it\n * This object is used to define and control firing of events for\n * cordova initialization, as well as for custom events thereafter.\n *\n * The order of events during page load and Cordova startup is as follows:\n *\n * onDOMContentLoaded* Internal event that is received when the web page is loaded and parsed.\n * onNativeReady* Internal event that indicates the Cordova native side is ready.\n * onCordovaReady* Internal event fired when all Cordova JavaScript objects have been created.\n * onDeviceReady* User event fired to indicate that Cordova is ready\n * onResume User event fired to indicate a start/resume lifecycle event\n * onPause User event fired to indicate a pause lifecycle event\n *\n * The events marked with an * are sticky. Once they have fired, they will stay in the fired state.\n * All listeners that subscribe after the event is fired will be executed right away.\n *\n * The only Cordova events that user code should register for are:\n * deviceready Cordova native code is initialized and Cordova APIs can be called from JavaScript\n * pause App has moved to background\n * resume App has returned to foreground\n *\n * Listeners can be registered as:\n * document.addEventListener(\"deviceready\", myDeviceReadyListener, false);\n * document.addEventListener(\"resume\", myResumeListener, false);\n * document.addEventListener(\"pause\", myPauseListener, false);\n *\n * The DOM lifecycle events should be used for saving and restoring state\n * window.onload\n * window.onunload\n *\n */\n\n/**\n * Channel\n * @constructor\n * @param type String the channel name\n */\nvar Channel = function (type, sticky) {\n this.type = type;\n // Map of guid -> function.\n this.handlers = {};\n // 0 = Non-sticky, 1 = Sticky non-fired, 2 = Sticky fired.\n this.state = sticky ? 1 : 0;\n // Used in sticky mode to remember args passed to fire().\n this.fireArgs = null;\n // Used by onHasSubscribersChange to know if there are any listeners.\n this.numHandlers = 0;\n // Function that is called when the first listener is subscribed, or when\n // the last listener is unsubscribed.\n this.onHasSubscribersChange = null;\n};\nvar channel = {\n /**\n * Calls the provided function only after all of the channels specified\n * have been fired. All channels must be sticky channels.\n */\n join: function (h, c) {\n var len = c.length;\n var i = len;\n var f = function () {\n if (!(--i)) h();\n };\n for (var j = 0; j < len; j++) {\n if (c[j].state === 0) {\n throw Error('Can only use join with sticky channels.');\n }\n c[j].subscribe(f);\n }\n if (!len) h();\n },\n\n create: function (type) {\n return (channel[type] = new Channel(type, false));\n },\n createSticky: function (type) {\n return (channel[type] = new Channel(type, true));\n },\n\n /**\n * cordova Channels that must fire before \"deviceready\" is fired.\n */\n deviceReadyChannelsArray: [],\n deviceReadyChannelsMap: {},\n\n /**\n * Indicate that a feature needs to be initialized before it is ready to be used.\n * This holds up Cordova's \"deviceready\" event until the feature has been initialized\n * and Cordova.initComplete(feature) is called.\n *\n * @param feature {String} The unique feature name\n */\n waitForInitialization: function (feature) {\n if (feature) {\n var c = channel[feature] || this.createSticky(feature);\n this.deviceReadyChannelsMap[feature] = c;\n this.deviceReadyChannelsArray.push(c);\n }\n },\n\n /**\n * Indicate that initialization code has completed and the feature is ready to be used.\n *\n * @param feature {String} The unique feature name\n */\n initializationComplete: function (feature) {\n var c = this.deviceReadyChannelsMap[feature];\n if (c) {\n c.fire();\n }\n }\n};\n\nfunction checkSubscriptionArgument (argument) {\n if (typeof argument !== 'function' && typeof argument.handleEvent !== 'function') {\n throw new Error(\n 'Must provide a function or an EventListener object ' +\n 'implementing the handleEvent interface.'\n );\n }\n}\n\n/**\n * Subscribes the given function to the channel. Any time that\n * Channel.fire is called so too will the function.\n * Optionally specify an execution context for the function\n * and a guid that can be used to stop subscribing to the channel.\n * Returns the guid.\n */\nChannel.prototype.subscribe = function (eventListenerOrFunction, eventListener) {\n checkSubscriptionArgument(eventListenerOrFunction);\n var handleEvent, guid;\n\n if (eventListenerOrFunction && typeof eventListenerOrFunction === 'object') {\n // Received an EventListener object implementing the handleEvent interface\n handleEvent = eventListenerOrFunction.handleEvent;\n eventListener = eventListenerOrFunction;\n } else {\n // Received a function to handle event\n handleEvent = eventListenerOrFunction;\n }\n\n if (this.state === 2) {\n handleEvent.apply(eventListener || this, this.fireArgs);\n return;\n }\n\n guid = eventListenerOrFunction.observer_guid;\n if (typeof eventListener === 'object') {\n handleEvent = utils.close(eventListener, handleEvent);\n }\n\n if (!guid) {\n // First time any channel has seen this subscriber\n guid = '' + nextGuid++;\n }\n handleEvent.observer_guid = guid;\n eventListenerOrFunction.observer_guid = guid;\n\n // Don't add the same handler more than once.\n if (!this.handlers[guid]) {\n this.handlers[guid] = handleEvent;\n this.numHandlers++;\n if (this.numHandlers === 1) {\n this.onHasSubscribersChange && this.onHasSubscribersChange();\n }\n }\n};\n\n/**\n * Unsubscribes the function with the given guid from the channel.\n */\nChannel.prototype.unsubscribe = function (eventListenerOrFunction) {\n checkSubscriptionArgument(eventListenerOrFunction);\n var handleEvent, guid, handler;\n\n if (eventListenerOrFunction && typeof eventListenerOrFunction === 'object') {\n // Received an EventListener object implementing the handleEvent interface\n handleEvent = eventListenerOrFunction.handleEvent;\n } else {\n // Received a function to handle event\n handleEvent = eventListenerOrFunction;\n }\n\n guid = handleEvent.observer_guid;\n handler = this.handlers[guid];\n if (handler) {\n delete this.handlers[guid];\n this.numHandlers--;\n if (this.numHandlers === 0) {\n this.onHasSubscribersChange && this.onHasSubscribersChange();\n }\n }\n};\n\n/**\n * Calls all functions subscribed to this channel.\n */\nChannel.prototype.fire = function (e) {\n var fireArgs = Array.prototype.slice.call(arguments);\n // Apply stickiness.\n if (this.state === 1) {\n this.state = 2;\n this.fireArgs = fireArgs;\n }\n if (this.numHandlers) {\n // Copy the values first so that it is safe to modify it from within\n // callbacks.\n var toCall = [];\n for (var item in this.handlers) {\n toCall.push(this.handlers[item]);\n }\n for (var i = 0; i < toCall.length; ++i) {\n toCall[i].apply(this, fireArgs);\n }\n if (this.state === 2 && this.numHandlers) {\n this.numHandlers = 0;\n this.handlers = {};\n this.onHasSubscribersChange && this.onHasSubscribersChange();\n }\n }\n};\n\n// defining them here so they are ready super fast!\n// DOM event that is received when the web page is loaded and parsed.\nchannel.createSticky('onDOMContentLoaded');\n\n// Event to indicate the Cordova native side is ready.\nchannel.createSticky('onNativeReady');\n\n// Event to indicate that all Cordova JavaScript objects have been created\n// and it's time to run plugin constructors.\nchannel.createSticky('onCordovaReady');\n\n// Event to indicate that all automatically loaded JS plugins are loaded and ready.\n// FIXME remove this\nchannel.createSticky('onPluginsReady');\n\n// Event to indicate that Cordova is ready\nchannel.createSticky('onDeviceReady');\n\n// Event to indicate a resume lifecycle event\nchannel.create('onResume');\n\n// Event to indicate a pause lifecycle event\nchannel.create('onPause');\n\n// Channels that must fire before \"deviceready\" is fired.\nchannel.waitForInitialization('onCordovaReady');\nchannel.waitForInitialization('onDOMContentLoaded');\n\nmodule.exports = channel;\n\n});\n\n// file: ../cordova-android/cordova-js-src/exec.js\ndefine(\"cordova/exec\", function(require, exports, module) {\n\n/**\n * Execute a cordova command. It is up to the native side whether this action\n * is synchronous or asynchronous. The native side can return:\n * Synchronous: PluginResult object as a JSON string\n * Asynchronous: Empty string \"\"\n * If async, the native side will cordova.callbackSuccess or cordova.callbackError,\n * depending upon the result of the action.\n *\n * @param {Function} success The success callback\n * @param {Function} fail The fail callback\n * @param {String} service The name of the service to use\n * @param {String} action Action to be run in cordova\n * @param {String[]} [args] Zero or more arguments to pass to the method\n */\nvar cordova = require('cordova');\nvar nativeApiProvider = require('cordova/android/nativeapiprovider');\nvar utils = require('cordova/utils');\nvar base64 = require('cordova/base64');\nvar channel = require('cordova/channel');\nvar jsToNativeModes = {\n PROMPT: 0,\n JS_OBJECT: 1\n};\nvar nativeToJsModes = {\n // Polls for messages using the JS->Native bridge.\n POLLING: 0,\n // For LOAD_URL to be viable, it would need to have a work-around for\n // the bug where the soft-keyboard gets dismissed when a message is sent.\n LOAD_URL: 1,\n // For the ONLINE_EVENT to be viable, it would need to intercept all event\n // listeners (both through addEventListener and window.ononline) as well\n // as set the navigator property itself.\n ONLINE_EVENT: 2,\n EVAL_BRIDGE: 3\n};\nvar jsToNativeBridgeMode; // Set lazily.\nvar nativeToJsBridgeMode = nativeToJsModes.EVAL_BRIDGE;\nvar pollEnabled = false;\nvar bridgeSecret = -1;\n\nvar messagesFromNative = [];\nvar isProcessing = false;\nvar resolvedPromise = typeof Promise === 'undefined' ? null : Promise.resolve();\nvar nextTick = resolvedPromise ? function (fn) { resolvedPromise.then(fn); } : function (fn) { setTimeout(fn); };\n\nfunction androidExec (success, fail, service, action, args) {\n if (bridgeSecret < 0) {\n // If we ever catch this firing, we'll need to queue up exec()s\n // and fire them once we get a secret. For now, I don't think\n // it's possible for exec() to be called since plugins are parsed but\n // not run until until after onNativeReady.\n throw new Error('exec() called without bridgeSecret');\n }\n // Set default bridge modes if they have not already been set.\n // By default, we use the failsafe, since addJavascriptInterface breaks too often\n if (jsToNativeBridgeMode === undefined) {\n androidExec.setJsToNativeBridgeMode(jsToNativeModes.JS_OBJECT);\n }\n\n // If args is not provided, default to an empty array\n args = args || [];\n\n // Process any ArrayBuffers in the args into a string.\n for (var i = 0; i < args.length; i++) {\n if (utils.typeName(args[i]) === 'ArrayBuffer') {\n args[i] = base64.fromArrayBuffer(args[i]);\n }\n }\n\n var callbackId = service + cordova.callbackId++;\n var argsJson = JSON.stringify(args);\n if (success || fail) {\n cordova.callbacks[callbackId] = { success: success, fail: fail };\n }\n\n var msgs = nativeApiProvider.get().exec(bridgeSecret, service, action, callbackId, argsJson);\n // If argsJson was received by Java as null, try again with the PROMPT bridge mode.\n // This happens in rare circumstances, such as when certain Unicode characters are passed over the bridge on a Galaxy S2. See CB-2666.\n if (jsToNativeBridgeMode === jsToNativeModes.JS_OBJECT && msgs === '@Null arguments.') {\n androidExec.setJsToNativeBridgeMode(jsToNativeModes.PROMPT);\n androidExec(success, fail, service, action, args);\n androidExec.setJsToNativeBridgeMode(jsToNativeModes.JS_OBJECT);\n } else if (msgs) {\n messagesFromNative.push(msgs);\n // Always process async to avoid exceptions messing up stack.\n nextTick(processMessages);\n }\n}\n\nandroidExec.init = function () {\n bridgeSecret = +prompt('', 'gap_init:' + nativeToJsBridgeMode);\n channel.onNativeReady.fire();\n};\n\nfunction pollOnceFromOnlineEvent () {\n pollOnce(true);\n}\n\nfunction pollOnce (opt_fromOnlineEvent) {\n if (bridgeSecret < 0) {\n // This can happen when the NativeToJsMessageQueue resets the online state on page transitions.\n // We know there's nothing to retrieve, so no need to poll.\n return;\n }\n var msgs = nativeApiProvider.get().retrieveJsMessages(bridgeSecret, !!opt_fromOnlineEvent);\n if (msgs) {\n messagesFromNative.push(msgs);\n // Process sync since we know we're already top-of-stack.\n processMessages();\n }\n}\n\nfunction pollingTimerFunc () {\n if (pollEnabled) {\n pollOnce();\n setTimeout(pollingTimerFunc, 50);\n }\n}\n\nfunction hookOnlineApis () {\n function proxyEvent (e) {\n cordova.fireWindowEvent(e.type);\n }\n // The network module takes care of firing online and offline events.\n // It currently fires them only on document though, so we bridge them\n // to window here (while first listening for exec()-releated online/offline\n // events).\n window.addEventListener('online', pollOnceFromOnlineEvent, false);\n window.addEventListener('offline', pollOnceFromOnlineEvent, false);\n cordova.addWindowEventHandler('online');\n cordova.addWindowEventHandler('offline');\n document.addEventListener('online', proxyEvent, false);\n document.addEventListener('offline', proxyEvent, false);\n}\n\nhookOnlineApis();\n\nandroidExec.jsToNativeModes = jsToNativeModes;\nandroidExec.nativeToJsModes = nativeToJsModes;\n\nandroidExec.setJsToNativeBridgeMode = function (mode) {\n if (mode === jsToNativeModes.JS_OBJECT && !window._cordovaNative) {\n mode = jsToNativeModes.PROMPT;\n }\n nativeApiProvider.setPreferPrompt(mode === jsToNativeModes.PROMPT);\n jsToNativeBridgeMode = mode;\n};\n\nandroidExec.setNativeToJsBridgeMode = function (mode) {\n if (mode === nativeToJsBridgeMode) {\n return;\n }\n if (nativeToJsBridgeMode === nativeToJsModes.POLLING) {\n pollEnabled = false;\n }\n\n nativeToJsBridgeMode = mode;\n // Tell the native side to switch modes.\n // Otherwise, it will be set by androidExec.init()\n if (bridgeSecret >= 0) {\n nativeApiProvider.get().setNativeToJsBridgeMode(bridgeSecret, mode);\n }\n\n if (mode === nativeToJsModes.POLLING) {\n pollEnabled = true;\n setTimeout(pollingTimerFunc, 1);\n }\n};\n\nfunction buildPayload (payload, message) {\n var payloadKind = message.charAt(0);\n if (payloadKind === 's') {\n payload.push(message.slice(1));\n } else if (payloadKind === 't') {\n payload.push(true);\n } else if (payloadKind === 'f') {\n payload.push(false);\n } else if (payloadKind === 'N') {\n payload.push(null);\n } else if (payloadKind === 'n') {\n payload.push(+message.slice(1));\n } else if (payloadKind === 'A') {\n var data = message.slice(1);\n payload.push(base64.toArrayBuffer(data));\n } else if (payloadKind === 'S') {\n payload.push(window.atob(message.slice(1)));\n } else if (payloadKind === 'M') {\n var multipartMessages = message.slice(1);\n while (multipartMessages !== '') {\n var spaceIdx = multipartMessages.indexOf(' ');\n var msgLen = +multipartMessages.slice(0, spaceIdx);\n var multipartMessage = multipartMessages.substr(spaceIdx + 1, msgLen);\n multipartMessages = multipartMessages.slice(spaceIdx + msgLen + 1);\n buildPayload(payload, multipartMessage);\n }\n } else {\n payload.push(JSON.parse(message));\n }\n}\n\n// Processes a single message, as encoded by NativeToJsMessageQueue.java.\nfunction processMessage (message) {\n var firstChar = message.charAt(0);\n if (firstChar === 'J') {\n // This is deprecated on the .java side. It doesn't work with CSP enabled.\n // eslint-disable-next-line no-eval\n eval(message.slice(1));\n } else if (firstChar === 'S' || firstChar === 'F') {\n var success = firstChar === 'S';\n var keepCallback = message.charAt(1) === '1';\n var spaceIdx = message.indexOf(' ', 2);\n var status = +message.slice(2, spaceIdx);\n var nextSpaceIdx = message.indexOf(' ', spaceIdx + 1);\n var callbackId = message.slice(spaceIdx + 1, nextSpaceIdx);\n var payloadMessage = message.slice(nextSpaceIdx + 1);\n var payload = [];\n buildPayload(payload, payloadMessage);\n cordova.callbackFromNative(callbackId, success, status, payload, keepCallback);\n } else {\n console.log('processMessage failed: invalid message: ' + JSON.stringify(message));\n }\n}\n\nfunction processMessages () {\n // Check for the reentrant case.\n if (isProcessing) {\n return;\n }\n if (messagesFromNative.length === 0) {\n return;\n }\n isProcessing = true;\n try {\n var msg = popMessageFromQueue();\n // The Java side can send a * message to indicate that it\n // still has messages waiting to be retrieved.\n if (msg === '*' && messagesFromNative.length === 0) {\n nextTick(pollOnce);\n return;\n }\n processMessage(msg);\n } finally {\n isProcessing = false;\n if (messagesFromNative.length > 0) {\n nextTick(processMessages);\n }\n }\n}\n\nfunction popMessageFromQueue () {\n var messageBatch = messagesFromNative.shift();\n if (messageBatch === '*') {\n return '*';\n }\n\n var spaceIdx = messageBatch.indexOf(' ');\n var msgLen = +messageBatch.slice(0, spaceIdx);\n var message = messageBatch.substr(spaceIdx + 1, msgLen);\n messageBatch = messageBatch.slice(spaceIdx + msgLen + 1);\n if (messageBatch) {\n messagesFromNative.unshift(messageBatch);\n }\n return message;\n}\n\nmodule.exports = androidExec;\n\n});\n\n// file: src/common/exec/proxy.js\ndefine(\"cordova/exec/proxy\", function(require, exports, module) {\n\n// internal map of proxy function\nvar CommandProxyMap = {};\n\nmodule.exports = {\n\n // example: cordova.commandProxy.add(\"Accelerometer\",{getCurrentAcceleration: function(successCallback, errorCallback, options) {...},...);\n add: function (id, proxyObj) {\n console.log('adding proxy for ' + id);\n CommandProxyMap[id] = proxyObj;\n return proxyObj;\n },\n\n // cordova.commandProxy.remove(\"Accelerometer\");\n remove: function (id) {\n var proxy = CommandProxyMap[id];\n delete CommandProxyMap[id];\n CommandProxyMap[id] = null;\n return proxy;\n },\n\n get: function (service, action) {\n return (CommandProxyMap[service] ? CommandProxyMap[service][action] : null);\n }\n};\n\n});\n\n// file: src/common/init.js\ndefine(\"cordova/init\", function(require, exports, module) {\n\nvar channel = require('cordova/channel');\nvar cordova = require('cordova');\nvar modulemapper = require('cordova/modulemapper');\nvar platform = require('cordova/platform');\nvar pluginloader = require('cordova/pluginloader');\n\nvar platformInitChannelsArray = [channel.onNativeReady, channel.onPluginsReady];\n\nfunction logUnfiredChannels (arr) {\n for (var i = 0; i < arr.length; ++i) {\n if (arr[i].state !== 2) {\n console.log('Channel not fired: ' + arr[i].type);\n }\n }\n}\n\nwindow.setTimeout(function () {\n if (channel.onDeviceReady.state !== 2) {\n console.log('deviceready has not fired after 5 seconds.');\n logUnfiredChannels(platformInitChannelsArray);\n logUnfiredChannels(channel.deviceReadyChannelsArray);\n }\n}, 5000);\n\nif (!window.console) {\n window.console = {\n log: function () {}\n };\n}\nif (!window.console.warn) {\n window.console.warn = function (msg) {\n this.log('warn: ' + msg);\n };\n}\n\n// Register pause, resume and deviceready channels as events on document.\nchannel.onPause = cordova.addDocumentEventHandler('pause');\nchannel.onResume = cordova.addDocumentEventHandler('resume');\nchannel.onActivated = cordova.addDocumentEventHandler('activated');\nchannel.onDeviceReady = cordova.addStickyDocumentEventHandler('deviceready');\n\n// Listen for DOMContentLoaded and notify our channel subscribers.\nif (document.readyState === 'complete' || document.readyState === 'interactive') {\n channel.onDOMContentLoaded.fire();\n} else {\n document.addEventListener('DOMContentLoaded', function () {\n channel.onDOMContentLoaded.fire();\n }, false);\n}\n\n// _nativeReady is global variable that the native side can set\n// to signify that the native code is ready. It is a global since\n// it may be called before any cordova JS is ready.\nif (window._nativeReady) {\n channel.onNativeReady.fire();\n}\n\nmodulemapper.clobbers('cordova', 'cordova');\nmodulemapper.clobbers('cordova/exec', 'cordova.exec');\nmodulemapper.clobbers('cordova/exec', 'Cordova.exec');\n\n// Call the platform-specific initialization.\nplatform.bootstrap && platform.bootstrap();\n\n// Wrap in a setTimeout to support the use-case of having plugin JS appended to cordova.js.\n// The delay allows the attached modules to be defined before the plugin loader looks for them.\nsetTimeout(function () {\n pluginloader.load(function () {\n channel.onPluginsReady.fire();\n });\n}, 0);\n\n/**\n * Create all cordova objects once native side is ready.\n */\nchannel.join(function () {\n modulemapper.mapModules(window);\n\n platform.initialize && platform.initialize();\n\n // Fire event to notify that all objects are created\n channel.onCordovaReady.fire();\n\n // Fire onDeviceReady event once page has fully loaded, all\n // constructors have run and cordova info has been received from native\n // side.\n channel.join(function () {\n require('cordova').fireDocumentEvent('deviceready');\n }, channel.deviceReadyChannelsArray);\n}, platformInitChannelsArray);\n\n});\n\n// file: src/common/modulemapper.js\ndefine(\"cordova/modulemapper\", function(require, exports, module) {\n\nvar builder = require('cordova/builder');\nvar moduleMap = define.moduleMap;\nvar symbolList;\nvar deprecationMap;\n\nexports.reset = function () {\n symbolList = [];\n deprecationMap = {};\n};\n\nfunction addEntry (strategy, moduleName, symbolPath, opt_deprecationMessage) {\n if (!(moduleName in moduleMap)) {\n throw new Error('Module ' + moduleName + ' does not exist.');\n }\n symbolList.push(strategy, moduleName, symbolPath);\n if (opt_deprecationMessage) {\n deprecationMap[symbolPath] = opt_deprecationMessage;\n }\n}\n\n// Note: Android 2.3 does have Function.bind().\nexports.clobbers = function (moduleName, symbolPath, opt_deprecationMessage) {\n addEntry('c', moduleName, symbolPath, opt_deprecationMessage);\n};\n\nexports.merges = function (moduleName, symbolPath, opt_deprecationMessage) {\n addEntry('m', moduleName, symbolPath, opt_deprecationMessage);\n};\n\nexports.defaults = function (moduleName, symbolPath, opt_deprecationMessage) {\n addEntry('d', moduleName, symbolPath, opt_deprecationMessage);\n};\n\nexports.runs = function (moduleName) {\n addEntry('r', moduleName, null);\n};\n\nfunction prepareNamespace (symbolPath, context) {\n if (!symbolPath) {\n return context;\n }\n return symbolPath.split('.').reduce(function (cur, part) {\n return (cur[part] = cur[part] || {});\n }, context);\n}\n\nexports.mapModules = function (context) {\n var origSymbols = {};\n context.CDV_origSymbols = origSymbols;\n for (var i = 0, len = symbolList.length; i < len; i += 3) {\n var strategy = symbolList[i];\n var moduleName = symbolList[i + 1];\n var module = require(moduleName);\n // <runs/>\n if (strategy === 'r') {\n continue;\n }\n var symbolPath = symbolList[i + 2];\n var lastDot = symbolPath.lastIndexOf('.');\n var namespace = symbolPath.substr(0, lastDot);\n var lastName = symbolPath.substr(lastDot + 1);\n\n var deprecationMsg = symbolPath in deprecationMap ? 'Access made to deprecated symbol: ' + symbolPath + '. ' + deprecationMsg : null;\n var parentObj = prepareNamespace(namespace, context);\n var target = parentObj[lastName];\n\n if (strategy === 'm' && target) {\n builder.recursiveMerge(target, module);\n } else if ((strategy === 'd' && !target) || (strategy !== 'd')) {\n if (!(symbolPath in origSymbols)) {\n origSymbols[symbolPath] = target;\n }\n builder.assignOrWrapInDeprecateGetter(parentObj, lastName, module, deprecationMsg);\n }\n }\n};\n\nexports.getOriginalSymbol = function (context, symbolPath) {\n var origSymbols = context.CDV_origSymbols;\n if (origSymbols && (symbolPath in origSymbols)) {\n return origSymbols[symbolPath];\n }\n var parts = symbolPath.split('.');\n var obj = context;\n for (var i = 0; i < parts.length; ++i) {\n obj = obj && obj[parts[i]];\n }\n return obj;\n};\n\nexports.reset();\n\n});\n\n// file: ../cordova-android/cordova-js-src/platform.js\ndefine(\"cordova/platform\", function(require, exports, module) {\n\n// The last resume event that was received that had the result of a plugin call.\nvar lastResumeEvent = null;\n\nmodule.exports = {\n id: 'android',\n bootstrap: function () {\n var channel = require('cordova/channel');\n var cordova = require('cordova');\n var exec = require('cordova/exec');\n var modulemapper = require('cordova/modulemapper');\n\n // Get the shared secret needed to use the bridge.\n exec.init();\n\n // TODO: Extract this as a proper plugin.\n modulemapper.clobbers('cordova/plugin/android/app', 'navigator.app');\n\n var APP_PLUGIN_NAME = Number(cordova.platformVersion.split('.')[0]) >= 4 ? 'CoreAndroid' : 'App';\n\n // Inject a listener for the backbutton on the document.\n var backButtonChannel = cordova.addDocumentEventHandler('backbutton');\n backButtonChannel.onHasSubscribersChange = function () {\n // If we just attached the first handler or detached the last handler,\n // let native know we need to override the back button.\n exec(null, null, APP_PLUGIN_NAME, 'overrideBackbutton', [this.numHandlers === 1]);\n };\n\n // Add hardware MENU and SEARCH button handlers\n cordova.addDocumentEventHandler('menubutton');\n cordova.addDocumentEventHandler('searchbutton');\n\n function bindButtonChannel (buttonName) {\n // generic button bind used for volumeup/volumedown buttons\n var volumeButtonChannel = cordova.addDocumentEventHandler(buttonName + 'button');\n volumeButtonChannel.onHasSubscribersChange = function () {\n exec(null, null, APP_PLUGIN_NAME, 'overrideButton', [buttonName, this.numHandlers === 1]);\n };\n }\n // Inject a listener for the volume buttons on the document.\n bindButtonChannel('volumeup');\n bindButtonChannel('volumedown');\n\n // The resume event is not \"sticky\", but it is possible that the event\n // will contain the result of a plugin call. We need to ensure that the\n // plugin result is delivered even after the event is fired (CB-10498)\n var cordovaAddEventListener = document.addEventListener;\n\n document.addEventListener = function (evt, handler, capture) {\n cordovaAddEventListener(evt, handler, capture);\n\n if (evt === 'resume' && lastResumeEvent) {\n handler(lastResumeEvent);\n }\n };\n\n // Let native code know we are all done on the JS side.\n // Native code will then un-hide the WebView.\n channel.onCordovaReady.subscribe(function () {\n exec(onMessageFromNative, null, APP_PLUGIN_NAME, 'messageChannel', []);\n exec(null, null, APP_PLUGIN_NAME, 'show', []);\n });\n }\n};\n\nfunction onMessageFromNative (msg) {\n var cordova = require('cordova');\n var action = msg.action;\n\n switch (action) {\n // pause and resume are Android app life cycle events\n case 'backbutton':\n case 'menubutton':\n case 'searchbutton':\n case 'pause':\n case 'volumedownbutton':\n case 'volumeupbutton':\n cordova.fireDocumentEvent(action);\n break;\n case 'resume':\n if (arguments.length > 1 && msg.pendingResult) {\n if (arguments.length === 2) {\n msg.pendingResult.result = arguments[1];\n } else {\n // The plugin returned a multipart message\n var res = [];\n for (var i = 1; i < arguments.length; i++) {\n res.push(arguments[i]);\n }\n msg.pendingResult.result = res;\n }\n\n // Save the plugin result so that it can be delivered to the js\n // even if they miss the initial firing of the event\n lastResumeEvent = msg;\n }\n cordova.fireDocumentEvent(action, msg);\n break;\n default:\n throw new Error('Unknown event action ' + action);\n }\n}\n\n});\n\n// file: ../cordova-android/cordova-js-src/plugin/android/app.js\ndefine(\"cordova/plugin/android/app\", function(require, exports, module) {\n\nvar exec = require('cordova/exec');\nvar APP_PLUGIN_NAME = Number(require('cordova').platformVersion.split('.')[0]) >= 4 ? 'CoreAndroid' : 'App';\n\nmodule.exports = {\n /**\n * Clear the resource cache.\n */\n clearCache: function () {\n exec(null, null, APP_PLUGIN_NAME, 'clearCache', []);\n },\n\n /**\n * Load the url into the webview or into new browser instance.\n *\n * @param url The URL to load\n * @param props Properties that can be passed in to the activity:\n * wait: int => wait msec before loading URL\n * loadingDialog: \"Title,Message\" => display a native loading dialog\n * loadUrlTimeoutValue: int => time in msec to wait before triggering a timeout error\n * clearHistory: boolean => clear webview history (default=false)\n * openExternal: boolean => open in a new browser (default=false)\n *\n * Example:\n * navigator.app.loadUrl(\"http://server/myapp/index.html\", {wait:2000, loadingDialog:\"Wait,Loading App\", loadUrlTimeoutValue: 60000});\n */\n loadUrl: function (url, props) {\n exec(null, null, APP_PLUGIN_NAME, 'loadUrl', [url, props]);\n },\n\n /**\n * Cancel loadUrl that is waiting to be loaded.\n */\n cancelLoadUrl: function () {\n exec(null, null, APP_PLUGIN_NAME, 'cancelLoadUrl', []);\n },\n\n /**\n * Clear web history in this web view.\n * Instead of BACK button loading the previous web page, it will exit the app.\n */\n clearHistory: function () {\n exec(null, null, APP_PLUGIN_NAME, 'clearHistory', []);\n },\n\n /**\n * Go to previous page displayed.\n * This is the same as pressing the backbutton on Android device.\n */\n backHistory: function () {\n exec(null, null, APP_PLUGIN_NAME, 'backHistory', []);\n },\n\n /**\n * Override the default behavior of the Android back button.\n * If overridden, when the back button is pressed, the \"backKeyDown\" JavaScript event will be fired.\n *\n * Note: The user should not have to call this method. Instead, when the user\n * registers for the \"backbutton\" event, this is automatically done.\n *\n * @param override T=override, F=cancel override\n */\n overrideBackbutton: function (override) {\n exec(null, null, APP_PLUGIN_NAME, 'overrideBackbutton', [override]);\n },\n\n /**\n * Override the default behavior of the Android volume button.\n * If overridden, when the volume button is pressed, the \"volume[up|down]button\"\n * JavaScript event will be fired.\n *\n * Note: The user should not have to call this method. Instead, when the user\n * registers for the \"volume[up|down]button\" event, this is automatically done.\n *\n * @param button volumeup, volumedown\n * @param override T=override, F=cancel override\n */\n overrideButton: function (button, override) {\n exec(null, null, APP_PLUGIN_NAME, 'overrideButton', [button, override]);\n },\n\n /**\n * Exit and terminate the application.\n */\n exitApp: function () {\n return exec(null, null, APP_PLUGIN_NAME, 'exitApp', []);\n }\n};\n\n});\n\n// file: src/common/pluginloader.js\ndefine(\"cordova/pluginloader\", function(require, exports, module) {\n\nvar modulemapper = require('cordova/modulemapper');\n\n// Helper function to inject a <script> tag.\n// Exported for testing.\nexports.injectScript = function (url, onload, onerror) {\n var script = document.createElement('script');\n // onload fires even when script fails loads with an error.\n script.onload = onload;\n // onerror fires for malformed URLs.\n script.onerror = onerror;\n script.src = url;\n document.head.appendChild(script);\n};\n\nfunction injectIfNecessary (id, url, onload, onerror) {\n onerror = onerror || onload;\n if (id in define.moduleMap) {\n onload();\n } else {\n exports.injectScript(url, function () {\n if (id in define.moduleMap) {\n onload();\n } else {\n onerror();\n }\n }, onerror);\n }\n}\n\nfunction onScriptLoadingComplete (moduleList, finishPluginLoading) {\n // Loop through all the plugins and then through their clobbers and merges.\n for (var i = 0, module; (module = moduleList[i]); i++) {\n if (module.clobbers && module.clobbers.length) {\n for (var j = 0; j < module.clobbers.length; j++) {\n modulemapper.clobbers(module.id, module.clobbers[j]);\n }\n }\n\n if (module.merges && module.merges.length) {\n for (var k = 0; k < module.merges.length; k++) {\n modulemapper.merges(module.id, module.merges[k]);\n }\n }\n\n // Finally, if runs is truthy we want to simply require() the module.\n if (module.runs) {\n modulemapper.runs(module.id);\n }\n }\n\n finishPluginLoading();\n}\n\n// Handler for the cordova_plugins.js content.\n// See plugman's plugin_loader.js for the details of this object.\n// This function is only called if the really is a plugins array that isn't empty.\n// Otherwise the onerror response handler will just call finishPluginLoading().\nfunction handlePluginsObject (path, moduleList, finishPluginLoading) {\n // Now inject the scripts.\n var scriptCounter = moduleList.length;\n\n if (!scriptCounter) {\n finishPluginLoading();\n return;\n }\n function scriptLoadedCallback () {\n if (!--scriptCounter) {\n onScriptLoadingComplete(moduleList, finishPluginLoading);\n }\n }\n\n for (var i = 0; i < moduleList.length; i++) {\n injectIfNecessary(moduleList[i].id, path + moduleList[i].file, scriptLoadedCallback);\n }\n}\n\nfunction findCordovaPath () {\n var path = null;\n var scripts = document.getElementsByTagName('script');\n var term = '/cordova.js';\n for (var n = scripts.length - 1; n > -1; n--) {\n var src = scripts[n].src.replace(/\\?.*$/, ''); // Strip any query param (CB-6007).\n if (src.indexOf(term) === (src.length - term.length)) {\n path = src.substring(0, src.length - term.length) + '/';\n break;\n }\n }\n return path;\n}\n\n// Tries to load all plugins' js-modules.\n// This is an async process, but onDeviceReady is blocked on onPluginsReady.\n// onPluginsReady is fired when there are no plugins to load, or they are all done.\nexports.load = function (callback) {\n var pathPrefix = findCordovaPath();\n if (pathPrefix === null) {\n console.log('Could not find cordova.js script tag. Plugin loading may fail.');\n pathPrefix = '';\n }\n injectIfNecessary('cordova/plugin_list', pathPrefix + 'cordova_plugins.js', function () {\n var moduleList = require('cordova/plugin_list');\n handlePluginsObject(pathPrefix, moduleList, callback);\n }, callback);\n};\n\n});\n\n// file: src/common/urlutil.js\ndefine(\"cordova/urlutil\", function(require, exports, module) {\n\n/**\n * For already absolute URLs, returns what is passed in.\n * For relative URLs, converts them to absolute ones.\n */\nexports.makeAbsolute = function makeAbsolute (url) {\n var anchorEl = document.createElement('a');\n anchorEl.href = url;\n return anchorEl.href;\n};\n\n});\n\n// file: src/common/utils.js\ndefine(\"cordova/utils\", function(require, exports, module) {\n\nvar utils = exports;\n\n/**\n * Defines a property getter / setter for obj[key].\n */\nutils.defineGetterSetter = function (obj, key, getFunc, opt_setFunc) {\n if (Object.defineProperty) {\n var desc = {\n get: getFunc,\n configurable: true\n };\n if (opt_setFunc) {\n desc.set = opt_setFunc;\n }\n Object.defineProperty(obj, key, desc);\n } else {\n obj.__defineGetter__(key, getFunc);\n if (opt_setFunc) {\n obj.__defineSetter__(key, opt_setFunc);\n }\n }\n};\n\n/**\n * Defines a property getter for obj[key].\n */\nutils.defineGetter = utils.defineGetterSetter;\n\nutils.arrayIndexOf = function (a, item) {\n if (a.indexOf) {\n return a.indexOf(item);\n }\n var len = a.length;\n for (var i = 0; i < len; ++i) {\n if (a[i] === item) {\n return i;\n }\n }\n return -1;\n};\n\n/**\n * Returns whether the item was found in the array.\n */\nutils.arrayRemove = function (a, item) {\n var index = utils.arrayIndexOf(a, item);\n if (index !== -1) {\n a.splice(index, 1);\n }\n return index !== -1;\n};\n\nutils.typeName = function (val) {\n return Object.prototype.toString.call(val).slice(8, -1);\n};\n\n/**\n * Returns an indication of whether the argument is an array or not\n */\nutils.isArray = Array.isArray ||\n function (a) { return utils.typeName(a) === 'Array'; };\n\n/**\n * Returns an indication of whether the argument is a Date or not\n */\nutils.isDate = function (d) {\n return (d instanceof Date);\n};\n\n/**\n * Does a deep clone of the object.\n */\nutils.clone = function (obj) {\n if (!obj || typeof obj === 'function' || utils.isDate(obj) || typeof obj !== 'object') {\n return obj;\n }\n\n var retVal, i;\n\n if (utils.isArray(obj)) {\n retVal = [];\n for (i = 0; i < obj.length; ++i) {\n retVal.push(utils.clone(obj[i]));\n }\n return retVal;\n }\n\n retVal = {};\n for (i in obj) {\n // 'unknown' type may be returned in custom protocol activation case on\n // Windows Phone 8.1 causing \"No such interface supported\" exception on\n // cloning (https://issues.apache.org/jira/browse/CB-11522)\n // eslint-disable-next-line valid-typeof\n if ((!(i in retVal) || retVal[i] !== obj[i]) && typeof obj[i] !== 'undefined' && typeof obj[i] !== 'unknown') {\n retVal[i] = utils.clone(obj[i]);\n }\n }\n return retVal;\n};\n\n/**\n * Returns a wrapped version of the function\n */\nutils.close = function (context, func, params) {\n return function () {\n var args = params || arguments;\n return func.apply(context, args);\n };\n};\n\n// ------------------------------------------------------------------------------\nfunction UUIDcreatePart (length) {\n var uuidpart = '';\n for (var i = 0; i < length; i++) {\n var uuidchar = parseInt((Math.random() * 256), 10).toString(16);\n if (uuidchar.length === 1) {\n uuidchar = '0' + uuidchar;\n }\n uuidpart += uuidchar;\n }\n return uuidpart;\n}\n\n/**\n * Create a UUID\n */\nutils.createUUID = function () {\n return UUIDcreatePart(4) + '-' +\n UUIDcreatePart(2) + '-' +\n UUIDcreatePart(2) + '-' +\n UUIDcreatePart(2) + '-' +\n UUIDcreatePart(6);\n};\n\n/**\n * Extends a child object from a parent object using classical inheritance\n * pattern.\n */\nutils.extend = (function () {\n // proxy used to establish prototype chain\n var F = function () {};\n // extend Child from Parent\n return function (Child, Parent) {\n F.prototype = Parent.prototype;\n Child.prototype = new F();\n Child.__super__ = Parent.prototype;\n Child.prototype.constructor = Child;\n };\n}());\n\n/**\n * Alerts a message in any available way: alert or console.log.\n */\nutils.alert = function (msg) {\n if (window.alert) {\n window.alert(msg);\n } else if (console && console.log) {\n console.log(msg);\n }\n};\n\n});\n\nwindow.cordova = require('cordova');\n// file: src/scripts/bootstrap.js\nrequire('cordova/init');\n\n})();\n"],"sourceRoot":"webpack:///"} \ No newline at end of file diff --git a/ionic/www/cordova_plugins.js b/ionic/www/cordova_plugins.js deleted file mode 100644 index ac1888f6fb97e9a2603e2e909eec8fe5bc8e6266..0000000000000000000000000000000000000000 --- a/ionic/www/cordova_plugins.js +++ /dev/null @@ -1,52 +0,0 @@ -cordova.define('cordova/plugin_list', function(require, exports, module) { - module.exports = [ - { - "id": "cordova-plugin-statusbar.statusbar", - "file": "plugins/cordova-plugin-statusbar/www/statusbar.js", - "pluginId": "cordova-plugin-statusbar", - "clobbers": [ - "window.StatusBar" - ] - }, - { - "id": "cordova-plugin-device.device", - "file": "plugins/cordova-plugin-device/www/device.js", - "pluginId": "cordova-plugin-device", - "clobbers": [ - "device" - ] - }, - { - "id": "cordova-plugin-splashscreen.SplashScreen", - "file": "plugins/cordova-plugin-splashscreen/www/splashscreen.js", - "pluginId": "cordova-plugin-splashscreen", - "clobbers": [ - "navigator.splashscreen" - ] - }, - { - "id": "cordova-plugin-ionic-webview.IonicWebView", - "file": "plugins/cordova-plugin-ionic-webview/src/www/util.js", - "pluginId": "cordova-plugin-ionic-webview", - "clobbers": [ - "Ionic.WebView" - ] - }, - { - "id": "cordova-plugin-ionic-keyboard.keyboard", - "file": "plugins/cordova-plugin-ionic-keyboard/www/android/keyboard.js", - "pluginId": "cordova-plugin-ionic-keyboard", - "clobbers": [ - "window.Keyboard" - ] - } - ]; - module.exports.metadata = { - "cordova-plugin-whitelist": "1.3.3", - "cordova-plugin-statusbar": "2.4.2", - "cordova-plugin-device": "2.0.2", - "cordova-plugin-splashscreen": "5.0.2", - "cordova-plugin-ionic-webview": "4.2.1", - "cordova-plugin-ionic-keyboard": "2.2.0" - }; -}); \ No newline at end of file diff --git a/ionic/www/gestion-groupe-gestion-groupe-module-es2015.js b/ionic/www/gestion-groupe-gestion-groupe-module-es2015.js new file mode 100644 index 0000000000000000000000000000000000000000..90fba076a4ad16bf34addc31257226b975082e62 --- /dev/null +++ b/ionic/www/gestion-groupe-gestion-groupe-module-es2015.js @@ -0,0 +1,339 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([["gestion-groupe-gestion-groupe-module"],{ + +/***/ "./node_modules/raw-loader/dist/cjs.js!./src/app/gestion-groupe/gestion-groupe.page.html": +/*!***********************************************************************************************!*\ + !*** ./node_modules/raw-loader/dist/cjs.js!./src/app/gestion-groupe/gestion-groupe.page.html ***! + \***********************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony default export */ __webpack_exports__["default"] = ("<ion-header class=\"ion-margin-top ion-margin-bottom\">\n <ion-toolbar>\n <ion-title size=\"large\">Gestion du groupe</ion-title>\n </ion-toolbar>\n <ion-toolbar>\n <ion-buttons slot=\"start\">\n <ion-back-button text=\"Retour\" defaultHref=\"/conversation/{{ groupe._id }}\"></ion-back-button>\n </ion-buttons>\n </ion-toolbar>\n</ion-header>\n\n<ion-content padding>\n <form class=\"form_login\" #form=\"ngForm\">\n <ion-grid>\n <ion-row class=\"ion-justify-content-center\">\n <ion-col class=\"align-self-center\" size-md=\"6\" size-lg=\"5\" size-xs=\"12\">\n <div class=\"ion-padding\">\n <ion-item>\n <ion-input name=\"name\" type=\"text\" placeholder=\"Nom du groupe\" ngModel value=\"{{ groupe.name }}\"></ion-input>\n </ion-item>\n <ion-item>\n <ion-input name=\"description\" type=\"text\" placeholder=\"Description du groupe\" ngModel value=\"{{ groupe.description }}\"></ion-input>\n </ion-item>\n <ion-item>\n <ion-label>Utilisateurs</ion-label>\n <ion-select name=\"utilisateurs\" multiple=\"true\" [(ngModel)]=\"usersSelected\" [value]=\"users\">\n <ion-select-option *ngFor=\"let user of users\" value=\"{{user._id}}\">{{user.username}}</ion-select-option>\n </ion-select>\n </ion-item>\n </div>\n <div class=\"ion-padding\">\n <ion-button size=\"large\" type=\"submit\" [disabled]=\"form.invalid\" expand=\"block\" (click)=\"modifGroupe(form)\">Modifier</ion-button>\n </div>\n </ion-col>\n </ion-row>\n </ion-grid>\n </form>\n</ion-content>\n"); + +/***/ }), + +/***/ "./src/app/gestion-groupe/gestion-groupe-routing.module.ts": +/*!*****************************************************************!*\ + !*** ./src/app/gestion-groupe/gestion-groupe-routing.module.ts ***! + \*****************************************************************/ +/*! exports provided: GestionGroupePageRoutingModule */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GestionGroupePageRoutingModule", function() { return GestionGroupePageRoutingModule; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js"); +/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/router */ "./node_modules/@angular/router/__ivy_ngcc__/fesm2015/router.js"); +/* harmony import */ var _gestion_groupe_page__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./gestion-groupe.page */ "./src/app/gestion-groupe/gestion-groupe.page.ts"); + + + + +const routes = [ + { + path: '', + component: _gestion_groupe_page__WEBPACK_IMPORTED_MODULE_3__["GestionGroupePage"] + } +]; +let GestionGroupePageRoutingModule = class GestionGroupePageRoutingModule { +}; +GestionGroupePageRoutingModule = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ + Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["NgModule"])({ + imports: [_angular_router__WEBPACK_IMPORTED_MODULE_2__["RouterModule"].forChild(routes)], + exports: [_angular_router__WEBPACK_IMPORTED_MODULE_2__["RouterModule"]], + }) +], GestionGroupePageRoutingModule); + + + +/***/ }), + +/***/ "./src/app/gestion-groupe/gestion-groupe.module.ts": +/*!*********************************************************!*\ + !*** ./src/app/gestion-groupe/gestion-groupe.module.ts ***! + \*********************************************************/ +/*! exports provided: GestionGroupePageModule */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GestionGroupePageModule", function() { return GestionGroupePageModule; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js"); +/* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/common */ "./node_modules/@angular/common/__ivy_ngcc__/fesm2015/common.js"); +/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/forms */ "./node_modules/@angular/forms/__ivy_ngcc__/fesm2015/forms.js"); +/* harmony import */ var _ionic_angular__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @ionic/angular */ "./node_modules/@ionic/angular/__ivy_ngcc__/fesm2015/ionic-angular.js"); +/* harmony import */ var _gestion_groupe_routing_module__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./gestion-groupe-routing.module */ "./src/app/gestion-groupe/gestion-groupe-routing.module.ts"); +/* harmony import */ var _gestion_groupe_page__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./gestion-groupe.page */ "./src/app/gestion-groupe/gestion-groupe.page.ts"); + + + + + + + +let GestionGroupePageModule = class GestionGroupePageModule { +}; +GestionGroupePageModule = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ + Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["NgModule"])({ + imports: [ + _angular_common__WEBPACK_IMPORTED_MODULE_2__["CommonModule"], + _angular_forms__WEBPACK_IMPORTED_MODULE_3__["FormsModule"], + _ionic_angular__WEBPACK_IMPORTED_MODULE_4__["IonicModule"], + _gestion_groupe_routing_module__WEBPACK_IMPORTED_MODULE_5__["GestionGroupePageRoutingModule"] + ], + declarations: [_gestion_groupe_page__WEBPACK_IMPORTED_MODULE_6__["GestionGroupePage"]] + }) +], GestionGroupePageModule); + + + +/***/ }), + +/***/ "./src/app/gestion-groupe/gestion-groupe.page.scss": +/*!*********************************************************!*\ + !*** ./src/app/gestion-groupe/gestion-groupe.page.scss ***! + \*********************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony default export */ __webpack_exports__["default"] = ("\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2dlc3Rpb24tZ3JvdXBlL2dlc3Rpb24tZ3JvdXBlLnBhZ2Uuc2NzcyJ9 */"); + +/***/ }), + +/***/ "./src/app/gestion-groupe/gestion-groupe.page.ts": +/*!*******************************************************!*\ + !*** ./src/app/gestion-groupe/gestion-groupe.page.ts ***! + \*******************************************************/ +/*! exports provided: GestionGroupePage */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GestionGroupePage", function() { return GestionGroupePage; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js"); +/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/router */ "./node_modules/@angular/router/__ivy_ngcc__/fesm2015/router.js"); +/* harmony import */ var _services_gestion_groupe_service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../services/gestion-groupe.service */ "./src/app/services/gestion-groupe.service.ts"); + + + + + +let GestionGroupePage = class GestionGroupePage { + constructor(activatedRoute, router, gestionGroupeService) { + this.activatedRoute = activatedRoute; + this.router = router; + this.gestionGroupeService = gestionGroupeService; + this.groupe = { + id: 0, + name: "", + description: "", + }; + this.users = []; + this.usersTempo; + this.usersSelected = []; + this.defaultusersSelected = []; + } + ngOnInit() { + this.id = this.activatedRoute.snapshot.paramMap.get('id'); + this.idUser = JSON.parse(localStorage.getItem('user')).id; + this.getGroupe(); + this.getUsers(); + } + modifGroupe(form) { + let addUser = []; + let removeUser = []; + let name = form.value.name; + let description = form.value.description; + if (Array.isArray(this.usersSelected)) { + this.usersSelected.forEach((element) => { + addUser.push(element); + }); + } + console.log("Add user : " + JSON.stringify(addUser)); + if (Array.isArray(this.defaultusersSelected)) { + this.defaultusersSelected.forEach((element) => { + //On vérifie si les utilisateurs qui étaient selectionné le sont toujours + let stop = false; + let i = 0; + while (i < addUser.length && !stop) { + let aUser = addUser[i]; + if (aUser === element) { + stop = true; + } + i++; + } + if (!stop) { + removeUser.push(element); + } + }); + } + if (addUser.length > 0) + this.gestionGroupeService.addUser(this.id, addUser).subscribe(data => this.router.navigate(['/conversation/' + this.id])); + if (removeUser.length > 0) + this.gestionGroupeService.removeUser(this.id, removeUser).subscribe(data => this.router.navigate(['/conversation/' + this.id])); + let body = { + "name": name, + "description": description, + "users": this.usersSelected + }; + this.gestionGroupeService.updateGroupe(this.id, body).subscribe(data => this.router.navigate(['/conversation/' + this.id])); + } + getGroupe() { + this.gestionGroupeService.getGroupe(this.id).subscribe(data => { + let groups = data.reverse(); + if (Array.isArray(groups)) { + groups.forEach((groupe) => { + if (groupe._id === this.id) { + this.groupe = groupe; + } + }); + } + }); + } + getUsers() { + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function* () { + yield this.gestionGroupeService.getAllUsers().subscribe(data => { + this.usersTempo = data.reverse(); + }); + yield this.gestionGroupeService.getUsers(this.id).subscribe(data => { + let currentUsers = data.reverse(); + if (Array.isArray(this.usersTempo)) { + this.usersTempo.forEach((element, index) => { + if (element._id !== this.idUser) { + if (Array.isArray(currentUsers)) { + let stop = false; + let i = 0; + while (i < currentUsers.length && !stop) { + let curUser = currentUsers[i]; + if (element._id === curUser._id) { + this.users.push(element); + this.usersSelected.push(element._id); + stop = true; + } + i++; + } + if (!stop) { + this.users.push(element); + } + } + } + }); + } + this.defaultusersSelected = this.usersSelected; + }); + }); + } +}; +GestionGroupePage.ctorParameters = () => [ + { type: _angular_router__WEBPACK_IMPORTED_MODULE_2__["ActivatedRoute"] }, + { type: _angular_router__WEBPACK_IMPORTED_MODULE_2__["Router"] }, + { type: _services_gestion_groupe_service__WEBPACK_IMPORTED_MODULE_3__["GestionGroupeService"] } +]; +GestionGroupePage = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ + Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({ + selector: 'app-gestion-groupe', + template: Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"])(__webpack_require__(/*! raw-loader!./gestion-groupe.page.html */ "./node_modules/raw-loader/dist/cjs.js!./src/app/gestion-groupe/gestion-groupe.page.html")).default, + styles: [Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"])(__webpack_require__(/*! ./gestion-groupe.page.scss */ "./src/app/gestion-groupe/gestion-groupe.page.scss")).default] + }) +], GestionGroupePage); + + + +/***/ }), + +/***/ "./src/app/services/gestion-groupe.service.ts": +/*!****************************************************!*\ + !*** ./src/app/services/gestion-groupe.service.ts ***! + \****************************************************/ +/*! exports provided: GestionGroupeService */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GestionGroupeService", function() { return GestionGroupeService; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); +/* harmony import */ var _angular_common_http__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/common/http */ "./node_modules/@angular/common/__ivy_ngcc__/fesm2015/http.js"); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js"); +/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! rxjs/operators */ "./node_modules/rxjs/_esm2015/operators/index.js"); +/* harmony import */ var _global_service__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../global.service */ "./src/app/global.service.ts"); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! rxjs */ "./node_modules/rxjs/_esm2015/index.js"); + + + + + + + +let GestionGroupeService = class GestionGroupeService { + constructor(http, global) { + this.http = http; + this.global = global; + } + updateGroupe(id, body) { + return this.http.put(`${this.global.apiRoot}/rooms/` + id, body, this.global.getHeaderHttpPostConnected()).pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["map"])(results => { + console.log('get : ' + results); + return results; + }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["catchError"])(err => Object(rxjs__WEBPACK_IMPORTED_MODULE_5__["of"])(err))); + } + getGroupe(id) { + return this.http.get(`${this.global.apiRoot}/rooms`, this.global.getHeaderHttpPostConnected()).pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["map"])(results => { + console.log('get : ' + results); + return results; + }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["catchError"])(err => Object(rxjs__WEBPACK_IMPORTED_MODULE_5__["of"])(err))); + } + addUser(id, ids) { + let body = { + 'ids': ids, + }; + return this.http.post(`${this.global.apiRoot}/rooms/` + id + "/add_users", body, this.global.getHeaderHttpPostConnected()).pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["map"])(results => { + console.log('post : ' + results); + return results; + }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["catchError"])((err) => { + return Object(rxjs__WEBPACK_IMPORTED_MODULE_5__["of"])(err); + })); + } + removeUser(id, ids) { + let body = { + 'ids': ids, + }; + console.log(ids); + return this.http.post(`${this.global.apiRoot}/rooms/` + id + "/remove_users", body, this.global.getHeaderHttpPostConnected()).pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["map"])(results => { + console.log('post : ' + results); + return results; + }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["catchError"])(err => Object(rxjs__WEBPACK_IMPORTED_MODULE_5__["of"])(err))); + } + getUsers(id) { + return this.http.get(`${this.global.apiRoot}/rooms/` + id + "/users", this.global.getHeaderHttpPostConnected()).pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["map"])(results => { + console.log('get : ' + results); + return results; + }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["catchError"])(err => Object(rxjs__WEBPACK_IMPORTED_MODULE_5__["of"])(err))); + } + getAllUsers() { + return this.http.get(`${this.global.apiRoot}/users`, this.global.getHeaderHttpPostConnected()).pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["map"])(results => { + console.log('get : ' + results); + return results; + }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["catchError"])(err => Object(rxjs__WEBPACK_IMPORTED_MODULE_5__["of"])(err))); + } +}; +GestionGroupeService.ctorParameters = () => [ + { type: _angular_common_http__WEBPACK_IMPORTED_MODULE_1__["HttpClient"] }, + { type: _global_service__WEBPACK_IMPORTED_MODULE_4__["GlobalService"] } +]; +GestionGroupeService = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ + Object(_angular_core__WEBPACK_IMPORTED_MODULE_2__["Injectable"])({ + providedIn: 'root' + }) +], GestionGroupeService); + + + +/***/ }) + +}]); +//# sourceMappingURL=gestion-groupe-gestion-groupe-module-es2015.js.map \ No newline at end of file diff --git a/ionic/www/gestion-groupe-gestion-groupe-module-es2015.js.map b/ionic/www/gestion-groupe-gestion-groupe-module-es2015.js.map new file mode 100644 index 0000000000000000000000000000000000000000..6a8a0ff8ad08c085c586f092e49641177a8fb505 --- /dev/null +++ b/ionic/www/gestion-groupe-gestion-groupe-module-es2015.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["./src/app/gestion-groupe/gestion-groupe.page.html","./src/app/gestion-groupe/gestion-groupe-routing.module.ts","./src/app/gestion-groupe/gestion-groupe.module.ts","./src/app/gestion-groupe/gestion-groupe.page.scss","./src/app/gestion-groupe/gestion-groupe.page.ts","./src/app/services/gestion-groupe.service.ts"],"names":[],"mappings":";;;;;;;;;;AAAA;AAAe,iVAAkR,cAAc,ydAAyd,eAAe,sLAAsL,sBAAsB,qTAAqT,UAAU,KAAK,eAAe,mYAAmY,E;;;;;;;;;;;;;;;;;;;ACAhpD;AACc;AAEG;AAE1D,MAAM,MAAM,GAAW;IACrB;QACE,IAAI,EAAE,EAAE;QACR,SAAS,EAAE,sEAAiB;KAC7B;CACF,CAAC;IAMW,8BAA8B,SAA9B,8BAA8B;CAAG;AAAjC,8BAA8B;IAJ1C,8DAAQ,CAAC;QACR,OAAO,EAAE,CAAC,4DAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACxC,OAAO,EAAE,CAAC,4DAAY,CAAC;KACxB,CAAC;GACW,8BAA8B,CAAG;AAAH;;;;;;;;;;;;;;;;;;;;;;;AChBF;AACM;AACF;AAEA;AAEoC;AAEvB;IAW7C,uBAAuB,SAAvB,uBAAuB;CAAG;AAA1B,uBAAuB;IATnC,8DAAQ,CAAC;QACR,OAAO,EAAE;YACP,4DAAY;YACZ,0DAAW;YACX,0DAAW;YACX,6FAA8B;SAC/B;QACD,YAAY,EAAE,CAAC,sEAAiB,CAAC;KAClC,CAAC;GACW,uBAAuB,CAAG;AAAH;;;;;;;;;;;;;ACnBpC;AAAe,6GAA8C,2JAA2J,E;;;;;;;;;;;;;;;;;;;ACAtK;AACD;AACyB;AACjC;IAO5B,iBAAiB,SAAjB,iBAAiB;IAW5B,YAAoB,cAA8B,EAAU,MAAc,EAAU,oBAA0C;QAA1G,mBAAc,GAAd,cAAc,CAAgB;QAAU,WAAM,GAAN,MAAM,CAAQ;QAAU,yBAAoB,GAApB,oBAAoB,CAAsB;QAC5H,IAAI,CAAC,MAAM,GAAG;YACZ,EAAE,EAAE,CAAC;YACL,IAAI,EAAE,EAAE;YACR,WAAW,EAAE,EAAE;SAChB;QAED,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,UAAU,CAAC;QAChB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC;IACjC,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC1D,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1D,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;IAED,WAAW,CAAC,IAAI;QACd,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,IAAI,UAAU,GAAG,EAAE,CAAC;QACpB,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;QAC3B,IAAI,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;QAEzC,IAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,EAAC;YACnC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBACnC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC1B,CAAC,CAAC;SACH;QAED,OAAO,CAAC,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;QAErD,IAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,EAAC;YAC1C,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC5C,yEAAyE;gBACzE,IAAI,IAAI,GAAG,KAAK,CAAC;gBACjB,IAAI,CAAC,GAAG,CAAC,CAAC;gBACV,OAAM,CAAC,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,EAAC;oBAChC,IAAI,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;oBACvB,IAAG,KAAK,KAAK,OAAO,EAAC;wBACnB,IAAI,GAAG,IAAI,CAAC;qBACb;oBACD,CAAC,EAAE,CAAC;iBACL;gBACD,IAAG,CAAC,IAAI,EAAC;oBACP,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;iBAC1B;YACH,CAAC,CAAC;SACH;QACD,IAAG,OAAO,CAAC,MAAM,GAAG,CAAC;YAAE,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAC,OAAO,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,gBAAgB,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAChJ,IAAG,UAAU,CAAC,MAAM,GAAG,CAAC;YAAE,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,EAAC,UAAU,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,gBAAgB,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAEzJ,IAAI,IAAI,GAAG;YACT,MAAM,EAAE,IAAI;YACZ,aAAa,EAAE,WAAW;YAC1B,OAAO,EAAE,IAAI,CAAC,aAAa;SAC5B;QACD,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,EAAC,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,gBAAgB,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7H,CAAC;IAED,SAAS;QACP,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YAC5D,IAAI,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;YAC5B,IAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAC;gBACvB,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;oBACxB,IAAG,MAAM,CAAC,GAAG,KAAK,IAAI,CAAC,EAAE,EAAC;wBACxB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;qBACtB;gBACH,CAAC,CAAC;aACH;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEK,QAAQ;;YACZ,MAAM,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;gBAC7D,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;YACnC,CAAC,CAAC;YACF,MAAM,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;gBACjE,IAAI,YAAY,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;gBAClC,IAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAC;oBAChC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,OAAO,EAAC,KAAK,EAAE,EAAE;wBACxC,IAAG,OAAO,CAAC,GAAG,KAAK,IAAI,CAAC,MAAM,EAAC;4BAC7B,IAAG,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAC;gCAC7B,IAAI,IAAI,GAAG,KAAK,CAAC;gCACjB,IAAI,CAAC,GAAG,CAAC,CAAC;gCACV,OAAM,CAAC,GAAC,YAAY,CAAC,MAAM,IAAI,CAAC,IAAI,EAAC;oCACnC,IAAI,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;oCAC5B,IAAG,OAAO,CAAC,GAAG,KAAK,OAAO,CAAC,GAAG,EAAC;wCAC7B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;wCACzB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;wCACrC,IAAI,GAAG,IAAI,CAAC;qCACb;oCACH,CAAC,EAAE,CAAC;iCACL;gCACD,IAAG,CAAC,IAAI,EAAC;oCACP,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;iCAC1B;6BACF;yBACF;oBACH,CAAC,CAAC;iBACH;gBACD,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,aAAa,CAAC;YACjD,CAAC,CAAC;QACJ,CAAC;KAAA;CACF;;YA9HQ,8DAAc;YAEd,sDAAM;YADN,qFAAoB;;AAQhB,iBAAiB;IAL7B,+DAAS,CAAC;QACT,QAAQ,EAAE,oBAAoB;QAC9B,4OAAyC;;KAE1C,CAAC;GACW,iBAAiB,CAqH7B;AArH6B;;;;;;;;;;;;;;;;;;;;;;ACVoB;AACP;AAEN;AACa;AACN;AAClB;IAMb,oBAAoB,SAApB,oBAAoB;IAE/B,YAAoB,IAAgB,EAAU,MAAqB;QAA/C,SAAI,GAAJ,IAAI,CAAY;QAAU,WAAM,GAAN,MAAM,CAAe;IACnE,CAAC;IAED,YAAY,CAAC,EAAE,EAAC,IAAI;QAClB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,SAAS,GAAG,EAAE,EAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,0BAA0B,EAAE,CAAC,CAAC,IAAI,CAC5G,0DAAG,CAAC,OAAO,CAAC,EAAE;YACZ,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,OAAO,CAAC,CAAC;YAChC,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC,EACF,iEAAU,CAAC,GAAG,CAAC,EAAE,CAAC,+CAAE,CAAC,GAAG,CAAC,CAAC,CAC3B,CAAC;IACJ,CAAC;IAED,SAAS,CAAC,EAAE;QACV,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,0BAA0B,EAAE,CAAC,CAAC,IAAI,CACjG,0DAAG,CAAC,OAAO,CAAC,EAAE;YACZ,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,OAAO,CAAC,CAAC;YAChC,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC,EACF,iEAAU,CAAC,GAAG,CAAC,EAAE,CAAC,+CAAE,CAAC,GAAG,CAAC,CAAC,CAC3B,CAAC;IACJ,CAAC;IAED,OAAO,CAAC,EAAE,EAAC,GAAG;QACZ,IAAI,IAAI,GAAG;YACT,KAAK,EAAC,GAAG;SACV;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,SAAS,GAAG,EAAE,GAAG,YAAY,EAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,0BAA0B,EAAE,CAAC,CAAC,IAAI,CAC5H,0DAAG,CAAC,OAAO,CAAC,EAAE;YACZ,OAAO,CAAC,GAAG,CAAC,SAAS,GAAG,OAAO,CAAC,CAAC;YACjC,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC,EACF,iEAAU,CAAC,CAAC,GAAG,EAAE,EAAE;YACjB,OAAO,+CAAE,CAAC,GAAG,CAAC,CAAC;QACjB,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAED,UAAU,CAAC,EAAE,EAAC,GAAG;QACf,IAAI,IAAI,GAAG;YACT,KAAK,EAAC,GAAG;SACV;QACD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACjB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,SAAS,GAAG,EAAE,GAAG,eAAe,EAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,0BAA0B,EAAE,CAAC,CAAC,IAAI,CAC/H,0DAAG,CAAC,OAAO,CAAC,EAAE;YACZ,OAAO,CAAC,GAAG,CAAC,SAAS,GAAG,OAAO,CAAC,CAAC;YACjC,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC,EACF,iEAAU,CAAC,GAAG,CAAC,EAAE,CAAC,+CAAE,CAAC,GAAG,CAAC,CAAC,CAC3B,CAAC;IACJ,CAAC;IAED,QAAQ,CAAC,EAAE;QACT,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,SAAS,GAAG,EAAE,GAAG,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,0BAA0B,EAAE,CAAC,CAAC,IAAI,CAClH,0DAAG,CAAC,OAAO,CAAC,EAAE;YACZ,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,OAAO,CAAC,CAAC;YAChC,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC,EACF,iEAAU,CAAC,GAAG,CAAC,EAAE,CAAC,+CAAE,CAAC,GAAG,CAAC,CAAC,CAC3B,CAAC;IACJ,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,0BAA0B,EAAE,CAAC,CAAC,IAAI,CACjG,0DAAG,CAAC,OAAO,CAAC,EAAE;YACZ,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,OAAO,CAAC,CAAC;YAChC,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC,EACF,iEAAU,CAAC,GAAG,CAAC,EAAE,CAAC,+CAAE,CAAC,GAAG,CAAC,CAAC,CAC3B,CAAC;IACJ,CAAC;CACF;;YArFQ,+DAAU;YAIV,6DAAa;;AAQT,oBAAoB;IAHhC,gEAAU,CAAC;QACV,UAAU,EAAE,MAAM;KACnB,CAAC;GACW,oBAAoB,CAyEhC;AAzEgC","file":"gestion-groupe-gestion-groupe-module-es2015.js","sourcesContent":["export default \"<ion-header class=\\\"ion-margin-top ion-margin-bottom\\\">\\n <ion-toolbar>\\n <ion-title size=\\\"large\\\">Gestion du groupe</ion-title>\\n </ion-toolbar>\\n <ion-toolbar>\\n <ion-buttons slot=\\\"start\\\">\\n <ion-back-button text=\\\"Retour\\\" defaultHref=\\\"/conversation/{{ groupe._id }}\\\"></ion-back-button>\\n </ion-buttons>\\n </ion-toolbar>\\n</ion-header>\\n\\n<ion-content padding>\\n <form class=\\\"form_login\\\" #form=\\\"ngForm\\\">\\n <ion-grid>\\n <ion-row class=\\\"ion-justify-content-center\\\">\\n <ion-col class=\\\"align-self-center\\\" size-md=\\\"6\\\" size-lg=\\\"5\\\" size-xs=\\\"12\\\">\\n <div class=\\\"ion-padding\\\">\\n <ion-item>\\n <ion-input name=\\\"name\\\" type=\\\"text\\\" placeholder=\\\"Nom du groupe\\\" ngModel value=\\\"{{ groupe.name }}\\\"></ion-input>\\n </ion-item>\\n <ion-item>\\n <ion-input name=\\\"description\\\" type=\\\"text\\\" placeholder=\\\"Description du groupe\\\" ngModel value=\\\"{{ groupe.description }}\\\"></ion-input>\\n </ion-item>\\n <ion-item>\\n <ion-label>Utilisateurs</ion-label>\\n <ion-select name=\\\"utilisateurs\\\" multiple=\\\"true\\\" [(ngModel)]=\\\"usersSelected\\\" [value]=\\\"users\\\">\\n <ion-select-option *ngFor=\\\"let user of users\\\" value=\\\"{{user._id}}\\\">{{user.username}}</ion-select-option>\\n </ion-select>\\n </ion-item>\\n </div>\\n <div class=\\\"ion-padding\\\">\\n <ion-button size=\\\"large\\\" type=\\\"submit\\\" [disabled]=\\\"form.invalid\\\" expand=\\\"block\\\" (click)=\\\"modifGroupe(form)\\\">Modifier</ion-button>\\n </div>\\n </ion-col>\\n </ion-row>\\n </ion-grid>\\n </form>\\n</ion-content>\\n\";","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\n\nimport { GestionGroupePage } from './gestion-groupe.page';\n\nconst routes: Routes = [\n {\n path: '',\n component: GestionGroupePage\n }\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class GestionGroupePageRoutingModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { IonicModule } from '@ionic/angular';\n\nimport { GestionGroupePageRoutingModule } from './gestion-groupe-routing.module';\n\nimport { GestionGroupePage } from './gestion-groupe.page';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n IonicModule,\n GestionGroupePageRoutingModule\n ],\n declarations: [GestionGroupePage]\n})\nexport class GestionGroupePageModule {}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2dlc3Rpb24tZ3JvdXBlL2dlc3Rpb24tZ3JvdXBlLnBhZ2Uuc2NzcyJ9 */\";","import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { GestionGroupeService } from '../services/gestion-groupe.service';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'app-gestion-groupe',\n templateUrl: './gestion-groupe.page.html',\n styleUrls: ['./gestion-groupe.page.scss'],\n})\nexport class GestionGroupePage implements OnInit {\n\n id;\n groupe;\n usersTempo;\n users;\n usersSelected;\n idUser;\n defaultusersSelected;\n\n\n constructor(private activatedRoute: ActivatedRoute,private router: Router, private gestionGroupeService: GestionGroupeService) { \n this.groupe = {\n id: 0,\n name: \"\",\n description: \"\",\n }\n \n this.users = [];\n this.usersTempo;\n this.usersSelected = [];\n this.defaultusersSelected = [];\n }\n\n ngOnInit() {\n this.id = this.activatedRoute.snapshot.paramMap.get('id');\n this.idUser = JSON.parse(localStorage.getItem('user')).id;\n this.getGroupe();\n this.getUsers();\n }\n\n modifGroupe(form){\n let addUser = [];\n let removeUser = [];\n let name = form.value.name;\n let description = form.value.description;\n\n if(Array.isArray(this.usersSelected)){\n this.usersSelected.forEach((element) => {\n addUser.push(element);\n })\n }\n\n console.log(\"Add user : \" + JSON.stringify(addUser));\n\n if(Array.isArray(this.defaultusersSelected)){\n this.defaultusersSelected.forEach((element) => {\n //On vérifie si les utilisateurs qui étaient selectionné le sont toujours\n let stop = false;\n let i = 0;\n while(i < addUser.length && !stop){\n let aUser = addUser[i];\n if(aUser === element){\n stop = true;\n }\n i++;\n }\n if(!stop){\n removeUser.push(element);\n }\n })\n }\n if(addUser.length > 0) this.gestionGroupeService.addUser(this.id,addUser).subscribe(data => this.router.navigate(['/conversation/' + this.id]));\n if(removeUser.length > 0) this.gestionGroupeService.removeUser(this.id,removeUser).subscribe(data => this.router.navigate(['/conversation/' + this.id]));\n\n let body = {\n \"name\": name,\n \"description\": description,\n \"users\": this.usersSelected\n }\n this.gestionGroupeService.updateGroupe(this.id,body).subscribe(data => this.router.navigate(['/conversation/' + this.id]));\n }\n\n getGroupe(){\n this.gestionGroupeService.getGroupe(this.id).subscribe(data => {\n let groups = data.reverse();\n if(Array.isArray(groups)){\n groups.forEach((groupe) => {\n if(groupe._id === this.id){\n this.groupe = groupe;\n }\n })\n }\n });\n }\n\n async getUsers(){\n await this.gestionGroupeService.getAllUsers().subscribe(data => {\n this.usersTempo = data.reverse();\n })\n await this.gestionGroupeService.getUsers(this.id).subscribe(data => {\n let currentUsers = data.reverse();\n if(Array.isArray(this.usersTempo)){\n this.usersTempo.forEach((element,index) => {\n if(element._id !== this.idUser){\n if(Array.isArray(currentUsers)){\n let stop = false;\n let i = 0;\n while(i<currentUsers.length && !stop){\n let curUser = currentUsers[i];\n if(element._id === curUser._id){\n this.users.push(element);\n this.usersSelected.push(element._id);\n stop = true;\n }\n i++;\n }\n if(!stop){\n this.users.push(element);\n }\n }\n }\n })\n }\n this.defaultusersSelected = this.usersSelected;\n })\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { GlobalService } from \"../global.service\";\nimport { catchError } from 'rxjs/operators'; \nimport { of } from 'rxjs';\nimport { HttpHeaders } from '@angular/common/http';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class GestionGroupeService {\n\n constructor(private http: HttpClient, private global: GlobalService) { \n }\n\n updateGroupe(id,body): Observable<any> {\n return this.http.put(`${this.global.apiRoot}/rooms/` + id,body, this.global.getHeaderHttpPostConnected()).pipe(\n map(results => {\n console.log('get : ' + results);\n return results;\n }),\n catchError(err => of(err))\n );\n }\n\n getGroupe(id): Observable<any> {\n return this.http.get(`${this.global.apiRoot}/rooms`, this.global.getHeaderHttpPostConnected()).pipe(\n map(results => {\n console.log('get : ' + results);\n return results;\n }),\n catchError(err => of(err))\n );\n }\n\n addUser(id,ids): Observable<any> {\n let body = {\n 'ids':ids,\n }\n return this.http.post(`${this.global.apiRoot}/rooms/` + id + \"/add_users\",body, this.global.getHeaderHttpPostConnected()).pipe(\n map(results => {\n console.log('post : ' + results);\n return results;\n }),\n catchError((err) => {\n return of(err);\n })\n );\n }\n\n removeUser(id,ids): Observable<any> {\n let body = {\n 'ids':ids,\n }\n console.log(ids);\n return this.http.post(`${this.global.apiRoot}/rooms/` + id + \"/remove_users\",body, this.global.getHeaderHttpPostConnected()).pipe(\n map(results => {\n console.log('post : ' + results);\n return results;\n }),\n catchError(err => of(err))\n );\n }\n\n getUsers(id): Observable<any> {\n return this.http.get(`${this.global.apiRoot}/rooms/` + id + \"/users\", this.global.getHeaderHttpPostConnected()).pipe(\n map(results => {\n console.log('get : ' + results);\n return results;\n }),\n catchError(err => of(err))\n );\n }\n\n getAllUsers(): Observable<any> {\n return this.http.get(`${this.global.apiRoot}/users`, this.global.getHeaderHttpPostConnected()).pipe(\n map(results => {\n console.log('get : ' + results);\n return results;\n }),\n catchError(err => of(err))\n );\n }\n}\n"],"sourceRoot":"webpack:///"} \ No newline at end of file diff --git a/ionic/www/gestion-groupe-gestion-groupe-module-es5.js b/ionic/www/gestion-groupe-gestion-groupe-module-es5.js new file mode 100644 index 0000000000000000000000000000000000000000..7352a6cbf02e306ccf98565ad99a0ba8c190d45e --- /dev/null +++ b/ionic/www/gestion-groupe-gestion-groupe-module-es5.js @@ -0,0 +1,562 @@ +(function () { + function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + + function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + + function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + + (window["webpackJsonp"] = window["webpackJsonp"] || []).push([["gestion-groupe-gestion-groupe-module"], { + /***/ + "./node_modules/raw-loader/dist/cjs.js!./src/app/gestion-groupe/gestion-groupe.page.html": + /*!***********************************************************************************************!*\ + !*** ./node_modules/raw-loader/dist/cjs.js!./src/app/gestion-groupe/gestion-groupe.page.html ***! + \***********************************************************************************************/ + + /*! exports provided: default */ + + /***/ + function node_modulesRawLoaderDistCjsJsSrcAppGestionGroupeGestionGroupePageHtml(module, __webpack_exports__, __webpack_require__) { + "use strict"; + + __webpack_require__.r(__webpack_exports__); + /* harmony default export */ + + + __webpack_exports__["default"] = "<ion-header class=\"ion-margin-top ion-margin-bottom\">\n <ion-toolbar>\n <ion-title size=\"large\">Gestion du groupe</ion-title>\n </ion-toolbar>\n <ion-toolbar>\n <ion-buttons slot=\"start\">\n <ion-back-button text=\"Retour\" defaultHref=\"/conversation/{{ groupe._id }}\"></ion-back-button>\n </ion-buttons>\n </ion-toolbar>\n</ion-header>\n\n<ion-content padding>\n <form class=\"form_login\" #form=\"ngForm\">\n <ion-grid>\n <ion-row class=\"ion-justify-content-center\">\n <ion-col class=\"align-self-center\" size-md=\"6\" size-lg=\"5\" size-xs=\"12\">\n <div class=\"ion-padding\">\n <ion-item>\n <ion-input name=\"name\" type=\"text\" placeholder=\"Nom du groupe\" ngModel value=\"{{ groupe.name }}\"></ion-input>\n </ion-item>\n <ion-item>\n <ion-input name=\"description\" type=\"text\" placeholder=\"Description du groupe\" ngModel value=\"{{ groupe.description }}\"></ion-input>\n </ion-item>\n <ion-item>\n <ion-label>Utilisateurs</ion-label>\n <ion-select name=\"utilisateurs\" multiple=\"true\" [(ngModel)]=\"usersSelected\" [value]=\"users\">\n <ion-select-option *ngFor=\"let user of users\" value=\"{{user._id}}\">{{user.username}}</ion-select-option>\n </ion-select>\n </ion-item>\n </div>\n <div class=\"ion-padding\">\n <ion-button size=\"large\" type=\"submit\" [disabled]=\"form.invalid\" expand=\"block\" (click)=\"modifGroupe(form)\">Modifier</ion-button>\n </div>\n </ion-col>\n </ion-row>\n </ion-grid>\n </form>\n</ion-content>\n"; + /***/ + }, + + /***/ + "./src/app/gestion-groupe/gestion-groupe-routing.module.ts": + /*!*****************************************************************!*\ + !*** ./src/app/gestion-groupe/gestion-groupe-routing.module.ts ***! + \*****************************************************************/ + + /*! exports provided: GestionGroupePageRoutingModule */ + + /***/ + function srcAppGestionGroupeGestionGroupeRoutingModuleTs(module, __webpack_exports__, __webpack_require__) { + "use strict"; + + __webpack_require__.r(__webpack_exports__); + /* harmony export (binding) */ + + + __webpack_require__.d(__webpack_exports__, "GestionGroupePageRoutingModule", function () { + return GestionGroupePageRoutingModule; + }); + /* harmony import */ + + + var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( + /*! tslib */ + "./node_modules/tslib/tslib.es6.js"); + /* harmony import */ + + + var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( + /*! @angular/core */ + "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js"); + /* harmony import */ + + + var _angular_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( + /*! @angular/router */ + "./node_modules/@angular/router/__ivy_ngcc__/fesm2015/router.js"); + /* harmony import */ + + + var _gestion_groupe_page__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( + /*! ./gestion-groupe.page */ + "./src/app/gestion-groupe/gestion-groupe.page.ts"); + + var routes = [{ + path: '', + component: _gestion_groupe_page__WEBPACK_IMPORTED_MODULE_3__["GestionGroupePage"] + }]; + + var GestionGroupePageRoutingModule = function GestionGroupePageRoutingModule() { + _classCallCheck(this, GestionGroupePageRoutingModule); + }; + + GestionGroupePageRoutingModule = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["NgModule"])({ + imports: [_angular_router__WEBPACK_IMPORTED_MODULE_2__["RouterModule"].forChild(routes)], + exports: [_angular_router__WEBPACK_IMPORTED_MODULE_2__["RouterModule"]] + })], GestionGroupePageRoutingModule); + /***/ + }, + + /***/ + "./src/app/gestion-groupe/gestion-groupe.module.ts": + /*!*********************************************************!*\ + !*** ./src/app/gestion-groupe/gestion-groupe.module.ts ***! + \*********************************************************/ + + /*! exports provided: GestionGroupePageModule */ + + /***/ + function srcAppGestionGroupeGestionGroupeModuleTs(module, __webpack_exports__, __webpack_require__) { + "use strict"; + + __webpack_require__.r(__webpack_exports__); + /* harmony export (binding) */ + + + __webpack_require__.d(__webpack_exports__, "GestionGroupePageModule", function () { + return GestionGroupePageModule; + }); + /* harmony import */ + + + var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( + /*! tslib */ + "./node_modules/tslib/tslib.es6.js"); + /* harmony import */ + + + var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( + /*! @angular/core */ + "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js"); + /* harmony import */ + + + var _angular_common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( + /*! @angular/common */ + "./node_modules/@angular/common/__ivy_ngcc__/fesm2015/common.js"); + /* harmony import */ + + + var _angular_forms__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( + /*! @angular/forms */ + "./node_modules/@angular/forms/__ivy_ngcc__/fesm2015/forms.js"); + /* harmony import */ + + + var _ionic_angular__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( + /*! @ionic/angular */ + "./node_modules/@ionic/angular/__ivy_ngcc__/fesm2015/ionic-angular.js"); + /* harmony import */ + + + var _gestion_groupe_routing_module__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( + /*! ./gestion-groupe-routing.module */ + "./src/app/gestion-groupe/gestion-groupe-routing.module.ts"); + /* harmony import */ + + + var _gestion_groupe_page__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__( + /*! ./gestion-groupe.page */ + "./src/app/gestion-groupe/gestion-groupe.page.ts"); + + var GestionGroupePageModule = function GestionGroupePageModule() { + _classCallCheck(this, GestionGroupePageModule); + }; + + GestionGroupePageModule = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["NgModule"])({ + imports: [_angular_common__WEBPACK_IMPORTED_MODULE_2__["CommonModule"], _angular_forms__WEBPACK_IMPORTED_MODULE_3__["FormsModule"], _ionic_angular__WEBPACK_IMPORTED_MODULE_4__["IonicModule"], _gestion_groupe_routing_module__WEBPACK_IMPORTED_MODULE_5__["GestionGroupePageRoutingModule"]], + declarations: [_gestion_groupe_page__WEBPACK_IMPORTED_MODULE_6__["GestionGroupePage"]] + })], GestionGroupePageModule); + /***/ + }, + + /***/ + "./src/app/gestion-groupe/gestion-groupe.page.scss": + /*!*********************************************************!*\ + !*** ./src/app/gestion-groupe/gestion-groupe.page.scss ***! + \*********************************************************/ + + /*! exports provided: default */ + + /***/ + function srcAppGestionGroupeGestionGroupePageScss(module, __webpack_exports__, __webpack_require__) { + "use strict"; + + __webpack_require__.r(__webpack_exports__); + /* harmony default export */ + + + __webpack_exports__["default"] = "\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2dlc3Rpb24tZ3JvdXBlL2dlc3Rpb24tZ3JvdXBlLnBhZ2Uuc2NzcyJ9 */"; + /***/ + }, + + /***/ + "./src/app/gestion-groupe/gestion-groupe.page.ts": + /*!*******************************************************!*\ + !*** ./src/app/gestion-groupe/gestion-groupe.page.ts ***! + \*******************************************************/ + + /*! exports provided: GestionGroupePage */ + + /***/ + function srcAppGestionGroupeGestionGroupePageTs(module, __webpack_exports__, __webpack_require__) { + "use strict"; + + __webpack_require__.r(__webpack_exports__); + /* harmony export (binding) */ + + + __webpack_require__.d(__webpack_exports__, "GestionGroupePage", function () { + return GestionGroupePage; + }); + /* harmony import */ + + + var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( + /*! tslib */ + "./node_modules/tslib/tslib.es6.js"); + /* harmony import */ + + + var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( + /*! @angular/core */ + "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js"); + /* harmony import */ + + + var _angular_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( + /*! @angular/router */ + "./node_modules/@angular/router/__ivy_ngcc__/fesm2015/router.js"); + /* harmony import */ + + + var _services_gestion_groupe_service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( + /*! ../services/gestion-groupe.service */ + "./src/app/services/gestion-groupe.service.ts"); + + var GestionGroupePage = /*#__PURE__*/function () { + function GestionGroupePage(activatedRoute, router, gestionGroupeService) { + _classCallCheck(this, GestionGroupePage); + + this.activatedRoute = activatedRoute; + this.router = router; + this.gestionGroupeService = gestionGroupeService; + this.groupe = { + id: 0, + name: "", + description: "" + }; + this.users = []; + this.usersTempo; + this.usersSelected = []; + this.defaultusersSelected = []; + } + + _createClass(GestionGroupePage, [{ + key: "ngOnInit", + value: function ngOnInit() { + this.id = this.activatedRoute.snapshot.paramMap.get('id'); + this.idUser = JSON.parse(localStorage.getItem('user')).id; + this.getGroupe(); + this.getUsers(); + } + }, { + key: "modifGroupe", + value: function modifGroupe(form) { + var _this = this; + + var addUser = []; + var removeUser = []; + var name = form.value.name; + var description = form.value.description; + + if (Array.isArray(this.usersSelected)) { + this.usersSelected.forEach(function (element) { + addUser.push(element); + }); + } + + console.log("Add user : " + JSON.stringify(addUser)); + + if (Array.isArray(this.defaultusersSelected)) { + this.defaultusersSelected.forEach(function (element) { + //On vérifie si les utilisateurs qui étaient selectionné le sont toujours + var stop = false; + var i = 0; + + while (i < addUser.length && !stop) { + var aUser = addUser[i]; + + if (aUser === element) { + stop = true; + } + + i++; + } + + if (!stop) { + removeUser.push(element); + } + }); + } + + if (addUser.length > 0) this.gestionGroupeService.addUser(this.id, addUser).subscribe(function (data) { + return _this.router.navigate(['/conversation/' + _this.id]); + }); + if (removeUser.length > 0) this.gestionGroupeService.removeUser(this.id, removeUser).subscribe(function (data) { + return _this.router.navigate(['/conversation/' + _this.id]); + }); + var body = { + "name": name, + "description": description, + "users": this.usersSelected + }; + this.gestionGroupeService.updateGroupe(this.id, body).subscribe(function (data) { + return _this.router.navigate(['/conversation/' + _this.id]); + }); + } + }, { + key: "getGroupe", + value: function getGroupe() { + var _this2 = this; + + this.gestionGroupeService.getGroupe(this.id).subscribe(function (data) { + var groups = data.reverse(); + + if (Array.isArray(groups)) { + groups.forEach(function (groupe) { + if (groupe._id === _this2.id) { + _this2.groupe = groupe; + } + }); + } + }); + } + }, { + key: "getUsers", + value: function getUsers() { + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() { + var _this3 = this; + + return regeneratorRuntime.wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + _context.next = 2; + return this.gestionGroupeService.getAllUsers().subscribe(function (data) { + _this3.usersTempo = data.reverse(); + }); + + case 2: + _context.next = 4; + return this.gestionGroupeService.getUsers(this.id).subscribe(function (data) { + var currentUsers = data.reverse(); + + if (Array.isArray(_this3.usersTempo)) { + _this3.usersTempo.forEach(function (element, index) { + if (element._id !== _this3.idUser) { + if (Array.isArray(currentUsers)) { + var stop = false; + var i = 0; + + while (i < currentUsers.length && !stop) { + var curUser = currentUsers[i]; + + if (element._id === curUser._id) { + _this3.users.push(element); + + _this3.usersSelected.push(element._id); + + stop = true; + } + + i++; + } + + if (!stop) { + _this3.users.push(element); + } + } + } + }); + } + + _this3.defaultusersSelected = _this3.usersSelected; + }); + + case 4: + case "end": + return _context.stop(); + } + } + }, _callee, this); + })); + } + }]); + + return GestionGroupePage; + }(); + + GestionGroupePage.ctorParameters = function () { + return [{ + type: _angular_router__WEBPACK_IMPORTED_MODULE_2__["ActivatedRoute"] + }, { + type: _angular_router__WEBPACK_IMPORTED_MODULE_2__["Router"] + }, { + type: _services_gestion_groupe_service__WEBPACK_IMPORTED_MODULE_3__["GestionGroupeService"] + }]; + }; + + GestionGroupePage = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({ + selector: 'app-gestion-groupe', + template: Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"])(__webpack_require__( + /*! raw-loader!./gestion-groupe.page.html */ + "./node_modules/raw-loader/dist/cjs.js!./src/app/gestion-groupe/gestion-groupe.page.html"))["default"], + styles: [Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"])(__webpack_require__( + /*! ./gestion-groupe.page.scss */ + "./src/app/gestion-groupe/gestion-groupe.page.scss"))["default"]] + })], GestionGroupePage); + /***/ + }, + + /***/ + "./src/app/services/gestion-groupe.service.ts": + /*!****************************************************!*\ + !*** ./src/app/services/gestion-groupe.service.ts ***! + \****************************************************/ + + /*! exports provided: GestionGroupeService */ + + /***/ + function srcAppServicesGestionGroupeServiceTs(module, __webpack_exports__, __webpack_require__) { + "use strict"; + + __webpack_require__.r(__webpack_exports__); + /* harmony export (binding) */ + + + __webpack_require__.d(__webpack_exports__, "GestionGroupeService", function () { + return GestionGroupeService; + }); + /* harmony import */ + + + var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( + /*! tslib */ + "./node_modules/tslib/tslib.es6.js"); + /* harmony import */ + + + var _angular_common_http__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( + /*! @angular/common/http */ + "./node_modules/@angular/common/__ivy_ngcc__/fesm2015/http.js"); + /* harmony import */ + + + var _angular_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( + /*! @angular/core */ + "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js"); + /* harmony import */ + + + var rxjs_operators__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( + /*! rxjs/operators */ + "./node_modules/rxjs/_esm2015/operators/index.js"); + /* harmony import */ + + + var _global_service__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( + /*! ../global.service */ + "./src/app/global.service.ts"); + /* harmony import */ + + + var rxjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( + /*! rxjs */ + "./node_modules/rxjs/_esm2015/index.js"); + + var GestionGroupeService = /*#__PURE__*/function () { + function GestionGroupeService(http, global) { + _classCallCheck(this, GestionGroupeService); + + this.http = http; + this.global = global; + } + + _createClass(GestionGroupeService, [{ + key: "updateGroupe", + value: function updateGroupe(id, body) { + return this.http.put("".concat(this.global.apiRoot, "/rooms/") + id, body, this.global.getHeaderHttpPostConnected()).pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["map"])(function (results) { + console.log('get : ' + results); + return results; + }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["catchError"])(function (err) { + return Object(rxjs__WEBPACK_IMPORTED_MODULE_5__["of"])(err); + })); + } + }, { + key: "getGroupe", + value: function getGroupe(id) { + return this.http.get("".concat(this.global.apiRoot, "/rooms"), this.global.getHeaderHttpPostConnected()).pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["map"])(function (results) { + console.log('get : ' + results); + return results; + }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["catchError"])(function (err) { + return Object(rxjs__WEBPACK_IMPORTED_MODULE_5__["of"])(err); + })); + } + }, { + key: "addUser", + value: function addUser(id, ids) { + var body = { + 'ids': ids + }; + return this.http.post("".concat(this.global.apiRoot, "/rooms/") + id + "/add_users", body, this.global.getHeaderHttpPostConnected()).pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["map"])(function (results) { + console.log('post : ' + results); + return results; + }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["catchError"])(function (err) { + return Object(rxjs__WEBPACK_IMPORTED_MODULE_5__["of"])(err); + })); + } + }, { + key: "removeUser", + value: function removeUser(id, ids) { + var body = { + 'ids': ids + }; + console.log(ids); + return this.http.post("".concat(this.global.apiRoot, "/rooms/") + id + "/remove_users", body, this.global.getHeaderHttpPostConnected()).pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["map"])(function (results) { + console.log('post : ' + results); + return results; + }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["catchError"])(function (err) { + return Object(rxjs__WEBPACK_IMPORTED_MODULE_5__["of"])(err); + })); + } + }, { + key: "getUsers", + value: function getUsers(id) { + return this.http.get("".concat(this.global.apiRoot, "/rooms/") + id + "/users", this.global.getHeaderHttpPostConnected()).pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["map"])(function (results) { + console.log('get : ' + results); + return results; + }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["catchError"])(function (err) { + return Object(rxjs__WEBPACK_IMPORTED_MODULE_5__["of"])(err); + })); + } + }, { + key: "getAllUsers", + value: function getAllUsers() { + return this.http.get("".concat(this.global.apiRoot, "/users"), this.global.getHeaderHttpPostConnected()).pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["map"])(function (results) { + console.log('get : ' + results); + return results; + }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["catchError"])(function (err) { + return Object(rxjs__WEBPACK_IMPORTED_MODULE_5__["of"])(err); + })); + } + }]); + + return GestionGroupeService; + }(); + + GestionGroupeService.ctorParameters = function () { + return [{ + type: _angular_common_http__WEBPACK_IMPORTED_MODULE_1__["HttpClient"] + }, { + type: _global_service__WEBPACK_IMPORTED_MODULE_4__["GlobalService"] + }]; + }; + + GestionGroupeService = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([Object(_angular_core__WEBPACK_IMPORTED_MODULE_2__["Injectable"])({ + providedIn: 'root' + })], GestionGroupeService); + /***/ + } + }]); +})(); +//# sourceMappingURL=gestion-groupe-gestion-groupe-module-es5.js.map \ No newline at end of file diff --git a/ionic/www/gestion-groupe-gestion-groupe-module-es5.js.map b/ionic/www/gestion-groupe-gestion-groupe-module-es5.js.map new file mode 100644 index 0000000000000000000000000000000000000000..e43061f73bd6c3d990bd1989c6e18611c2629737 --- /dev/null +++ b/ionic/www/gestion-groupe-gestion-groupe-module-es5.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///src/app/gestion-groupe/gestion-groupe.page.html","webpack:///src/app/gestion-groupe/gestion-groupe-routing.module.ts","webpack:///src/app/gestion-groupe/gestion-groupe.module.ts","webpack:///src/app/gestion-groupe/gestion-groupe.page.scss","webpack:///src/app/gestion-groupe/gestion-groupe.page.ts","webpack:///src/app/services/gestion-groupe.service.ts"],"names":["routes","path","component","GestionGroupePageRoutingModule","imports","forChild","exports","GestionGroupePageModule","declarations","GestionGroupePage","activatedRoute","router","gestionGroupeService","groupe","id","name","description","users","usersTempo","usersSelected","defaultusersSelected","snapshot","paramMap","get","idUser","JSON","parse","localStorage","getItem","getGroupe","getUsers","form","addUser","removeUser","value","Array","isArray","forEach","element","push","console","log","stringify","stop","i","length","aUser","subscribe","data","navigate","body","updateGroupe","groups","reverse","_id","getAllUsers","currentUsers","index","curUser","selector","template","GestionGroupeService","http","global","put","apiRoot","getHeaderHttpPostConnected","pipe","results","err","ids","post","providedIn"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAe;;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACKf,UAAMA,MAAM,GAAW,CACrB;AACEC,YAAI,EAAE,EADR;AAEEC,iBAAS,EAAE;AAFb,OADqB,CAAvB;;UAWaC,8BAA8B;AAAA;AAAA,O;;AAA9BA,oCAA8B,6DAJ1C,+DAAS;AACRC,eAAO,EAAE,CAAC,6DAAaC,QAAb,CAAsBL,MAAtB,CAAD,CADD;AAERM,eAAO,EAAE,CAAC,4DAAD;AAFD,OAAT,CAI0C,GAA9BH,8BAA8B,CAA9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UCGAI,uBAAuB;AAAA;AAAA,O;;AAAvBA,6BAAuB,6DATnC,+DAAS;AACRH,eAAO,EAAE,CACP,4DADO,EAEP,0DAFO,EAGP,0DAHO,EAIP,6FAJO,CADD;AAORI,oBAAY,EAAE,CAAC,sEAAD;AAPN,OAAT,CASmC,GAAvBD,uBAAuB,CAAvB;;;;;;;;;;;;;;;;ACnBb;AAAe;;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UCUFE,iBAAiB;AAW5B,mCAAoBC,cAApB,EAA4DC,MAA5D,EAAoFC,oBAApF,EAAgI;AAAA;;AAA5G,eAAAF,cAAA,GAAAA,cAAA;AAAwC,eAAAC,MAAA,GAAAA,MAAA;AAAwB,eAAAC,oBAAA,GAAAA,oBAAA;AAClF,eAAKC,MAAL,GAAc;AACZC,cAAE,EAAE,CADQ;AAEZC,gBAAI,EAAE,EAFM;AAGZC,uBAAW,EAAE;AAHD,WAAd;AAMA,eAAKC,KAAL,GAAa,EAAb;AACA,eAAKC,UAAL;AACA,eAAKC,aAAL,GAAqB,EAArB;AACA,eAAKC,oBAAL,GAA4B,EAA5B;AACD;;AAtB2B;AAAA;AAAA,qCAwBjB;AACT,iBAAKN,EAAL,GAAU,KAAKJ,cAAL,CAAoBW,QAApB,CAA6BC,QAA7B,CAAsCC,GAAtC,CAA0C,IAA1C,CAAV;AACA,iBAAKC,MAAL,GAAcC,IAAI,CAACC,KAAL,CAAWC,YAAY,CAACC,OAAb,CAAqB,MAArB,CAAX,EAAyCd,EAAvD;AACA,iBAAKe,SAAL;AACA,iBAAKC,QAAL;AACD;AA7B2B;AAAA;AAAA,sCA+BhBC,IA/BgB,EA+BZ;AAAA;;AACd,gBAAIC,OAAO,GAAG,EAAd;AACA,gBAAIC,UAAU,GAAG,EAAjB;AACA,gBAAIlB,IAAI,GAAGgB,IAAI,CAACG,KAAL,CAAWnB,IAAtB;AACA,gBAAIC,WAAW,GAAGe,IAAI,CAACG,KAAL,CAAWlB,WAA7B;;AAEA,gBAAGmB,KAAK,CAACC,OAAN,CAAc,KAAKjB,aAAnB,CAAH,EAAqC;AACnC,mBAAKA,aAAL,CAAmBkB,OAAnB,CAA2B,UAACC,OAAD,EAAa;AACpCN,uBAAO,CAACO,IAAR,CAAaD,OAAb;AACH,eAFD;AAGD;;AAEDE,mBAAO,CAACC,GAAR,CAAY,gBAAgBhB,IAAI,CAACiB,SAAL,CAAeV,OAAf,CAA5B;;AAEA,gBAAGG,KAAK,CAACC,OAAN,CAAc,KAAKhB,oBAAnB,CAAH,EAA4C;AAC1C,mBAAKA,oBAAL,CAA0BiB,OAA1B,CAAkC,UAACC,OAAD,EAAa;AAC7C;AACA,oBAAIK,IAAI,GAAG,KAAX;AACA,oBAAIC,CAAC,GAAG,CAAR;;AACA,uBAAMA,CAAC,GAAGZ,OAAO,CAACa,MAAZ,IAAsB,CAACF,IAA7B,EAAkC;AAChC,sBAAIG,KAAK,GAAGd,OAAO,CAACY,CAAD,CAAnB;;AACA,sBAAGE,KAAK,KAAKR,OAAb,EAAqB;AACnBK,wBAAI,GAAG,IAAP;AACD;;AACDC,mBAAC;AACF;;AACD,oBAAG,CAACD,IAAJ,EAAS;AACPV,4BAAU,CAACM,IAAX,CAAgBD,OAAhB;AACD;AACF,eAdD;AAeD;;AACD,gBAAGN,OAAO,CAACa,MAAR,GAAiB,CAApB,EAAuB,KAAKjC,oBAAL,CAA0BoB,OAA1B,CAAkC,KAAKlB,EAAvC,EAA0CkB,OAA1C,EAAmDe,SAAnD,CAA6D,UAAAC,IAAI;AAAA,qBAAI,KAAI,CAACrC,MAAL,CAAYsC,QAAZ,CAAqB,CAAC,mBAAmB,KAAI,CAACnC,EAAzB,CAArB,CAAJ;AAAA,aAAjE;AACvB,gBAAGmB,UAAU,CAACY,MAAX,GAAoB,CAAvB,EAA0B,KAAKjC,oBAAL,CAA0BqB,UAA1B,CAAqC,KAAKnB,EAA1C,EAA6CmB,UAA7C,EAAyDc,SAAzD,CAAmE,UAAAC,IAAI;AAAA,qBAAI,KAAI,CAACrC,MAAL,CAAYsC,QAAZ,CAAqB,CAAC,mBAAmB,KAAI,CAACnC,EAAzB,CAArB,CAAJ;AAAA,aAAvE;AAE1B,gBAAIoC,IAAI,GAAG;AACT,sBAAQnC,IADC;AAET,6BAAeC,WAFN;AAGT,uBAAS,KAAKG;AAHL,aAAX;AAKA,iBAAKP,oBAAL,CAA0BuC,YAA1B,CAAuC,KAAKrC,EAA5C,EAA+CoC,IAA/C,EAAqDH,SAArD,CAA+D,UAAAC,IAAI;AAAA,qBAAI,KAAI,CAACrC,MAAL,CAAYsC,QAAZ,CAAqB,CAAC,mBAAmB,KAAI,CAACnC,EAAzB,CAArB,CAAJ;AAAA,aAAnE;AACD;AAvE2B;AAAA;AAAA,sCAyEnB;AAAA;;AACP,iBAAKF,oBAAL,CAA0BiB,SAA1B,CAAoC,KAAKf,EAAzC,EAA6CiC,SAA7C,CAAuD,UAAAC,IAAI,EAAI;AAC7D,kBAAII,MAAM,GAAGJ,IAAI,CAACK,OAAL,EAAb;;AACA,kBAAGlB,KAAK,CAACC,OAAN,CAAcgB,MAAd,CAAH,EAAyB;AACvBA,sBAAM,CAACf,OAAP,CAAe,UAACxB,MAAD,EAAY;AACzB,sBAAGA,MAAM,CAACyC,GAAP,KAAe,MAAI,CAACxC,EAAvB,EAA0B;AACxB,0BAAI,CAACD,MAAL,GAAcA,MAAd;AACD;AACF,iBAJD;AAKD;AACF,aATD;AAUD;AApF2B;AAAA;AAAA,qCAsFd;;;;;;;;;AACZ,6BAAM,KAAKD,oBAAL,CAA0B2C,WAA1B,GAAwCR,SAAxC,CAAkD,UAAAC,IAAI,EAAI;AAC9D,8BAAI,CAAC9B,UAAL,GAAkB8B,IAAI,CAACK,OAAL,EAAlB;AACD,uBAFK,CAAN;;;;AAGA,6BAAM,KAAKzC,oBAAL,CAA0BkB,QAA1B,CAAmC,KAAKhB,EAAxC,EAA4CiC,SAA5C,CAAsD,UAAAC,IAAI,EAAI;AAClE,4BAAIQ,YAAY,GAAGR,IAAI,CAACK,OAAL,EAAnB;;AACA,4BAAGlB,KAAK,CAACC,OAAN,CAAc,MAAI,CAAClB,UAAnB,CAAH,EAAkC;AAChC,gCAAI,CAACA,UAAL,CAAgBmB,OAAhB,CAAwB,UAACC,OAAD,EAASmB,KAAT,EAAmB;AACzC,gCAAGnB,OAAO,CAACgB,GAAR,KAAgB,MAAI,CAAC9B,MAAxB,EAA+B;AAC7B,kCAAGW,KAAK,CAACC,OAAN,CAAcoB,YAAd,CAAH,EAA+B;AAC7B,oCAAIb,IAAI,GAAG,KAAX;AACA,oCAAIC,CAAC,GAAG,CAAR;;AACA,uCAAMA,CAAC,GAACY,YAAY,CAACX,MAAf,IAAyB,CAACF,IAAhC,EAAqC;AACnC,sCAAIe,OAAO,GAAGF,YAAY,CAACZ,CAAD,CAA1B;;AACE,sCAAGN,OAAO,CAACgB,GAAR,KAAgBI,OAAO,CAACJ,GAA3B,EAA+B;AAC7B,0CAAI,CAACrC,KAAL,CAAWsB,IAAX,CAAgBD,OAAhB;;AACA,0CAAI,CAACnB,aAAL,CAAmBoB,IAAnB,CAAwBD,OAAO,CAACgB,GAAhC;;AACAX,wCAAI,GAAG,IAAP;AACD;;AACHC,mCAAC;AACF;;AACD,oCAAG,CAACD,IAAJ,EAAS;AACP,wCAAI,CAAC1B,KAAL,CAAWsB,IAAX,CAAgBD,OAAhB;AACD;AACF;AACF;AACF,2BAnBD;AAoBD;;AACD,8BAAI,CAAClB,oBAAL,GAA4B,MAAI,CAACD,aAAjC;AACD,uBAzBK,CAAN;;;;;;;;;AA0BD;AApH2B;;AAAA;AAAA,S;;;;gBATrB;;gBAEA;;gBADA;;;;AAQIV,uBAAiB,6DAL7B,gEAAU;AACTkD,gBAAQ,EAAE,oBADD;AAETC,gBAAQ,EAAR;AAAA;AAAA,8GAFS;;;;AAAA,OAAV,CAK6B,GAAjBnD,iBAAiB,CAAjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UCEAoD,oBAAoB;AAE/B,sCAAoBC,IAApB,EAA8CC,MAA9C,EAAqE;AAAA;;AAAjD,eAAAD,IAAA,GAAAA,IAAA;AAA0B,eAAAC,MAAA,GAAAA,MAAA;AAC7C;;AAH8B;AAAA;AAAA,uCAKlBjD,EALkB,EAKfoC,IALe,EAKX;AAClB,mBAAO,KAAKY,IAAL,CAAUE,GAAV,CAAc,UAAG,KAAKD,MAAL,CAAYE,OAAf,eAAkCnD,EAAhD,EAAmDoC,IAAnD,EAAyD,KAAKa,MAAL,CAAYG,0BAAZ,EAAzD,EAAmGC,IAAnG,CACL,2DAAI,UAAAC,OAAO,EAAI;AACb5B,qBAAO,CAACC,GAAR,CAAY,WAAW2B,OAAvB;AACA,qBAAOA,OAAP;AACD,aAHD,CADK,EAKL,kEAAW,UAAAC,GAAG;AAAA,qBAAI,gDAAGA,GAAH,CAAJ;AAAA,aAAd,CALK,CAAP;AAOD;AAb8B;AAAA;AAAA,oCAerBvD,EAfqB,EAenB;AACV,mBAAO,KAAKgD,IAAL,CAAUvC,GAAV,WAAiB,KAAKwC,MAAL,CAAYE,OAA7B,aAA8C,KAAKF,MAAL,CAAYG,0BAAZ,EAA9C,EAAwFC,IAAxF,CACL,2DAAI,UAAAC,OAAO,EAAI;AACb5B,qBAAO,CAACC,GAAR,CAAY,WAAW2B,OAAvB;AACA,qBAAOA,OAAP;AACD,aAHD,CADK,EAKL,kEAAW,UAAAC,GAAG;AAAA,qBAAI,gDAAGA,GAAH,CAAJ;AAAA,aAAd,CALK,CAAP;AAOD;AAvB8B;AAAA;AAAA,kCAyBvBvD,EAzBuB,EAyBpBwD,GAzBoB,EAyBjB;AACZ,gBAAIpB,IAAI,GAAG;AACT,qBAAMoB;AADG,aAAX;AAGA,mBAAO,KAAKR,IAAL,CAAUS,IAAV,CAAe,UAAG,KAAKR,MAAL,CAAYE,OAAf,eAAkCnD,EAAlC,GAAuC,YAAtD,EAAmEoC,IAAnE,EAAyE,KAAKa,MAAL,CAAYG,0BAAZ,EAAzE,EAAmHC,IAAnH,CACL,2DAAI,UAAAC,OAAO,EAAI;AACb5B,qBAAO,CAACC,GAAR,CAAY,YAAY2B,OAAxB;AACA,qBAAOA,OAAP;AACD,aAHD,CADK,EAKL,kEAAW,UAACC,GAAD,EAAS;AAClB,qBAAO,gDAAGA,GAAH,CAAP;AACD,aAFD,CALK,CAAP;AASD;AAtC8B;AAAA;AAAA,qCAwCpBvD,EAxCoB,EAwCjBwD,GAxCiB,EAwCd;AACf,gBAAIpB,IAAI,GAAG;AACT,qBAAMoB;AADG,aAAX;AAGA9B,mBAAO,CAACC,GAAR,CAAY6B,GAAZ;AACA,mBAAO,KAAKR,IAAL,CAAUS,IAAV,CAAe,UAAG,KAAKR,MAAL,CAAYE,OAAf,eAAkCnD,EAAlC,GAAuC,eAAtD,EAAsEoC,IAAtE,EAA4E,KAAKa,MAAL,CAAYG,0BAAZ,EAA5E,EAAsHC,IAAtH,CACL,2DAAI,UAAAC,OAAO,EAAI;AACb5B,qBAAO,CAACC,GAAR,CAAY,YAAY2B,OAAxB;AACA,qBAAOA,OAAP;AACD,aAHD,CADK,EAKL,kEAAW,UAAAC,GAAG;AAAA,qBAAI,gDAAGA,GAAH,CAAJ;AAAA,aAAd,CALK,CAAP;AAOD;AApD8B;AAAA;AAAA,mCAsDtBvD,EAtDsB,EAsDpB;AACT,mBAAO,KAAKgD,IAAL,CAAUvC,GAAV,CAAc,UAAG,KAAKwC,MAAL,CAAYE,OAAf,eAAkCnD,EAAlC,GAAuC,QAArD,EAA+D,KAAKiD,MAAL,CAAYG,0BAAZ,EAA/D,EAAyGC,IAAzG,CACL,2DAAI,UAAAC,OAAO,EAAI;AACb5B,qBAAO,CAACC,GAAR,CAAY,WAAW2B,OAAvB;AACA,qBAAOA,OAAP;AACD,aAHD,CADK,EAKL,kEAAW,UAAAC,GAAG;AAAA,qBAAI,gDAAGA,GAAH,CAAJ;AAAA,aAAd,CALK,CAAP;AAOD;AA9D8B;AAAA;AAAA,wCAgEpB;AACT,mBAAO,KAAKP,IAAL,CAAUvC,GAAV,WAAiB,KAAKwC,MAAL,CAAYE,OAA7B,aAA8C,KAAKF,MAAL,CAAYG,0BAAZ,EAA9C,EAAwFC,IAAxF,CACL,2DAAI,UAAAC,OAAO,EAAI;AACb5B,qBAAO,CAACC,GAAR,CAAY,WAAW2B,OAAvB;AACA,qBAAOA,OAAP;AACD,aAHD,CADK,EAKL,kEAAW,UAAAC,GAAG;AAAA,qBAAI,gDAAGA,GAAH,CAAJ;AAAA,aAAd,CALK,CAAP;AAOD;AAxE8B;;AAAA;AAAA,S;;;;gBAZxB;;gBAIA;;;;AAQIR,0BAAoB,6DAHhC,iEAAW;AACVW,kBAAU,EAAE;AADF,OAAX,CAGgC,GAApBX,oBAAoB,CAApB","file":"gestion-groupe-gestion-groupe-module-es5.js","sourcesContent":["export default \"<ion-header class=\\\"ion-margin-top ion-margin-bottom\\\">\\n <ion-toolbar>\\n <ion-title size=\\\"large\\\">Gestion du groupe</ion-title>\\n </ion-toolbar>\\n <ion-toolbar>\\n <ion-buttons slot=\\\"start\\\">\\n <ion-back-button text=\\\"Retour\\\" defaultHref=\\\"/conversation/{{ groupe._id }}\\\"></ion-back-button>\\n </ion-buttons>\\n </ion-toolbar>\\n</ion-header>\\n\\n<ion-content padding>\\n <form class=\\\"form_login\\\" #form=\\\"ngForm\\\">\\n <ion-grid>\\n <ion-row class=\\\"ion-justify-content-center\\\">\\n <ion-col class=\\\"align-self-center\\\" size-md=\\\"6\\\" size-lg=\\\"5\\\" size-xs=\\\"12\\\">\\n <div class=\\\"ion-padding\\\">\\n <ion-item>\\n <ion-input name=\\\"name\\\" type=\\\"text\\\" placeholder=\\\"Nom du groupe\\\" ngModel value=\\\"{{ groupe.name }}\\\"></ion-input>\\n </ion-item>\\n <ion-item>\\n <ion-input name=\\\"description\\\" type=\\\"text\\\" placeholder=\\\"Description du groupe\\\" ngModel value=\\\"{{ groupe.description }}\\\"></ion-input>\\n </ion-item>\\n <ion-item>\\n <ion-label>Utilisateurs</ion-label>\\n <ion-select name=\\\"utilisateurs\\\" multiple=\\\"true\\\" [(ngModel)]=\\\"usersSelected\\\" [value]=\\\"users\\\">\\n <ion-select-option *ngFor=\\\"let user of users\\\" value=\\\"{{user._id}}\\\">{{user.username}}</ion-select-option>\\n </ion-select>\\n </ion-item>\\n </div>\\n <div class=\\\"ion-padding\\\">\\n <ion-button size=\\\"large\\\" type=\\\"submit\\\" [disabled]=\\\"form.invalid\\\" expand=\\\"block\\\" (click)=\\\"modifGroupe(form)\\\">Modifier</ion-button>\\n </div>\\n </ion-col>\\n </ion-row>\\n </ion-grid>\\n </form>\\n</ion-content>\\n\";","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\n\nimport { GestionGroupePage } from './gestion-groupe.page';\n\nconst routes: Routes = [\n {\n path: '',\n component: GestionGroupePage\n }\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class GestionGroupePageRoutingModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { IonicModule } from '@ionic/angular';\n\nimport { GestionGroupePageRoutingModule } from './gestion-groupe-routing.module';\n\nimport { GestionGroupePage } from './gestion-groupe.page';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n IonicModule,\n GestionGroupePageRoutingModule\n ],\n declarations: [GestionGroupePage]\n})\nexport class GestionGroupePageModule {}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2dlc3Rpb24tZ3JvdXBlL2dlc3Rpb24tZ3JvdXBlLnBhZ2Uuc2NzcyJ9 */\";","import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { GestionGroupeService } from '../services/gestion-groupe.service';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'app-gestion-groupe',\n templateUrl: './gestion-groupe.page.html',\n styleUrls: ['./gestion-groupe.page.scss'],\n})\nexport class GestionGroupePage implements OnInit {\n\n id;\n groupe;\n usersTempo;\n users;\n usersSelected;\n idUser;\n defaultusersSelected;\n\n\n constructor(private activatedRoute: ActivatedRoute,private router: Router, private gestionGroupeService: GestionGroupeService) { \n this.groupe = {\n id: 0,\n name: \"\",\n description: \"\",\n }\n \n this.users = [];\n this.usersTempo;\n this.usersSelected = [];\n this.defaultusersSelected = [];\n }\n\n ngOnInit() {\n this.id = this.activatedRoute.snapshot.paramMap.get('id');\n this.idUser = JSON.parse(localStorage.getItem('user')).id;\n this.getGroupe();\n this.getUsers();\n }\n\n modifGroupe(form){\n let addUser = [];\n let removeUser = [];\n let name = form.value.name;\n let description = form.value.description;\n\n if(Array.isArray(this.usersSelected)){\n this.usersSelected.forEach((element) => {\n addUser.push(element);\n })\n }\n\n console.log(\"Add user : \" + JSON.stringify(addUser));\n\n if(Array.isArray(this.defaultusersSelected)){\n this.defaultusersSelected.forEach((element) => {\n //On vérifie si les utilisateurs qui étaient selectionné le sont toujours\n let stop = false;\n let i = 0;\n while(i < addUser.length && !stop){\n let aUser = addUser[i];\n if(aUser === element){\n stop = true;\n }\n i++;\n }\n if(!stop){\n removeUser.push(element);\n }\n })\n }\n if(addUser.length > 0) this.gestionGroupeService.addUser(this.id,addUser).subscribe(data => this.router.navigate(['/conversation/' + this.id]));\n if(removeUser.length > 0) this.gestionGroupeService.removeUser(this.id,removeUser).subscribe(data => this.router.navigate(['/conversation/' + this.id]));\n\n let body = {\n \"name\": name,\n \"description\": description,\n \"users\": this.usersSelected\n }\n this.gestionGroupeService.updateGroupe(this.id,body).subscribe(data => this.router.navigate(['/conversation/' + this.id]));\n }\n\n getGroupe(){\n this.gestionGroupeService.getGroupe(this.id).subscribe(data => {\n let groups = data.reverse();\n if(Array.isArray(groups)){\n groups.forEach((groupe) => {\n if(groupe._id === this.id){\n this.groupe = groupe;\n }\n })\n }\n });\n }\n\n async getUsers(){\n await this.gestionGroupeService.getAllUsers().subscribe(data => {\n this.usersTempo = data.reverse();\n })\n await this.gestionGroupeService.getUsers(this.id).subscribe(data => {\n let currentUsers = data.reverse();\n if(Array.isArray(this.usersTempo)){\n this.usersTempo.forEach((element,index) => {\n if(element._id !== this.idUser){\n if(Array.isArray(currentUsers)){\n let stop = false;\n let i = 0;\n while(i<currentUsers.length && !stop){\n let curUser = currentUsers[i];\n if(element._id === curUser._id){\n this.users.push(element);\n this.usersSelected.push(element._id);\n stop = true;\n }\n i++;\n }\n if(!stop){\n this.users.push(element);\n }\n }\n }\n })\n }\n this.defaultusersSelected = this.usersSelected;\n })\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { GlobalService } from \"../global.service\";\nimport { catchError } from 'rxjs/operators'; \nimport { of } from 'rxjs';\nimport { HttpHeaders } from '@angular/common/http';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class GestionGroupeService {\n\n constructor(private http: HttpClient, private global: GlobalService) { \n }\n\n updateGroupe(id,body): Observable<any> {\n return this.http.put(`${this.global.apiRoot}/rooms/` + id,body, this.global.getHeaderHttpPostConnected()).pipe(\n map(results => {\n console.log('get : ' + results);\n return results;\n }),\n catchError(err => of(err))\n );\n }\n\n getGroupe(id): Observable<any> {\n return this.http.get(`${this.global.apiRoot}/rooms`, this.global.getHeaderHttpPostConnected()).pipe(\n map(results => {\n console.log('get : ' + results);\n return results;\n }),\n catchError(err => of(err))\n );\n }\n\n addUser(id,ids): Observable<any> {\n let body = {\n 'ids':ids,\n }\n return this.http.post(`${this.global.apiRoot}/rooms/` + id + \"/add_users\",body, this.global.getHeaderHttpPostConnected()).pipe(\n map(results => {\n console.log('post : ' + results);\n return results;\n }),\n catchError((err) => {\n return of(err);\n })\n );\n }\n\n removeUser(id,ids): Observable<any> {\n let body = {\n 'ids':ids,\n }\n console.log(ids);\n return this.http.post(`${this.global.apiRoot}/rooms/` + id + \"/remove_users\",body, this.global.getHeaderHttpPostConnected()).pipe(\n map(results => {\n console.log('post : ' + results);\n return results;\n }),\n catchError(err => of(err))\n );\n }\n\n getUsers(id): Observable<any> {\n return this.http.get(`${this.global.apiRoot}/rooms/` + id + \"/users\", this.global.getHeaderHttpPostConnected()).pipe(\n map(results => {\n console.log('get : ' + results);\n return results;\n }),\n catchError(err => of(err))\n );\n }\n\n getAllUsers(): Observable<any> {\n return this.http.get(`${this.global.apiRoot}/users`, this.global.getHeaderHttpPostConnected()).pipe(\n map(results => {\n console.log('get : ' + results);\n return results;\n }),\n catchError(err => of(err))\n );\n }\n}\n"]} \ No newline at end of file diff --git a/ionic/www/index.html b/ionic/www/index.html index 7fe514e047ead328fb62e99a27eb8d35e76ed850..5dff1ec659fceb57ef79d0e0d97aeda9bdf27da8 100644 --- a/ionic/www/index.html +++ b/ionic/www/index.html @@ -21,6 +21,6 @@ <body> <app-root></app-root> -<script src="runtime-es2015.js" type="module"></script><script src="runtime-es5.js" nomodule defer></script><script src="polyfills-es5.js" nomodule defer></script><script src="polyfills-es2015.js" type="module"></script><script src="styles-es2015.js" type="module"></script><script src="styles-es5.js" nomodule defer></script><script src="cordova.js" defer></script><script src="vendor-es2015.js" type="module"></script><script src="vendor-es5.js" nomodule defer></script><script src="main-es2015.js" type="module"></script><script src="main-es5.js" nomodule defer></script></body> +<script src="runtime-es2015.js" type="module"></script><script src="runtime-es5.js" nomodule defer></script><script src="polyfills-es5.js" nomodule defer></script><script src="polyfills-es2015.js" type="module"></script><script src="styles-es2015.js" type="module"></script><script src="styles-es5.js" nomodule defer></script><script src="vendor-es2015.js" type="module"></script><script src="vendor-es5.js" nomodule defer></script><script src="main-es2015.js" type="module"></script><script src="main-es5.js" nomodule defer></script></body> </html> diff --git a/ionic/www/main-es2015.js b/ionic/www/main-es2015.js index d06064146dce333aef62c3fcad5ef599a48ad35c..b53fc82be2fbbb69455196ca8c897bac27609616 100644 --- a/ionic/www/main-es2015.js +++ b/ionic/www/main-es2015.js @@ -296,12 +296,24 @@ const routes = [ loadChildren: () => __webpack_require__.e(/*! import() | tabs-tabs-module */ "tabs-tabs-module").then(__webpack_require__.bind(null, /*! ./tabs/tabs.module */ "./src/app/tabs/tabs.module.ts")).then(m => m.TabsPageModule) }, { - path: 'conversation', - loadChildren: () => __webpack_require__.e(/*! import() | conversation-conversation-module */ "conversation-conversation-module").then(__webpack_require__.bind(null, /*! ./conversation/conversation.module */ "./src/app/conversation/conversation.module.ts")).then(m => m.ConversationPageModule) + path: 'conversation/:id', + loadChildren: () => Promise.all(/*! import() | conversation-conversation-module */[__webpack_require__.e("common"), __webpack_require__.e("conversation-conversation-module")]).then(__webpack_require__.bind(null, /*! ./conversation/conversation.module */ "./src/app/conversation/conversation.module.ts")).then(m => m.ConversationPageModule) }, { path: 'login', loadChildren: () => Promise.all(/*! import() | auth-login-login-module */[__webpack_require__.e("common"), __webpack_require__.e("auth-login-login-module")]).then(__webpack_require__.bind(null, /*! ./auth/login/login.module */ "./src/app/auth/login/login.module.ts")).then(m => m.LoginPageModule) + }, + { + path: 'register', + loadChildren: () => Promise.all(/*! import() | auth-register-register-module */[__webpack_require__.e("common"), __webpack_require__.e("auth-register-register-module")]).then(__webpack_require__.bind(null, /*! ./auth/register/register.module */ "./src/app/auth/register/register.module.ts")).then(m => m.RegisterPageModule) + }, + { + path: 'new-groupe', + loadChildren: () => Promise.all(/*! import() | new-groupe-new-groupe-module */[__webpack_require__.e("common"), __webpack_require__.e("new-groupe-new-groupe-module")]).then(__webpack_require__.bind(null, /*! ./new-groupe/new-groupe.module */ "./src/app/new-groupe/new-groupe.module.ts")).then(m => m.NewGroupePageModule) + }, + { + path: 'gestion-groupe/:id', + loadChildren: () => Promise.all(/*! import() | gestion-groupe-gestion-groupe-module */[__webpack_require__.e("common"), __webpack_require__.e("gestion-groupe-gestion-groupe-module")]).then(__webpack_require__.bind(null, /*! ./gestion-groupe/gestion-groupe.module */ "./src/app/gestion-groupe/gestion-groupe.module.ts")).then(m => m.GestionGroupePageModule) } ]; let AppRoutingModule = class AppRoutingModule { diff --git a/ionic/www/main-es2015.js.map b/ionic/www/main-es2015.js.map index bd38544252895940193d4dd019a4832162afb7f5..e59a6f688a651ac02c299ca337c38214ceec498b 100644 --- a/ionic/www/main-es2015.js.map +++ b/ionic/www/main-es2015.js.map @@ -1 +1 @@ -{"version":3,"sources":["./$_lazy_route_resource lazy namespace object","./node_modules/@ionic/core/dist/esm lazy ^\\.\\/.*\\.entry\\.js$ include: \\.entry\\.js$ exclude: \\.system\\.entry\\.js$ namespace object","./src/app/app.component.html","./src/app/app-routing.module.ts","./src/app/app.component.scss","./src/app/app.component.ts","./src/app/app.module.ts","./src/environments/environment.ts","./src/main.ts"],"names":[],"mappings":";;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA,4CAA4C,WAAW;AACvD;AACA;AACA,wE;;;;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA,qC;;;;;;;;;;;;ACnOA;AAAe,mIAAoE,E;;;;;;;;;;;;;;;;;;ACA1C;AACiC;AAE1E,MAAM,MAAM,GAAW;IACrB;QACE,IAAI,EAAE,EAAE;QACR,YAAY,EAAE,GAAG,EAAE,CAAC,4KAA4B,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC;KAC7E;IACD;QACE,IAAI,EAAE,cAAc;QACpB,YAAY,EAAE,GAAG,EAAE,CAAC,4OAA4C,CAAC,IAAI,CAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,sBAAsB,CAAC;KACtG;IACD;QACE,IAAI,EAAE,OAAO;QACb,YAAY,EAAE,GAAG,EAAE,CAAC,uPAAmC,CAAC,IAAI,CAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC;KACtF;CACF,CAAC;IAOW,gBAAgB,SAAhB,gBAAgB;CAAG;AAAnB,gBAAgB;IAN5B,8DAAQ,CAAC;QACR,OAAO,EAAE;YACP,4DAAY,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,kBAAkB,EAAE,iEAAiB,EAAE,CAAC;SACxE;QACD,OAAO,EAAE,CAAC,4DAAY,CAAC;KACxB,CAAC;GACW,gBAAgB,CAAG;AAAH;;;;;;;;;;;;;ACvB7B;AAAe,6GAA8C,+HAA+H,E;;;;;;;;;;;;;;;;;;;;;ACAlJ;AACD;AACC;AACqB;AACN;IAO5C,YAAY,SAAZ,YAAY;IACvB,YACU,QAAkB,EAClB,YAA0B,EAC1B,SAAoB,EACpB,MAAc;QAHd,aAAQ,GAAR,QAAQ,CAAU;QAClB,iBAAY,GAAZ,YAAY,CAAc;QAC1B,cAAS,GAAT,SAAS,CAAW;QACpB,WAAM,GAAN,MAAM,CAAQ;QAEtB,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAED,aAAa;QACX,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;YAC9B,IAAG,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,EAAC;gBAChC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;aACrC;YACD,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;YAC9B,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;QAC3B,CAAC,CAAC,CAAC;IACL,CAAC;CACF;;YA5BQ,uDAAQ;YACR,4EAAY;YACZ,sEAAS;YAHT,sDAAM;;AAUF,YAAY;IALxB,+DAAS,CAAC;QACT,QAAQ,EAAE,UAAU;QACpB,iNAAiC;;KAElC,CAAC;GACW,YAAY,CAmBxB;AAnBwB;;;;;;;;;;;;;;;;;;;;;;;;;;ACXgB;AACiB;AACL;AAEY;AACF;AACN;AAED;AACT;AACQ;IAa1C,SAAS,SAAT,SAAS;CAAG;AAAZ,SAAS;IAXrB,8DAAQ,CAAC;QACR,YAAY,EAAE,CAAC,2DAAY,CAAC;QAC5B,eAAe,EAAE,EAAE;QACnB,OAAO,EAAE,CAAC,uEAAa,EAAE,0DAAW,CAAC,OAAO,EAAE,EAAE,oEAAgB,EAAC,qEAAgB,CAAC;QAClF,SAAS,EAAE;YACT,sEAAS;YACT,4EAAY;YACZ,EAAE,OAAO,EAAE,kEAAkB,EAAE,QAAQ,EAAE,iEAAkB,EAAE;SAC9D;QACD,SAAS,EAAE,CAAC,2DAAY,CAAC;KAC1B,CAAC;GACW,SAAS,CAAG;AAAH;;;;;;;;;;;;;ACvBtB;AAAA;AAAA,gFAAgF;AAChF,0EAA0E;AAC1E,gEAAgE;AAEzD,MAAM,WAAW,GAAG;IACzB,UAAU,EAAE,KAAK;CAClB,CAAC;AAEF;;;;;;GAMG;AACH,mEAAmE;;;;;;;;;;;;;ACfnE;AAAA;AAAA;AAAA;AAAA;AAA+C;AAC4B;AAE9B;AACY;AAEzD,IAAI,qEAAW,CAAC,UAAU,EAAE;IAC1B,oEAAc,EAAE,CAAC;CAClB;AAED,gGAAsB,EAAE,CAAC,eAAe,CAAC,yDAAS,CAAC;KAChD,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC","file":"main-es2015.js","sourcesContent":["function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"./$$_lazy_route_resource lazy recursive\";","var map = {\n\t\"./ion-action-sheet.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-action-sheet.entry.js\",\n\t\t\"common\",\n\t\t0\n\t],\n\t\"./ion-alert.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-alert.entry.js\",\n\t\t\"common\",\n\t\t1\n\t],\n\t\"./ion-app_8.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-app_8.entry.js\",\n\t\t\"common\",\n\t\t2\n\t],\n\t\"./ion-avatar_3.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-avatar_3.entry.js\",\n\t\t\"common\",\n\t\t3\n\t],\n\t\"./ion-back-button.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-back-button.entry.js\",\n\t\t\"common\",\n\t\t4\n\t],\n\t\"./ion-backdrop.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-backdrop.entry.js\",\n\t\t5\n\t],\n\t\"./ion-button_2.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-button_2.entry.js\",\n\t\t\"common\",\n\t\t6\n\t],\n\t\"./ion-card_5.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-card_5.entry.js\",\n\t\t\"common\",\n\t\t7\n\t],\n\t\"./ion-checkbox.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-checkbox.entry.js\",\n\t\t\"common\",\n\t\t8\n\t],\n\t\"./ion-chip.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-chip.entry.js\",\n\t\t\"common\",\n\t\t9\n\t],\n\t\"./ion-col_3.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-col_3.entry.js\",\n\t\t10\n\t],\n\t\"./ion-datetime_3.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-datetime_3.entry.js\",\n\t\t\"common\",\n\t\t11\n\t],\n\t\"./ion-fab_3.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-fab_3.entry.js\",\n\t\t\"common\",\n\t\t12\n\t],\n\t\"./ion-img.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-img.entry.js\",\n\t\t13\n\t],\n\t\"./ion-infinite-scroll_2.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-infinite-scroll_2.entry.js\",\n\t\t14\n\t],\n\t\"./ion-input.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-input.entry.js\",\n\t\t\"common\",\n\t\t15\n\t],\n\t\"./ion-item-option_3.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-item-option_3.entry.js\",\n\t\t\"common\",\n\t\t16\n\t],\n\t\"./ion-item_8.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-item_8.entry.js\",\n\t\t\"common\",\n\t\t17\n\t],\n\t\"./ion-loading.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-loading.entry.js\",\n\t\t\"common\",\n\t\t18\n\t],\n\t\"./ion-menu_3.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-menu_3.entry.js\",\n\t\t\"common\",\n\t\t19\n\t],\n\t\"./ion-modal.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-modal.entry.js\",\n\t\t\"common\",\n\t\t20\n\t],\n\t\"./ion-nav_2.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-nav_2.entry.js\",\n\t\t\"common\",\n\t\t21\n\t],\n\t\"./ion-popover.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-popover.entry.js\",\n\t\t\"common\",\n\t\t22\n\t],\n\t\"./ion-progress-bar.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-progress-bar.entry.js\",\n\t\t\"common\",\n\t\t23\n\t],\n\t\"./ion-radio_2.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-radio_2.entry.js\",\n\t\t\"common\",\n\t\t24\n\t],\n\t\"./ion-range.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-range.entry.js\",\n\t\t\"common\",\n\t\t25\n\t],\n\t\"./ion-refresher_2.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-refresher_2.entry.js\",\n\t\t\"common\",\n\t\t26\n\t],\n\t\"./ion-reorder_2.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-reorder_2.entry.js\",\n\t\t\"common\",\n\t\t27\n\t],\n\t\"./ion-ripple-effect.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-ripple-effect.entry.js\",\n\t\t28\n\t],\n\t\"./ion-route_4.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-route_4.entry.js\",\n\t\t\"common\",\n\t\t29\n\t],\n\t\"./ion-searchbar.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-searchbar.entry.js\",\n\t\t\"common\",\n\t\t30\n\t],\n\t\"./ion-segment_2.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-segment_2.entry.js\",\n\t\t\"common\",\n\t\t31\n\t],\n\t\"./ion-select_3.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-select_3.entry.js\",\n\t\t\"common\",\n\t\t32\n\t],\n\t\"./ion-slide_2.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-slide_2.entry.js\",\n\t\t33\n\t],\n\t\"./ion-spinner.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-spinner.entry.js\",\n\t\t\"common\",\n\t\t34\n\t],\n\t\"./ion-split-pane.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-split-pane.entry.js\",\n\t\t35\n\t],\n\t\"./ion-tab-bar_2.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-tab-bar_2.entry.js\",\n\t\t\"common\",\n\t\t36\n\t],\n\t\"./ion-tab_2.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-tab_2.entry.js\",\n\t\t\"common\",\n\t\t37\n\t],\n\t\"./ion-text.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-text.entry.js\",\n\t\t\"common\",\n\t\t38\n\t],\n\t\"./ion-textarea.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-textarea.entry.js\",\n\t\t\"common\",\n\t\t39\n\t],\n\t\"./ion-toast.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-toast.entry.js\",\n\t\t\"common\",\n\t\t40\n\t],\n\t\"./ion-toggle.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-toggle.entry.js\",\n\t\t\"common\",\n\t\t41\n\t],\n\t\"./ion-virtual-scroll.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-virtual-scroll.entry.js\",\n\t\t42\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn Promise.all(ids.slice(1).map(__webpack_require__.e)).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = \"./node_modules/@ionic/core/dist/esm lazy recursive ^\\\\.\\\\/.*\\\\.entry\\\\.js$ include: \\\\.entry\\\\.js$ exclude: \\\\.system\\\\.entry\\\\.js$\";\nmodule.exports = webpackAsyncContext;","export default \"<ion-app>\\n <ion-router-outlet></ion-router-outlet>\\n</ion-app>\\n\";","import { NgModule } from '@angular/core';\nimport { PreloadAllModules, RouterModule, Routes } from '@angular/router';\n\nconst routes: Routes = [\n {\n path: '',\n loadChildren: () => import('./tabs/tabs.module').then(m => m.TabsPageModule)\n },\n {\n path: 'conversation',\n loadChildren: () => import('./conversation/conversation.module').then( m => m.ConversationPageModule)\n },\n {\n path: 'login',\n loadChildren: () => import('./auth/login/login.module').then( m => m.LoginPageModule)\n }\n];\n@NgModule({\n imports: [\n RouterModule.forRoot(routes, { preloadingStrategy: PreloadAllModules })\n ],\n exports: [RouterModule]\n})\nexport class AppRoutingModule {}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2FwcC5jb21wb25lbnQuc2NzcyJ9 */\";","import { Component } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Platform } from '@ionic/angular';\nimport { SplashScreen } from '@ionic-native/splash-screen/ngx';\nimport { StatusBar } from '@ionic-native/status-bar/ngx';\n\n@Component({\n selector: 'app-root',\n templateUrl: 'app.component.html',\n styleUrls: ['app.component.scss']\n})\nexport class AppComponent {\n constructor(\n private platform: Platform,\n private splashScreen: SplashScreen,\n private statusBar: StatusBar,\n private router: Router\n ) {\n this.initializeApp();\n }\n\n initializeApp() {\n this.platform.ready().then(() => {\n if(!localStorage.getItem('token')){\n this.router.navigateByUrl('/login');\n }\n this.statusBar.styleDefault();\n this.splashScreen.hide();\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { RouteReuseStrategy } from '@angular/router';\n\nimport { IonicModule, IonicRouteStrategy } from '@ionic/angular';\nimport { SplashScreen } from '@ionic-native/splash-screen/ngx';\nimport { StatusBar } from '@ionic-native/status-bar/ngx';\n\nimport { AppRoutingModule } from './app-routing.module';\nimport { AppComponent } from './app.component';\nimport { HttpClientModule } from '@angular/common/http'\n\n@NgModule({\n declarations: [AppComponent],\n entryComponents: [],\n imports: [BrowserModule, IonicModule.forRoot(), AppRoutingModule,HttpClientModule],\n providers: [\n StatusBar,\n SplashScreen,\n { provide: RouteReuseStrategy, useClass: IonicRouteStrategy }\n ],\n bootstrap: [AppComponent]\n})\nexport class AppModule {}\n","// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n .catch(err => console.log(err));\n"],"sourceRoot":"webpack:///"} \ No newline at end of file +{"version":3,"sources":["./$_lazy_route_resource lazy namespace object","./node_modules/@ionic/core/dist/esm lazy ^\\.\\/.*\\.entry\\.js$ include: \\.entry\\.js$ exclude: \\.system\\.entry\\.js$ namespace object","./src/app/app.component.html","./src/app/app-routing.module.ts","./src/app/app.component.scss","./src/app/app.component.ts","./src/app/app.module.ts","./src/environments/environment.ts","./src/main.ts"],"names":[],"mappings":";;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA,4CAA4C,WAAW;AACvD;AACA;AACA,wE;;;;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA,qC;;;;;;;;;;;;ACnOA;AAAe,mIAAoE,E;;;;;;;;;;;;;;;;;;ACA1C;AACiC;AAE1E,MAAM,MAAM,GAAW;IACrB;QACE,IAAI,EAAE,EAAE;QACR,YAAY,EAAE,GAAG,EAAE,CAAC,4KAA4B,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC;KAC7E;IACD;QACE,IAAI,EAAE,kBAAkB;QACxB,YAAY,EAAE,GAAG,EAAE,CAAC,2RAA4C,CAAC,IAAI,CAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,sBAAsB,CAAC;KACtG;IACD;QACE,IAAI,EAAE,OAAO;QACb,YAAY,EAAE,GAAG,EAAE,CAAC,uPAAmC,CAAC,IAAI,CAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC;KACtF;IACD;QACE,IAAI,EAAE,UAAU;QAChB,YAAY,EAAE,GAAG,EAAE,CAAC,+QAAyC,CAAC,IAAI,CAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAC;KAC/F;IACD;QACE,IAAI,EAAE,YAAY;QAClB,YAAY,EAAE,GAAG,EAAE,CAAC,2QAAwC,CAAC,IAAI,CAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC;KAC/F;IACD;QACE,IAAI,EAAE,oBAAoB;QAC1B,YAAY,EAAE,GAAG,EAAE,CAAC,2SAAgD,CAAC,IAAI,CAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,uBAAuB,CAAC;KAC3G;CACF,CAAC;IAOW,gBAAgB,SAAhB,gBAAgB;CAAG;AAAnB,gBAAgB;IAN5B,8DAAQ,CAAC;QACR,OAAO,EAAE;YACP,4DAAY,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,kBAAkB,EAAE,iEAAiB,EAAE,CAAC;SACxE;QACD,OAAO,EAAE,CAAC,4DAAY,CAAC;KACxB,CAAC;GACW,gBAAgB,CAAG;AAAH;;;;;;;;;;;;;ACnC7B;AAAe,6GAA8C,+HAA+H,E;;;;;;;;;;;;;;;;;;;;;ACAlJ;AACD;AACC;AACqB;AACN;IAO5C,YAAY,SAAZ,YAAY;IACvB,YACU,QAAkB,EAClB,YAA0B,EAC1B,SAAoB,EACpB,MAAc;QAHd,aAAQ,GAAR,QAAQ,CAAU;QAClB,iBAAY,GAAZ,YAAY,CAAc;QAC1B,cAAS,GAAT,SAAS,CAAW;QACpB,WAAM,GAAN,MAAM,CAAQ;QAEtB,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAED,aAAa;QACX,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;YAC9B,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,EAAC;gBACjC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;aACrC;YACD,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;YAC9B,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;QAC3B,CAAC,CAAC,CAAC;IACL,CAAC;CACF;;YA5BQ,uDAAQ;YACR,4EAAY;YACZ,sEAAS;YAHT,sDAAM;;AAUF,YAAY;IALxB,+DAAS,CAAC;QACT,QAAQ,EAAE,UAAU;QACpB,iNAAiC;;KAElC,CAAC;GACW,YAAY,CAmBxB;AAnBwB;;;;;;;;;;;;;;;;;;;;;;;;;;ACXgB;AACiB;AACL;AAEY;AACF;AACN;AAED;AACT;AACQ;IAa1C,SAAS,SAAT,SAAS;CAAG;AAAZ,SAAS;IAXrB,8DAAQ,CAAC;QACR,YAAY,EAAE,CAAC,2DAAY,CAAC;QAC5B,eAAe,EAAE,EAAE;QACnB,OAAO,EAAE,CAAC,uEAAa,EAAE,0DAAW,CAAC,OAAO,EAAE,EAAE,oEAAgB,EAAC,qEAAgB,CAAC;QAClF,SAAS,EAAE;YACT,sEAAS;YACT,4EAAY;YACZ,EAAE,OAAO,EAAE,kEAAkB,EAAE,QAAQ,EAAE,iEAAkB,EAAE;SAC9D;QACD,SAAS,EAAE,CAAC,2DAAY,CAAC;KAC1B,CAAC;GACW,SAAS,CAAG;AAAH;;;;;;;;;;;;;ACvBtB;AAAA;AAAA,gFAAgF;AAChF,0EAA0E;AAC1E,gEAAgE;AAEzD,MAAM,WAAW,GAAG;IACzB,UAAU,EAAE,KAAK;CAClB,CAAC;AAEF;;;;;;GAMG;AACH,mEAAmE;;;;;;;;;;;;;ACfnE;AAAA;AAAA;AAAA;AAAA;AAA+C;AAC4B;AAE9B;AACY;AAEzD,IAAI,qEAAW,CAAC,UAAU,EAAE;IAC1B,oEAAc,EAAE,CAAC;CAClB;AAED,gGAAsB,EAAE,CAAC,eAAe,CAAC,yDAAS,CAAC;KAChD,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC","file":"main-es2015.js","sourcesContent":["function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"./$$_lazy_route_resource lazy recursive\";","var map = {\n\t\"./ion-action-sheet.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-action-sheet.entry.js\",\n\t\t\"common\",\n\t\t0\n\t],\n\t\"./ion-alert.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-alert.entry.js\",\n\t\t\"common\",\n\t\t1\n\t],\n\t\"./ion-app_8.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-app_8.entry.js\",\n\t\t\"common\",\n\t\t2\n\t],\n\t\"./ion-avatar_3.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-avatar_3.entry.js\",\n\t\t\"common\",\n\t\t3\n\t],\n\t\"./ion-back-button.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-back-button.entry.js\",\n\t\t\"common\",\n\t\t4\n\t],\n\t\"./ion-backdrop.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-backdrop.entry.js\",\n\t\t5\n\t],\n\t\"./ion-button_2.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-button_2.entry.js\",\n\t\t\"common\",\n\t\t6\n\t],\n\t\"./ion-card_5.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-card_5.entry.js\",\n\t\t\"common\",\n\t\t7\n\t],\n\t\"./ion-checkbox.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-checkbox.entry.js\",\n\t\t\"common\",\n\t\t8\n\t],\n\t\"./ion-chip.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-chip.entry.js\",\n\t\t\"common\",\n\t\t9\n\t],\n\t\"./ion-col_3.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-col_3.entry.js\",\n\t\t10\n\t],\n\t\"./ion-datetime_3.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-datetime_3.entry.js\",\n\t\t\"common\",\n\t\t11\n\t],\n\t\"./ion-fab_3.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-fab_3.entry.js\",\n\t\t\"common\",\n\t\t12\n\t],\n\t\"./ion-img.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-img.entry.js\",\n\t\t13\n\t],\n\t\"./ion-infinite-scroll_2.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-infinite-scroll_2.entry.js\",\n\t\t14\n\t],\n\t\"./ion-input.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-input.entry.js\",\n\t\t\"common\",\n\t\t15\n\t],\n\t\"./ion-item-option_3.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-item-option_3.entry.js\",\n\t\t\"common\",\n\t\t16\n\t],\n\t\"./ion-item_8.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-item_8.entry.js\",\n\t\t\"common\",\n\t\t17\n\t],\n\t\"./ion-loading.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-loading.entry.js\",\n\t\t\"common\",\n\t\t18\n\t],\n\t\"./ion-menu_3.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-menu_3.entry.js\",\n\t\t\"common\",\n\t\t19\n\t],\n\t\"./ion-modal.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-modal.entry.js\",\n\t\t\"common\",\n\t\t20\n\t],\n\t\"./ion-nav_2.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-nav_2.entry.js\",\n\t\t\"common\",\n\t\t21\n\t],\n\t\"./ion-popover.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-popover.entry.js\",\n\t\t\"common\",\n\t\t22\n\t],\n\t\"./ion-progress-bar.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-progress-bar.entry.js\",\n\t\t\"common\",\n\t\t23\n\t],\n\t\"./ion-radio_2.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-radio_2.entry.js\",\n\t\t\"common\",\n\t\t24\n\t],\n\t\"./ion-range.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-range.entry.js\",\n\t\t\"common\",\n\t\t25\n\t],\n\t\"./ion-refresher_2.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-refresher_2.entry.js\",\n\t\t\"common\",\n\t\t26\n\t],\n\t\"./ion-reorder_2.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-reorder_2.entry.js\",\n\t\t\"common\",\n\t\t27\n\t],\n\t\"./ion-ripple-effect.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-ripple-effect.entry.js\",\n\t\t28\n\t],\n\t\"./ion-route_4.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-route_4.entry.js\",\n\t\t\"common\",\n\t\t29\n\t],\n\t\"./ion-searchbar.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-searchbar.entry.js\",\n\t\t\"common\",\n\t\t30\n\t],\n\t\"./ion-segment_2.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-segment_2.entry.js\",\n\t\t\"common\",\n\t\t31\n\t],\n\t\"./ion-select_3.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-select_3.entry.js\",\n\t\t\"common\",\n\t\t32\n\t],\n\t\"./ion-slide_2.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-slide_2.entry.js\",\n\t\t33\n\t],\n\t\"./ion-spinner.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-spinner.entry.js\",\n\t\t\"common\",\n\t\t34\n\t],\n\t\"./ion-split-pane.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-split-pane.entry.js\",\n\t\t35\n\t],\n\t\"./ion-tab-bar_2.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-tab-bar_2.entry.js\",\n\t\t\"common\",\n\t\t36\n\t],\n\t\"./ion-tab_2.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-tab_2.entry.js\",\n\t\t\"common\",\n\t\t37\n\t],\n\t\"./ion-text.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-text.entry.js\",\n\t\t\"common\",\n\t\t38\n\t],\n\t\"./ion-textarea.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-textarea.entry.js\",\n\t\t\"common\",\n\t\t39\n\t],\n\t\"./ion-toast.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-toast.entry.js\",\n\t\t\"common\",\n\t\t40\n\t],\n\t\"./ion-toggle.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-toggle.entry.js\",\n\t\t\"common\",\n\t\t41\n\t],\n\t\"./ion-virtual-scroll.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-virtual-scroll.entry.js\",\n\t\t42\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn Promise.all(ids.slice(1).map(__webpack_require__.e)).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = \"./node_modules/@ionic/core/dist/esm lazy recursive ^\\\\.\\\\/.*\\\\.entry\\\\.js$ include: \\\\.entry\\\\.js$ exclude: \\\\.system\\\\.entry\\\\.js$\";\nmodule.exports = webpackAsyncContext;","export default \"<ion-app>\\n <ion-router-outlet></ion-router-outlet>\\n</ion-app>\\n\";","import { NgModule } from '@angular/core';\nimport { PreloadAllModules, RouterModule, Routes } from '@angular/router';\n\nconst routes: Routes = [\n {\n path: '',\n loadChildren: () => import('./tabs/tabs.module').then(m => m.TabsPageModule)\n },\n {\n path: 'conversation/:id',\n loadChildren: () => import('./conversation/conversation.module').then( m => m.ConversationPageModule)\n },\n {\n path: 'login',\n loadChildren: () => import('./auth/login/login.module').then( m => m.LoginPageModule)\n },\n {\n path: 'register',\n loadChildren: () => import('./auth/register/register.module').then( m => m.RegisterPageModule)\n },\n {\n path: 'new-groupe',\n loadChildren: () => import('./new-groupe/new-groupe.module').then( m => m.NewGroupePageModule)\n },\n {\n path: 'gestion-groupe/:id',\n loadChildren: () => import('./gestion-groupe/gestion-groupe.module').then( m => m.GestionGroupePageModule)\n }\n];\n@NgModule({\n imports: [\n RouterModule.forRoot(routes, { preloadingStrategy: PreloadAllModules })\n ],\n exports: [RouterModule]\n})\nexport class AppRoutingModule {}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2FwcC5jb21wb25lbnQuc2NzcyJ9 */\";","import { Component } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Platform } from '@ionic/angular';\nimport { SplashScreen } from '@ionic-native/splash-screen/ngx';\nimport { StatusBar } from '@ionic-native/status-bar/ngx';\n\n@Component({\n selector: 'app-root',\n templateUrl: 'app.component.html',\n styleUrls: ['app.component.scss']\n})\nexport class AppComponent {\n constructor(\n private platform: Platform,\n private splashScreen: SplashScreen,\n private statusBar: StatusBar,\n private router: Router\n ) {\n this.initializeApp();\n }\n\n initializeApp() {\n this.platform.ready().then(() => {\n if (!localStorage.getItem('token')){\n this.router.navigateByUrl('/login');\n }\n this.statusBar.styleDefault();\n this.splashScreen.hide();\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { RouteReuseStrategy } from '@angular/router';\n\nimport { IonicModule, IonicRouteStrategy } from '@ionic/angular';\nimport { SplashScreen } from '@ionic-native/splash-screen/ngx';\nimport { StatusBar } from '@ionic-native/status-bar/ngx';\n\nimport { AppRoutingModule } from './app-routing.module';\nimport { AppComponent } from './app.component';\nimport { HttpClientModule } from '@angular/common/http'\n\n@NgModule({\n declarations: [AppComponent],\n entryComponents: [],\n imports: [BrowserModule, IonicModule.forRoot(), AppRoutingModule,HttpClientModule],\n providers: [\n StatusBar,\n SplashScreen,\n { provide: RouteReuseStrategy, useClass: IonicRouteStrategy }\n ],\n bootstrap: [AppComponent]\n})\nexport class AppModule {}\n","// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n .catch(err => console.log(err));\n"],"sourceRoot":"webpack:///"} \ No newline at end of file diff --git a/ionic/www/main-es5.js b/ionic/www/main-es5.js index 1310c1b69da8f5dfe3449915aacea8b739f1c9b9..9f6a1ae6ff32c2be823743ea7f7bf2edfe084c93 100644 --- a/ionic/www/main-es5.js +++ b/ionic/www/main-es5.js @@ -187,11 +187,11 @@ }); } }, { - path: 'conversation', + path: 'conversation/:id', loadChildren: function loadChildren() { - return __webpack_require__.e( + return Promise.all( /*! import() | conversation-conversation-module */ - "conversation-conversation-module").then(__webpack_require__.bind(null, + [__webpack_require__.e("common"), __webpack_require__.e("conversation-conversation-module")]).then(__webpack_require__.bind(null, /*! ./conversation/conversation.module */ "./src/app/conversation/conversation.module.ts")).then(function (m) { return m.ConversationPageModule; @@ -208,6 +208,39 @@ return m.LoginPageModule; }); } + }, { + path: 'register', + loadChildren: function loadChildren() { + return Promise.all( + /*! import() | auth-register-register-module */ + [__webpack_require__.e("common"), __webpack_require__.e("auth-register-register-module")]).then(__webpack_require__.bind(null, + /*! ./auth/register/register.module */ + "./src/app/auth/register/register.module.ts")).then(function (m) { + return m.RegisterPageModule; + }); + } + }, { + path: 'new-groupe', + loadChildren: function loadChildren() { + return Promise.all( + /*! import() | new-groupe-new-groupe-module */ + [__webpack_require__.e("common"), __webpack_require__.e("new-groupe-new-groupe-module")]).then(__webpack_require__.bind(null, + /*! ./new-groupe/new-groupe.module */ + "./src/app/new-groupe/new-groupe.module.ts")).then(function (m) { + return m.NewGroupePageModule; + }); + } + }, { + path: 'gestion-groupe/:id', + loadChildren: function loadChildren() { + return Promise.all( + /*! import() | gestion-groupe-gestion-groupe-module */ + [__webpack_require__.e("common"), __webpack_require__.e("gestion-groupe-gestion-groupe-module")]).then(__webpack_require__.bind(null, + /*! ./gestion-groupe/gestion-groupe.module */ + "./src/app/gestion-groupe/gestion-groupe.module.ts")).then(function (m) { + return m.GestionGroupePageModule; + }); + } }]; var AppRoutingModule = function AppRoutingModule() { diff --git a/ionic/www/main-es5.js.map b/ionic/www/main-es5.js.map index bfd0d375fb50499d6f345c77839d3e0b6ae296e0..a5a87f0ab4f54f93e91849231d0d09558a665e24 100644 --- a/ionic/www/main-es5.js.map +++ b/ionic/www/main-es5.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///$_lazy_route_resource lazy namespace object","webpack:///node_modules/@ionic/core/dist/esm lazy ^\\.\\/.*\\.entry\\.js$ include: \\.entry\\.js$ exclude: \\.system\\.entry\\.js$ namespace object","webpack:///src/app/app.component.html","webpack:///src/app/app-routing.module.ts","webpack:///src/app/app.component.scss","webpack:///src/app/app.component.ts","webpack:///src/app/app.module.ts","webpack:///src/environments/environment.ts","webpack:///src/main.ts"],"names":["webpackEmptyAsyncContext","req","Promise","resolve","then","e","Error","code","keys","module","exports","id","map","webpackAsyncContext","__webpack_require__","o","ids","all","slice","webpackAsyncContextKeys","Object","routes","path","loadChildren","m","TabsPageModule","ConversationPageModule","LoginPageModule","AppRoutingModule","imports","forRoot","preloadingStrategy","AppComponent","platform","splashScreen","statusBar","router","initializeApp","ready","localStorage","getItem","navigateByUrl","styleDefault","hide","selector","template","AppModule","declarations","entryComponents","providers","provide","useClass","bootstrap","environment","production","bootstrapModule","err","console","log"],"mappings":";;;;;;;;;;;;;;;;;;AAAA,eAASA,wBAAT,CAAkCC,GAAlC,EAAuC;AACtC;AACA;AACA,eAAOC,OAAO,CAACC,OAAR,GAAkBC,IAAlB,CAAuB,YAAW;AACxC,cAAIC,CAAC,GAAG,IAAIC,KAAJ,CAAU,yBAAyBL,GAAzB,GAA+B,GAAzC,CAAR;AACAI,WAAC,CAACE,IAAF,GAAS,kBAAT;AACA,gBAAMF,CAAN;AACA,SAJM,CAAP;AAKA;;AACDL,8BAAwB,CAACQ,IAAzB,GAAgC,YAAW;AAAE,eAAO,EAAP;AAAY,OAAzD;;AACAR,8BAAwB,CAACG,OAAzB,GAAmCH,wBAAnC;AACAS,YAAM,CAACC,OAAP,GAAiBV,wBAAjB;AACAA,8BAAwB,CAACW,EAAzB,GAA8B,yCAA9B;;;;;;;;;;;;;;ACZA,UAAIC,GAAG,GAAG;AACT,uCAA+B,CAC9B,+DAD8B,EAE9B,QAF8B,EAG9B,CAH8B,CADtB;AAMT,gCAAwB,CACvB,wDADuB,EAEvB,QAFuB,EAGvB,CAHuB,CANf;AAWT,gCAAwB,CACvB,wDADuB,EAEvB,QAFuB,EAGvB,CAHuB,CAXf;AAgBT,mCAA2B,CAC1B,2DAD0B,EAE1B,QAF0B,EAG1B,CAH0B,CAhBlB;AAqBT,sCAA8B,CAC7B,8DAD6B,EAE7B,QAF6B,EAG7B,CAH6B,CArBrB;AA0BT,mCAA2B,CAC1B,2DAD0B,EAE1B,CAF0B,CA1BlB;AA8BT,mCAA2B,CAC1B,2DAD0B,EAE1B,QAF0B,EAG1B,CAH0B,CA9BlB;AAmCT,iCAAyB,CACxB,yDADwB,EAExB,QAFwB,EAGxB,CAHwB,CAnChB;AAwCT,mCAA2B,CAC1B,2DAD0B,EAE1B,QAF0B,EAG1B,CAH0B,CAxClB;AA6CT,+BAAuB,CACtB,uDADsB,EAEtB,QAFsB,EAGtB,CAHsB,CA7Cd;AAkDT,gCAAwB,CACvB,wDADuB,EAEvB,EAFuB,CAlDf;AAsDT,qCAA6B,CAC5B,6DAD4B,EAE5B,QAF4B,EAG5B,EAH4B,CAtDpB;AA2DT,gCAAwB,CACvB,wDADuB,EAEvB,QAFuB,EAGvB,EAHuB,CA3Df;AAgET,8BAAsB,CACrB,sDADqB,EAErB,EAFqB,CAhEb;AAoET,4CAAoC,CACnC,oEADmC,EAEnC,EAFmC,CApE3B;AAwET,gCAAwB,CACvB,wDADuB,EAEvB,QAFuB,EAGvB,EAHuB,CAxEf;AA6ET,wCAAgC,CAC/B,gEAD+B,EAE/B,QAF+B,EAG/B,EAH+B,CA7EvB;AAkFT,iCAAyB,CACxB,yDADwB,EAExB,QAFwB,EAGxB,EAHwB,CAlFhB;AAuFT,kCAA0B,CACzB,0DADyB,EAEzB,QAFyB,EAGzB,EAHyB,CAvFjB;AA4FT,iCAAyB,CACxB,yDADwB,EAExB,QAFwB,EAGxB,EAHwB,CA5FhB;AAiGT,gCAAwB,CACvB,wDADuB,EAEvB,QAFuB,EAGvB,EAHuB,CAjGf;AAsGT,gCAAwB,CACvB,wDADuB,EAEvB,QAFuB,EAGvB,EAHuB,CAtGf;AA2GT,kCAA0B,CACzB,0DADyB,EAEzB,QAFyB,EAGzB,EAHyB,CA3GjB;AAgHT,uCAA+B,CAC9B,+DAD8B,EAE9B,QAF8B,EAG9B,EAH8B,CAhHtB;AAqHT,kCAA0B,CACzB,0DADyB,EAEzB,QAFyB,EAGzB,EAHyB,CArHjB;AA0HT,gCAAwB,CACvB,wDADuB,EAEvB,QAFuB,EAGvB,EAHuB,CA1Hf;AA+HT,sCAA8B,CAC7B,8DAD6B,EAE7B,QAF6B,EAG7B,EAH6B,CA/HrB;AAoIT,oCAA4B,CAC3B,4DAD2B,EAE3B,QAF2B,EAG3B,EAH2B,CApInB;AAyIT,wCAAgC,CAC/B,gEAD+B,EAE/B,EAF+B,CAzIvB;AA6IT,kCAA0B,CACzB,0DADyB,EAEzB,QAFyB,EAGzB,EAHyB,CA7IjB;AAkJT,oCAA4B,CAC3B,4DAD2B,EAE3B,QAF2B,EAG3B,EAH2B,CAlJnB;AAuJT,oCAA4B,CAC3B,4DAD2B,EAE3B,QAF2B,EAG3B,EAH2B,CAvJnB;AA4JT,mCAA2B,CAC1B,2DAD0B,EAE1B,QAF0B,EAG1B,EAH0B,CA5JlB;AAiKT,kCAA0B,CACzB,0DADyB,EAEzB,EAFyB,CAjKjB;AAqKT,kCAA0B,CACzB,0DADyB,EAEzB,QAFyB,EAGzB,EAHyB,CArKjB;AA0KT,qCAA6B,CAC5B,6DAD4B,EAE5B,EAF4B,CA1KpB;AA8KT,oCAA4B,CAC3B,4DAD2B,EAE3B,QAF2B,EAG3B,EAH2B,CA9KnB;AAmLT,gCAAwB,CACvB,wDADuB,EAEvB,QAFuB,EAGvB,EAHuB,CAnLf;AAwLT,+BAAuB,CACtB,uDADsB,EAEtB,QAFsB,EAGtB,EAHsB,CAxLd;AA6LT,mCAA2B,CAC1B,2DAD0B,EAE1B,QAF0B,EAG1B,EAH0B,CA7LlB;AAkMT,gCAAwB,CACvB,wDADuB,EAEvB,QAFuB,EAGvB,EAHuB,CAlMf;AAuMT,iCAAyB,CACxB,yDADwB,EAExB,QAFwB,EAGxB,EAHwB,CAvMhB;AA4MT,yCAAiC,CAChC,iEADgC,EAEhC,EAFgC;AA5MxB,OAAV;;AAiNA,eAASC,mBAAT,CAA6BZ,GAA7B,EAAkC;AACjC,YAAG,CAACa,mBAAmB,CAACC,CAApB,CAAsBH,GAAtB,EAA2BX,GAA3B,CAAJ,EAAqC;AACpC,iBAAOC,OAAO,CAACC,OAAR,GAAkBC,IAAlB,CAAuB,YAAW;AACxC,gBAAIC,CAAC,GAAG,IAAIC,KAAJ,CAAU,yBAAyBL,GAAzB,GAA+B,GAAzC,CAAR;AACAI,aAAC,CAACE,IAAF,GAAS,kBAAT;AACA,kBAAMF,CAAN;AACA,WAJM,CAAP;AAKA;;AAED,YAAIW,GAAG,GAAGJ,GAAG,CAACX,GAAD,CAAb;AAAA,YAAoBU,EAAE,GAAGK,GAAG,CAAC,CAAD,CAA5B;AACA,eAAOd,OAAO,CAACe,GAAR,CAAYD,GAAG,CAACE,KAAJ,CAAU,CAAV,EAAaN,GAAb,CAAiBE,mBAAmB,CAACT,CAArC,CAAZ,EAAqDD,IAArD,CAA0D,YAAW;AAC3E,iBAAOU,mBAAmB,CAACH,EAAD,CAA1B;AACA,SAFM,CAAP;AAGA;;AACDE,yBAAmB,CAACL,IAApB,GAA2B,SAASW,uBAAT,GAAmC;AAC7D,eAAOC,MAAM,CAACZ,IAAP,CAAYI,GAAZ,CAAP;AACA,OAFD;;AAGAC,yBAAmB,CAACF,EAApB,GAAyB,qIAAzB;AACAF,YAAM,CAACC,OAAP,GAAiBG,mBAAjB;;;;;;;;;;;;;;;;ACnOA;AAAe;;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACGf,UAAMQ,MAAM,GAAW,CACrB;AACEC,YAAI,EAAE,EADR;AAEEC,oBAAY,EAAE;AAAA,iBAAM;AAAA;AAAA;AAAA;AAAA,4CAA6BnB,IAA7B,CAAkC,UAAAoB,CAAC;AAAA,mBAAIA,CAAC,CAACC,cAAN;AAAA,WAAnC,CAAN;AAAA;AAFhB,OADqB,EAKrB;AACEH,YAAI,EAAE,cADR;AAEEC,oBAAY,EAAE;AAAA,iBAAM;AAAA;AAAA;AAAA;AAAA,4DAA6CnB,IAA7C,CAAmD,UAAAoB,CAAC;AAAA,mBAAIA,CAAC,CAACE,sBAAN;AAAA,WAApD,CAAN;AAAA;AAFhB,OALqB,EASrB;AACEJ,YAAI,EAAE,OADR;AAEEC,oBAAY,EAAE;AAAA,iBAAM;AAAA;AAAA;AAAA;AAAA,mDAAoCnB,IAApC,CAA0C,UAAAoB,CAAC;AAAA,mBAAIA,CAAC,CAACG,eAAN;AAAA,WAA3C,CAAN;AAAA;AAFhB,OATqB,CAAvB;;UAoBaC,gBAAgB;AAAA;AAAA,O;;AAAhBA,sBAAgB,6DAN5B,+DAAS;AACRC,eAAO,EAAE,CACP,6DAAaC,OAAb,CAAqBT,MAArB,EAA6B;AAAEU,4BAAkB,EAAE;AAAtB,SAA7B,CADO,CADD;AAIRrB,eAAO,EAAE,CAAC,4DAAD;AAJD,OAAT,CAM4B,GAAhBkB,gBAAgB,CAAhB;;;;;;;;;;;;;;;;ACvBb;AAAe;;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UCWFI,YAAY;AACvB,8BACUC,QADV,EAEUC,YAFV,EAGUC,SAHV,EAIUC,MAJV,EAIwB;AAAA;;AAHd,eAAAH,QAAA,GAAAA,QAAA;AACA,eAAAC,YAAA,GAAAA,YAAA;AACA,eAAAC,SAAA,GAAAA,SAAA;AACA,eAAAC,MAAA,GAAAA,MAAA;AAER,eAAKC,aAAL;AACD;;AARsB;AAAA;AAAA,0CAUP;AAAA;;AACd,iBAAKJ,QAAL,CAAcK,KAAd,GAAsBlC,IAAtB,CAA2B,YAAM;AAC/B,kBAAG,CAACmC,YAAY,CAACC,OAAb,CAAqB,OAArB,CAAJ,EAAkC;AAChC,qBAAI,CAACJ,MAAL,CAAYK,aAAZ,CAA0B,QAA1B;AACD;;AACD,mBAAI,CAACN,SAAL,CAAeO,YAAf;;AACA,mBAAI,CAACR,YAAL,CAAkBS,IAAlB;AACD,aAND;AAOD;AAlBsB;;AAAA;AAAA,S;;;;gBAThB;;gBACA;;gBACA;;gBAHA;;;;AAUIX,kBAAY,6DALxB,gEAAU;AACTY,gBAAQ,EAAE,UADD;AAETC,gBAAQ,EAAR;AAAA;AAAA,yFAFS;;;;AAAA,OAAV,CAKwB,GAAZb,YAAY,CAAZ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UCYAc,SAAS;AAAA;AAAA,O;;AAATA,eAAS,6DAXrB,+DAAS;AACRC,oBAAY,EAAE,CAAC,2DAAD,CADN;AAERC,uBAAe,EAAE,EAFT;AAGRnB,eAAO,EAAE,CAAC,uEAAD,EAAgB,2DAAYC,OAAZ,EAAhB,EAAuC,oEAAvC,EAAwD,qEAAxD,CAHD;AAIRmB,iBAAS,EAAE,CACT,sEADS,EAET,4EAFS,EAGT;AAAEC,iBAAO,EAAE,kEAAX;AAA+BC,kBAAQ,EAAE;AAAzC,SAHS,CAJH;AASRC,iBAAS,EAAE,CAAC,2DAAD;AATH,OAAT,CAWqB,GAATN,SAAS,CAAT;;;;;;;;;;;;;;;;ACvBb;AAAA;;;AAAA;AAAA;AAAA,S,CAAA;AACA;AACA;;;AAEO,UAAMO,WAAW,GAAG;AACzBC,kBAAU,EAAE;AADa,OAApB;AAIP;;;;;;;AAOA;;;;;;;;;;;;;;;;;ACfA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;;AAMA,UAAI,sEAAYA,UAAhB,EAA4B;AAC1B;AACD;;AAED,yGAAyBC,eAAzB,CAAyC,yDAAzC,WACS,UAAAC,GAAG;AAAA,eAAIC,OAAO,CAACC,GAAR,CAAYF,GAAZ,CAAJ;AAAA,OADZ","file":"main-es5.js","sourcesContent":["function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"./$$_lazy_route_resource lazy recursive\";","var map = {\n\t\"./ion-action-sheet.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-action-sheet.entry.js\",\n\t\t\"common\",\n\t\t0\n\t],\n\t\"./ion-alert.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-alert.entry.js\",\n\t\t\"common\",\n\t\t1\n\t],\n\t\"./ion-app_8.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-app_8.entry.js\",\n\t\t\"common\",\n\t\t2\n\t],\n\t\"./ion-avatar_3.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-avatar_3.entry.js\",\n\t\t\"common\",\n\t\t3\n\t],\n\t\"./ion-back-button.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-back-button.entry.js\",\n\t\t\"common\",\n\t\t4\n\t],\n\t\"./ion-backdrop.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-backdrop.entry.js\",\n\t\t5\n\t],\n\t\"./ion-button_2.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-button_2.entry.js\",\n\t\t\"common\",\n\t\t6\n\t],\n\t\"./ion-card_5.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-card_5.entry.js\",\n\t\t\"common\",\n\t\t7\n\t],\n\t\"./ion-checkbox.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-checkbox.entry.js\",\n\t\t\"common\",\n\t\t8\n\t],\n\t\"./ion-chip.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-chip.entry.js\",\n\t\t\"common\",\n\t\t9\n\t],\n\t\"./ion-col_3.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-col_3.entry.js\",\n\t\t10\n\t],\n\t\"./ion-datetime_3.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-datetime_3.entry.js\",\n\t\t\"common\",\n\t\t11\n\t],\n\t\"./ion-fab_3.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-fab_3.entry.js\",\n\t\t\"common\",\n\t\t12\n\t],\n\t\"./ion-img.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-img.entry.js\",\n\t\t13\n\t],\n\t\"./ion-infinite-scroll_2.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-infinite-scroll_2.entry.js\",\n\t\t14\n\t],\n\t\"./ion-input.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-input.entry.js\",\n\t\t\"common\",\n\t\t15\n\t],\n\t\"./ion-item-option_3.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-item-option_3.entry.js\",\n\t\t\"common\",\n\t\t16\n\t],\n\t\"./ion-item_8.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-item_8.entry.js\",\n\t\t\"common\",\n\t\t17\n\t],\n\t\"./ion-loading.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-loading.entry.js\",\n\t\t\"common\",\n\t\t18\n\t],\n\t\"./ion-menu_3.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-menu_3.entry.js\",\n\t\t\"common\",\n\t\t19\n\t],\n\t\"./ion-modal.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-modal.entry.js\",\n\t\t\"common\",\n\t\t20\n\t],\n\t\"./ion-nav_2.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-nav_2.entry.js\",\n\t\t\"common\",\n\t\t21\n\t],\n\t\"./ion-popover.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-popover.entry.js\",\n\t\t\"common\",\n\t\t22\n\t],\n\t\"./ion-progress-bar.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-progress-bar.entry.js\",\n\t\t\"common\",\n\t\t23\n\t],\n\t\"./ion-radio_2.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-radio_2.entry.js\",\n\t\t\"common\",\n\t\t24\n\t],\n\t\"./ion-range.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-range.entry.js\",\n\t\t\"common\",\n\t\t25\n\t],\n\t\"./ion-refresher_2.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-refresher_2.entry.js\",\n\t\t\"common\",\n\t\t26\n\t],\n\t\"./ion-reorder_2.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-reorder_2.entry.js\",\n\t\t\"common\",\n\t\t27\n\t],\n\t\"./ion-ripple-effect.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-ripple-effect.entry.js\",\n\t\t28\n\t],\n\t\"./ion-route_4.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-route_4.entry.js\",\n\t\t\"common\",\n\t\t29\n\t],\n\t\"./ion-searchbar.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-searchbar.entry.js\",\n\t\t\"common\",\n\t\t30\n\t],\n\t\"./ion-segment_2.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-segment_2.entry.js\",\n\t\t\"common\",\n\t\t31\n\t],\n\t\"./ion-select_3.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-select_3.entry.js\",\n\t\t\"common\",\n\t\t32\n\t],\n\t\"./ion-slide_2.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-slide_2.entry.js\",\n\t\t33\n\t],\n\t\"./ion-spinner.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-spinner.entry.js\",\n\t\t\"common\",\n\t\t34\n\t],\n\t\"./ion-split-pane.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-split-pane.entry.js\",\n\t\t35\n\t],\n\t\"./ion-tab-bar_2.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-tab-bar_2.entry.js\",\n\t\t\"common\",\n\t\t36\n\t],\n\t\"./ion-tab_2.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-tab_2.entry.js\",\n\t\t\"common\",\n\t\t37\n\t],\n\t\"./ion-text.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-text.entry.js\",\n\t\t\"common\",\n\t\t38\n\t],\n\t\"./ion-textarea.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-textarea.entry.js\",\n\t\t\"common\",\n\t\t39\n\t],\n\t\"./ion-toast.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-toast.entry.js\",\n\t\t\"common\",\n\t\t40\n\t],\n\t\"./ion-toggle.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-toggle.entry.js\",\n\t\t\"common\",\n\t\t41\n\t],\n\t\"./ion-virtual-scroll.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-virtual-scroll.entry.js\",\n\t\t42\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn Promise.all(ids.slice(1).map(__webpack_require__.e)).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = \"./node_modules/@ionic/core/dist/esm lazy recursive ^\\\\.\\\\/.*\\\\.entry\\\\.js$ include: \\\\.entry\\\\.js$ exclude: \\\\.system\\\\.entry\\\\.js$\";\nmodule.exports = webpackAsyncContext;","export default \"<ion-app>\\n <ion-router-outlet></ion-router-outlet>\\n</ion-app>\\n\";","import { NgModule } from '@angular/core';\nimport { PreloadAllModules, RouterModule, Routes } from '@angular/router';\n\nconst routes: Routes = [\n {\n path: '',\n loadChildren: () => import('./tabs/tabs.module').then(m => m.TabsPageModule)\n },\n {\n path: 'conversation',\n loadChildren: () => import('./conversation/conversation.module').then( m => m.ConversationPageModule)\n },\n {\n path: 'login',\n loadChildren: () => import('./auth/login/login.module').then( m => m.LoginPageModule)\n }\n];\n@NgModule({\n imports: [\n RouterModule.forRoot(routes, { preloadingStrategy: PreloadAllModules })\n ],\n exports: [RouterModule]\n})\nexport class AppRoutingModule {}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2FwcC5jb21wb25lbnQuc2NzcyJ9 */\";","import { Component } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Platform } from '@ionic/angular';\nimport { SplashScreen } from '@ionic-native/splash-screen/ngx';\nimport { StatusBar } from '@ionic-native/status-bar/ngx';\n\n@Component({\n selector: 'app-root',\n templateUrl: 'app.component.html',\n styleUrls: ['app.component.scss']\n})\nexport class AppComponent {\n constructor(\n private platform: Platform,\n private splashScreen: SplashScreen,\n private statusBar: StatusBar,\n private router: Router\n ) {\n this.initializeApp();\n }\n\n initializeApp() {\n this.platform.ready().then(() => {\n if(!localStorage.getItem('token')){\n this.router.navigateByUrl('/login');\n }\n this.statusBar.styleDefault();\n this.splashScreen.hide();\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { RouteReuseStrategy } from '@angular/router';\n\nimport { IonicModule, IonicRouteStrategy } from '@ionic/angular';\nimport { SplashScreen } from '@ionic-native/splash-screen/ngx';\nimport { StatusBar } from '@ionic-native/status-bar/ngx';\n\nimport { AppRoutingModule } from './app-routing.module';\nimport { AppComponent } from './app.component';\nimport { HttpClientModule } from '@angular/common/http'\n\n@NgModule({\n declarations: [AppComponent],\n entryComponents: [],\n imports: [BrowserModule, IonicModule.forRoot(), AppRoutingModule,HttpClientModule],\n providers: [\n StatusBar,\n SplashScreen,\n { provide: RouteReuseStrategy, useClass: IonicRouteStrategy }\n ],\n bootstrap: [AppComponent]\n})\nexport class AppModule {}\n","// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n .catch(err => console.log(err));\n"]} \ No newline at end of file +{"version":3,"sources":["webpack:///$_lazy_route_resource lazy namespace object","webpack:///node_modules/@ionic/core/dist/esm lazy ^\\.\\/.*\\.entry\\.js$ include: \\.entry\\.js$ exclude: \\.system\\.entry\\.js$ namespace object","webpack:///src/app/app.component.html","webpack:///src/app/app-routing.module.ts","webpack:///src/app/app.component.scss","webpack:///src/app/app.component.ts","webpack:///src/app/app.module.ts","webpack:///src/environments/environment.ts","webpack:///src/main.ts"],"names":["webpackEmptyAsyncContext","req","Promise","resolve","then","e","Error","code","keys","module","exports","id","map","webpackAsyncContext","__webpack_require__","o","ids","all","slice","webpackAsyncContextKeys","Object","routes","path","loadChildren","m","TabsPageModule","ConversationPageModule","LoginPageModule","RegisterPageModule","NewGroupePageModule","GestionGroupePageModule","AppRoutingModule","imports","forRoot","preloadingStrategy","AppComponent","platform","splashScreen","statusBar","router","initializeApp","ready","localStorage","getItem","navigateByUrl","styleDefault","hide","selector","template","AppModule","declarations","entryComponents","providers","provide","useClass","bootstrap","environment","production","bootstrapModule","err","console","log"],"mappings":";;;;;;;;;;;;;;;;;;AAAA,eAASA,wBAAT,CAAkCC,GAAlC,EAAuC;AACtC;AACA;AACA,eAAOC,OAAO,CAACC,OAAR,GAAkBC,IAAlB,CAAuB,YAAW;AACxC,cAAIC,CAAC,GAAG,IAAIC,KAAJ,CAAU,yBAAyBL,GAAzB,GAA+B,GAAzC,CAAR;AACAI,WAAC,CAACE,IAAF,GAAS,kBAAT;AACA,gBAAMF,CAAN;AACA,SAJM,CAAP;AAKA;;AACDL,8BAAwB,CAACQ,IAAzB,GAAgC,YAAW;AAAE,eAAO,EAAP;AAAY,OAAzD;;AACAR,8BAAwB,CAACG,OAAzB,GAAmCH,wBAAnC;AACAS,YAAM,CAACC,OAAP,GAAiBV,wBAAjB;AACAA,8BAAwB,CAACW,EAAzB,GAA8B,yCAA9B;;;;;;;;;;;;;;ACZA,UAAIC,GAAG,GAAG;AACT,uCAA+B,CAC9B,+DAD8B,EAE9B,QAF8B,EAG9B,CAH8B,CADtB;AAMT,gCAAwB,CACvB,wDADuB,EAEvB,QAFuB,EAGvB,CAHuB,CANf;AAWT,gCAAwB,CACvB,wDADuB,EAEvB,QAFuB,EAGvB,CAHuB,CAXf;AAgBT,mCAA2B,CAC1B,2DAD0B,EAE1B,QAF0B,EAG1B,CAH0B,CAhBlB;AAqBT,sCAA8B,CAC7B,8DAD6B,EAE7B,QAF6B,EAG7B,CAH6B,CArBrB;AA0BT,mCAA2B,CAC1B,2DAD0B,EAE1B,CAF0B,CA1BlB;AA8BT,mCAA2B,CAC1B,2DAD0B,EAE1B,QAF0B,EAG1B,CAH0B,CA9BlB;AAmCT,iCAAyB,CACxB,yDADwB,EAExB,QAFwB,EAGxB,CAHwB,CAnChB;AAwCT,mCAA2B,CAC1B,2DAD0B,EAE1B,QAF0B,EAG1B,CAH0B,CAxClB;AA6CT,+BAAuB,CACtB,uDADsB,EAEtB,QAFsB,EAGtB,CAHsB,CA7Cd;AAkDT,gCAAwB,CACvB,wDADuB,EAEvB,EAFuB,CAlDf;AAsDT,qCAA6B,CAC5B,6DAD4B,EAE5B,QAF4B,EAG5B,EAH4B,CAtDpB;AA2DT,gCAAwB,CACvB,wDADuB,EAEvB,QAFuB,EAGvB,EAHuB,CA3Df;AAgET,8BAAsB,CACrB,sDADqB,EAErB,EAFqB,CAhEb;AAoET,4CAAoC,CACnC,oEADmC,EAEnC,EAFmC,CApE3B;AAwET,gCAAwB,CACvB,wDADuB,EAEvB,QAFuB,EAGvB,EAHuB,CAxEf;AA6ET,wCAAgC,CAC/B,gEAD+B,EAE/B,QAF+B,EAG/B,EAH+B,CA7EvB;AAkFT,iCAAyB,CACxB,yDADwB,EAExB,QAFwB,EAGxB,EAHwB,CAlFhB;AAuFT,kCAA0B,CACzB,0DADyB,EAEzB,QAFyB,EAGzB,EAHyB,CAvFjB;AA4FT,iCAAyB,CACxB,yDADwB,EAExB,QAFwB,EAGxB,EAHwB,CA5FhB;AAiGT,gCAAwB,CACvB,wDADuB,EAEvB,QAFuB,EAGvB,EAHuB,CAjGf;AAsGT,gCAAwB,CACvB,wDADuB,EAEvB,QAFuB,EAGvB,EAHuB,CAtGf;AA2GT,kCAA0B,CACzB,0DADyB,EAEzB,QAFyB,EAGzB,EAHyB,CA3GjB;AAgHT,uCAA+B,CAC9B,+DAD8B,EAE9B,QAF8B,EAG9B,EAH8B,CAhHtB;AAqHT,kCAA0B,CACzB,0DADyB,EAEzB,QAFyB,EAGzB,EAHyB,CArHjB;AA0HT,gCAAwB,CACvB,wDADuB,EAEvB,QAFuB,EAGvB,EAHuB,CA1Hf;AA+HT,sCAA8B,CAC7B,8DAD6B,EAE7B,QAF6B,EAG7B,EAH6B,CA/HrB;AAoIT,oCAA4B,CAC3B,4DAD2B,EAE3B,QAF2B,EAG3B,EAH2B,CApInB;AAyIT,wCAAgC,CAC/B,gEAD+B,EAE/B,EAF+B,CAzIvB;AA6IT,kCAA0B,CACzB,0DADyB,EAEzB,QAFyB,EAGzB,EAHyB,CA7IjB;AAkJT,oCAA4B,CAC3B,4DAD2B,EAE3B,QAF2B,EAG3B,EAH2B,CAlJnB;AAuJT,oCAA4B,CAC3B,4DAD2B,EAE3B,QAF2B,EAG3B,EAH2B,CAvJnB;AA4JT,mCAA2B,CAC1B,2DAD0B,EAE1B,QAF0B,EAG1B,EAH0B,CA5JlB;AAiKT,kCAA0B,CACzB,0DADyB,EAEzB,EAFyB,CAjKjB;AAqKT,kCAA0B,CACzB,0DADyB,EAEzB,QAFyB,EAGzB,EAHyB,CArKjB;AA0KT,qCAA6B,CAC5B,6DAD4B,EAE5B,EAF4B,CA1KpB;AA8KT,oCAA4B,CAC3B,4DAD2B,EAE3B,QAF2B,EAG3B,EAH2B,CA9KnB;AAmLT,gCAAwB,CACvB,wDADuB,EAEvB,QAFuB,EAGvB,EAHuB,CAnLf;AAwLT,+BAAuB,CACtB,uDADsB,EAEtB,QAFsB,EAGtB,EAHsB,CAxLd;AA6LT,mCAA2B,CAC1B,2DAD0B,EAE1B,QAF0B,EAG1B,EAH0B,CA7LlB;AAkMT,gCAAwB,CACvB,wDADuB,EAEvB,QAFuB,EAGvB,EAHuB,CAlMf;AAuMT,iCAAyB,CACxB,yDADwB,EAExB,QAFwB,EAGxB,EAHwB,CAvMhB;AA4MT,yCAAiC,CAChC,iEADgC,EAEhC,EAFgC;AA5MxB,OAAV;;AAiNA,eAASC,mBAAT,CAA6BZ,GAA7B,EAAkC;AACjC,YAAG,CAACa,mBAAmB,CAACC,CAApB,CAAsBH,GAAtB,EAA2BX,GAA3B,CAAJ,EAAqC;AACpC,iBAAOC,OAAO,CAACC,OAAR,GAAkBC,IAAlB,CAAuB,YAAW;AACxC,gBAAIC,CAAC,GAAG,IAAIC,KAAJ,CAAU,yBAAyBL,GAAzB,GAA+B,GAAzC,CAAR;AACAI,aAAC,CAACE,IAAF,GAAS,kBAAT;AACA,kBAAMF,CAAN;AACA,WAJM,CAAP;AAKA;;AAED,YAAIW,GAAG,GAAGJ,GAAG,CAACX,GAAD,CAAb;AAAA,YAAoBU,EAAE,GAAGK,GAAG,CAAC,CAAD,CAA5B;AACA,eAAOd,OAAO,CAACe,GAAR,CAAYD,GAAG,CAACE,KAAJ,CAAU,CAAV,EAAaN,GAAb,CAAiBE,mBAAmB,CAACT,CAArC,CAAZ,EAAqDD,IAArD,CAA0D,YAAW;AAC3E,iBAAOU,mBAAmB,CAACH,EAAD,CAA1B;AACA,SAFM,CAAP;AAGA;;AACDE,yBAAmB,CAACL,IAApB,GAA2B,SAASW,uBAAT,GAAmC;AAC7D,eAAOC,MAAM,CAACZ,IAAP,CAAYI,GAAZ,CAAP;AACA,OAFD;;AAGAC,yBAAmB,CAACF,EAApB,GAAyB,qIAAzB;AACAF,YAAM,CAACC,OAAP,GAAiBG,mBAAjB;;;;;;;;;;;;;;;;ACnOA;AAAe;;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACGf,UAAMQ,MAAM,GAAW,CACrB;AACEC,YAAI,EAAE,EADR;AAEEC,oBAAY,EAAE;AAAA,iBAAM;AAAA;AAAA;AAAA;AAAA,4CAA6BnB,IAA7B,CAAkC,UAAAoB,CAAC;AAAA,mBAAIA,CAAC,CAACC,cAAN;AAAA,WAAnC,CAAN;AAAA;AAFhB,OADqB,EAKrB;AACEH,YAAI,EAAE,kBADR;AAEEC,oBAAY,EAAE;AAAA,iBAAM;AAAA;AAAA;AAAA;AAAA,4DAA6CnB,IAA7C,CAAmD,UAAAoB,CAAC;AAAA,mBAAIA,CAAC,CAACE,sBAAN;AAAA,WAApD,CAAN;AAAA;AAFhB,OALqB,EASrB;AACEJ,YAAI,EAAE,OADR;AAEEC,oBAAY,EAAE;AAAA,iBAAM;AAAA;AAAA;AAAA;AAAA,mDAAoCnB,IAApC,CAA0C,UAAAoB,CAAC;AAAA,mBAAIA,CAAC,CAACG,eAAN;AAAA,WAA3C,CAAN;AAAA;AAFhB,OATqB,EAarB;AACEL,YAAI,EAAE,UADR;AAEEC,oBAAY,EAAE;AAAA,iBAAM;AAAA;AAAA;AAAA;AAAA,yDAA0CnB,IAA1C,CAAgD,UAAAoB,CAAC;AAAA,mBAAIA,CAAC,CAACI,kBAAN;AAAA,WAAjD,CAAN;AAAA;AAFhB,OAbqB,EAiBrB;AACEN,YAAI,EAAE,YADR;AAEEC,oBAAY,EAAE;AAAA,iBAAM;AAAA;AAAA;AAAA;AAAA,wDAAyCnB,IAAzC,CAA+C,UAAAoB,CAAC;AAAA,mBAAIA,CAAC,CAACK,mBAAN;AAAA,WAAhD,CAAN;AAAA;AAFhB,OAjBqB,EAqBrB;AACEP,YAAI,EAAE,oBADR;AAEEC,oBAAY,EAAE;AAAA,iBAAM;AAAA;AAAA;AAAA;AAAA,gEAAiDnB,IAAjD,CAAuD,UAAAoB,CAAC;AAAA,mBAAIA,CAAC,CAACM,uBAAN;AAAA,WAAxD,CAAN;AAAA;AAFhB,OArBqB,CAAvB;;UAgCaC,gBAAgB;AAAA;AAAA,O;;AAAhBA,sBAAgB,6DAN5B,+DAAS;AACRC,eAAO,EAAE,CACP,6DAAaC,OAAb,CAAqBZ,MAArB,EAA6B;AAAEa,4BAAkB,EAAE;AAAtB,SAA7B,CADO,CADD;AAIRxB,eAAO,EAAE,CAAC,4DAAD;AAJD,OAAT,CAM4B,GAAhBqB,gBAAgB,CAAhB;;;;;;;;;;;;;;;;ACnCb;AAAe;;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UCWFI,YAAY;AACvB,8BACUC,QADV,EAEUC,YAFV,EAGUC,SAHV,EAIUC,MAJV,EAIwB;AAAA;;AAHd,eAAAH,QAAA,GAAAA,QAAA;AACA,eAAAC,YAAA,GAAAA,YAAA;AACA,eAAAC,SAAA,GAAAA,SAAA;AACA,eAAAC,MAAA,GAAAA,MAAA;AAER,eAAKC,aAAL;AACD;;AARsB;AAAA;AAAA,0CAUP;AAAA;;AACd,iBAAKJ,QAAL,CAAcK,KAAd,GAAsBrC,IAAtB,CAA2B,YAAM;AAC/B,kBAAI,CAACsC,YAAY,CAACC,OAAb,CAAqB,OAArB,CAAL,EAAmC;AACjC,qBAAI,CAACJ,MAAL,CAAYK,aAAZ,CAA0B,QAA1B;AACD;;AACD,mBAAI,CAACN,SAAL,CAAeO,YAAf;;AACA,mBAAI,CAACR,YAAL,CAAkBS,IAAlB;AACD,aAND;AAOD;AAlBsB;;AAAA;AAAA,S;;;;gBAThB;;gBACA;;gBACA;;gBAHA;;;;AAUIX,kBAAY,6DALxB,gEAAU;AACTY,gBAAQ,EAAE,UADD;AAETC,gBAAQ,EAAR;AAAA;AAAA,yFAFS;;;;AAAA,OAAV,CAKwB,GAAZb,YAAY,CAAZ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UCYAc,SAAS;AAAA;AAAA,O;;AAATA,eAAS,6DAXrB,+DAAS;AACRC,oBAAY,EAAE,CAAC,2DAAD,CADN;AAERC,uBAAe,EAAE,EAFT;AAGRnB,eAAO,EAAE,CAAC,uEAAD,EAAgB,2DAAYC,OAAZ,EAAhB,EAAuC,oEAAvC,EAAwD,qEAAxD,CAHD;AAIRmB,iBAAS,EAAE,CACT,sEADS,EAET,4EAFS,EAGT;AAAEC,iBAAO,EAAE,kEAAX;AAA+BC,kBAAQ,EAAE;AAAzC,SAHS,CAJH;AASRC,iBAAS,EAAE,CAAC,2DAAD;AATH,OAAT,CAWqB,GAATN,SAAS,CAAT;;;;;;;;;;;;;;;;ACvBb;AAAA;;;AAAA;AAAA;AAAA,S,CAAA;AACA;AACA;;;AAEO,UAAMO,WAAW,GAAG;AACzBC,kBAAU,EAAE;AADa,OAApB;AAIP;;;;;;;AAOA;;;;;;;;;;;;;;;;;ACfA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;;AAMA,UAAI,sEAAYA,UAAhB,EAA4B;AAC1B;AACD;;AAED,yGAAyBC,eAAzB,CAAyC,yDAAzC,WACS,UAAAC,GAAG;AAAA,eAAIC,OAAO,CAACC,GAAR,CAAYF,GAAZ,CAAJ;AAAA,OADZ","file":"main-es5.js","sourcesContent":["function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"./$$_lazy_route_resource lazy recursive\";","var map = {\n\t\"./ion-action-sheet.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-action-sheet.entry.js\",\n\t\t\"common\",\n\t\t0\n\t],\n\t\"./ion-alert.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-alert.entry.js\",\n\t\t\"common\",\n\t\t1\n\t],\n\t\"./ion-app_8.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-app_8.entry.js\",\n\t\t\"common\",\n\t\t2\n\t],\n\t\"./ion-avatar_3.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-avatar_3.entry.js\",\n\t\t\"common\",\n\t\t3\n\t],\n\t\"./ion-back-button.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-back-button.entry.js\",\n\t\t\"common\",\n\t\t4\n\t],\n\t\"./ion-backdrop.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-backdrop.entry.js\",\n\t\t5\n\t],\n\t\"./ion-button_2.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-button_2.entry.js\",\n\t\t\"common\",\n\t\t6\n\t],\n\t\"./ion-card_5.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-card_5.entry.js\",\n\t\t\"common\",\n\t\t7\n\t],\n\t\"./ion-checkbox.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-checkbox.entry.js\",\n\t\t\"common\",\n\t\t8\n\t],\n\t\"./ion-chip.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-chip.entry.js\",\n\t\t\"common\",\n\t\t9\n\t],\n\t\"./ion-col_3.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-col_3.entry.js\",\n\t\t10\n\t],\n\t\"./ion-datetime_3.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-datetime_3.entry.js\",\n\t\t\"common\",\n\t\t11\n\t],\n\t\"./ion-fab_3.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-fab_3.entry.js\",\n\t\t\"common\",\n\t\t12\n\t],\n\t\"./ion-img.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-img.entry.js\",\n\t\t13\n\t],\n\t\"./ion-infinite-scroll_2.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-infinite-scroll_2.entry.js\",\n\t\t14\n\t],\n\t\"./ion-input.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-input.entry.js\",\n\t\t\"common\",\n\t\t15\n\t],\n\t\"./ion-item-option_3.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-item-option_3.entry.js\",\n\t\t\"common\",\n\t\t16\n\t],\n\t\"./ion-item_8.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-item_8.entry.js\",\n\t\t\"common\",\n\t\t17\n\t],\n\t\"./ion-loading.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-loading.entry.js\",\n\t\t\"common\",\n\t\t18\n\t],\n\t\"./ion-menu_3.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-menu_3.entry.js\",\n\t\t\"common\",\n\t\t19\n\t],\n\t\"./ion-modal.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-modal.entry.js\",\n\t\t\"common\",\n\t\t20\n\t],\n\t\"./ion-nav_2.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-nav_2.entry.js\",\n\t\t\"common\",\n\t\t21\n\t],\n\t\"./ion-popover.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-popover.entry.js\",\n\t\t\"common\",\n\t\t22\n\t],\n\t\"./ion-progress-bar.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-progress-bar.entry.js\",\n\t\t\"common\",\n\t\t23\n\t],\n\t\"./ion-radio_2.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-radio_2.entry.js\",\n\t\t\"common\",\n\t\t24\n\t],\n\t\"./ion-range.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-range.entry.js\",\n\t\t\"common\",\n\t\t25\n\t],\n\t\"./ion-refresher_2.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-refresher_2.entry.js\",\n\t\t\"common\",\n\t\t26\n\t],\n\t\"./ion-reorder_2.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-reorder_2.entry.js\",\n\t\t\"common\",\n\t\t27\n\t],\n\t\"./ion-ripple-effect.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-ripple-effect.entry.js\",\n\t\t28\n\t],\n\t\"./ion-route_4.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-route_4.entry.js\",\n\t\t\"common\",\n\t\t29\n\t],\n\t\"./ion-searchbar.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-searchbar.entry.js\",\n\t\t\"common\",\n\t\t30\n\t],\n\t\"./ion-segment_2.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-segment_2.entry.js\",\n\t\t\"common\",\n\t\t31\n\t],\n\t\"./ion-select_3.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-select_3.entry.js\",\n\t\t\"common\",\n\t\t32\n\t],\n\t\"./ion-slide_2.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-slide_2.entry.js\",\n\t\t33\n\t],\n\t\"./ion-spinner.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-spinner.entry.js\",\n\t\t\"common\",\n\t\t34\n\t],\n\t\"./ion-split-pane.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-split-pane.entry.js\",\n\t\t35\n\t],\n\t\"./ion-tab-bar_2.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-tab-bar_2.entry.js\",\n\t\t\"common\",\n\t\t36\n\t],\n\t\"./ion-tab_2.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-tab_2.entry.js\",\n\t\t\"common\",\n\t\t37\n\t],\n\t\"./ion-text.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-text.entry.js\",\n\t\t\"common\",\n\t\t38\n\t],\n\t\"./ion-textarea.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-textarea.entry.js\",\n\t\t\"common\",\n\t\t39\n\t],\n\t\"./ion-toast.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-toast.entry.js\",\n\t\t\"common\",\n\t\t40\n\t],\n\t\"./ion-toggle.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-toggle.entry.js\",\n\t\t\"common\",\n\t\t41\n\t],\n\t\"./ion-virtual-scroll.entry.js\": [\n\t\t\"./node_modules/@ionic/core/dist/esm/ion-virtual-scroll.entry.js\",\n\t\t42\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn Promise.all(ids.slice(1).map(__webpack_require__.e)).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = \"./node_modules/@ionic/core/dist/esm lazy recursive ^\\\\.\\\\/.*\\\\.entry\\\\.js$ include: \\\\.entry\\\\.js$ exclude: \\\\.system\\\\.entry\\\\.js$\";\nmodule.exports = webpackAsyncContext;","export default \"<ion-app>\\n <ion-router-outlet></ion-router-outlet>\\n</ion-app>\\n\";","import { NgModule } from '@angular/core';\nimport { PreloadAllModules, RouterModule, Routes } from '@angular/router';\n\nconst routes: Routes = [\n {\n path: '',\n loadChildren: () => import('./tabs/tabs.module').then(m => m.TabsPageModule)\n },\n {\n path: 'conversation/:id',\n loadChildren: () => import('./conversation/conversation.module').then( m => m.ConversationPageModule)\n },\n {\n path: 'login',\n loadChildren: () => import('./auth/login/login.module').then( m => m.LoginPageModule)\n },\n {\n path: 'register',\n loadChildren: () => import('./auth/register/register.module').then( m => m.RegisterPageModule)\n },\n {\n path: 'new-groupe',\n loadChildren: () => import('./new-groupe/new-groupe.module').then( m => m.NewGroupePageModule)\n },\n {\n path: 'gestion-groupe/:id',\n loadChildren: () => import('./gestion-groupe/gestion-groupe.module').then( m => m.GestionGroupePageModule)\n }\n];\n@NgModule({\n imports: [\n RouterModule.forRoot(routes, { preloadingStrategy: PreloadAllModules })\n ],\n exports: [RouterModule]\n})\nexport class AppRoutingModule {}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2FwcC5jb21wb25lbnQuc2NzcyJ9 */\";","import { Component } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Platform } from '@ionic/angular';\nimport { SplashScreen } from '@ionic-native/splash-screen/ngx';\nimport { StatusBar } from '@ionic-native/status-bar/ngx';\n\n@Component({\n selector: 'app-root',\n templateUrl: 'app.component.html',\n styleUrls: ['app.component.scss']\n})\nexport class AppComponent {\n constructor(\n private platform: Platform,\n private splashScreen: SplashScreen,\n private statusBar: StatusBar,\n private router: Router\n ) {\n this.initializeApp();\n }\n\n initializeApp() {\n this.platform.ready().then(() => {\n if (!localStorage.getItem('token')){\n this.router.navigateByUrl('/login');\n }\n this.statusBar.styleDefault();\n this.splashScreen.hide();\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { RouteReuseStrategy } from '@angular/router';\n\nimport { IonicModule, IonicRouteStrategy } from '@ionic/angular';\nimport { SplashScreen } from '@ionic-native/splash-screen/ngx';\nimport { StatusBar } from '@ionic-native/status-bar/ngx';\n\nimport { AppRoutingModule } from './app-routing.module';\nimport { AppComponent } from './app.component';\nimport { HttpClientModule } from '@angular/common/http'\n\n@NgModule({\n declarations: [AppComponent],\n entryComponents: [],\n imports: [BrowserModule, IonicModule.forRoot(), AppRoutingModule,HttpClientModule],\n providers: [\n StatusBar,\n SplashScreen,\n { provide: RouteReuseStrategy, useClass: IonicRouteStrategy }\n ],\n bootstrap: [AppComponent]\n})\nexport class AppModule {}\n","// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n .catch(err => console.log(err));\n"]} \ No newline at end of file diff --git a/ionic/www/new-groupe-new-groupe-module-es2015.js b/ionic/www/new-groupe-new-groupe-module-es2015.js new file mode 100644 index 0000000000000000000000000000000000000000..59e5813ab46e93bf679dd5452fcd764902a65517 --- /dev/null +++ b/ionic/www/new-groupe-new-groupe-module-es2015.js @@ -0,0 +1,235 @@ +(window["webpackJsonp"] = window["webpackJsonp"] || []).push([["new-groupe-new-groupe-module"],{ + +/***/ "./node_modules/raw-loader/dist/cjs.js!./src/app/new-groupe/new-groupe.page.html": +/*!***************************************************************************************!*\ + !*** ./node_modules/raw-loader/dist/cjs.js!./src/app/new-groupe/new-groupe.page.html ***! + \***************************************************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony default export */ __webpack_exports__["default"] = ("<ion-header class=\"ion-margin-top ion-margin-bottom\">\n <ion-toolbar>\n <ion-buttons slot=\"start\">\n <ion-back-button text=\"Retour\" defaultHref=\"/tabs/tab3\"></ion-back-button>\n </ion-buttons>\n <ion-title size=\"large\">Création groupe</ion-title>\n </ion-toolbar>\n</ion-header>\n\n<ion-content padding>\n <form class=\"form_login\" #form=\"ngForm\">\n <ion-grid>\n <ion-row class=\"ion-justify-content-center\">\n <ion-col class=\"align-self-center\" size-md=\"6\" size-lg=\"5\" size-xs=\"12\">\n <div class=\"ion-padding\">\n <ion-item>\n <ion-input name=\"name\" type=\"text\" placeholder=\"Nom du groupe\" ngModel required></ion-input>\n </ion-item>\n <ion-item>\n <ion-input name=\"description\" type=\"text\" placeholder=\"Description du groupe\" ngModel required></ion-input>\n </ion-item>\n </div>\n <div class=\"ion-padding\">\n <ion-button size=\"large\" type=\"submit\" [disabled]=\"form.invalid\" expand=\"block\" (click)=\"createGroup(form)\">Créer</ion-button>\n </div>\n </ion-col>\n </ion-row>\n </ion-grid>\n </form>\n</ion-content>\n"); + +/***/ }), + +/***/ "./src/app/new-groupe/new-groupe-routing.module.ts": +/*!*********************************************************!*\ + !*** ./src/app/new-groupe/new-groupe-routing.module.ts ***! + \*********************************************************/ +/*! exports provided: NewGroupePageRoutingModule */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NewGroupePageRoutingModule", function() { return NewGroupePageRoutingModule; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js"); +/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/router */ "./node_modules/@angular/router/__ivy_ngcc__/fesm2015/router.js"); +/* harmony import */ var _new_groupe_page__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./new-groupe.page */ "./src/app/new-groupe/new-groupe.page.ts"); + + + + +const routes = [ + { + path: '', + component: _new_groupe_page__WEBPACK_IMPORTED_MODULE_3__["NewGroupePage"] + } +]; +let NewGroupePageRoutingModule = class NewGroupePageRoutingModule { +}; +NewGroupePageRoutingModule = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ + Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["NgModule"])({ + imports: [_angular_router__WEBPACK_IMPORTED_MODULE_2__["RouterModule"].forChild(routes)], + exports: [_angular_router__WEBPACK_IMPORTED_MODULE_2__["RouterModule"]], + }) +], NewGroupePageRoutingModule); + + + +/***/ }), + +/***/ "./src/app/new-groupe/new-groupe.module.ts": +/*!*************************************************!*\ + !*** ./src/app/new-groupe/new-groupe.module.ts ***! + \*************************************************/ +/*! exports provided: NewGroupePageModule */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NewGroupePageModule", function() { return NewGroupePageModule; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js"); +/* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/common */ "./node_modules/@angular/common/__ivy_ngcc__/fesm2015/common.js"); +/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/forms */ "./node_modules/@angular/forms/__ivy_ngcc__/fesm2015/forms.js"); +/* harmony import */ var _ionic_angular__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @ionic/angular */ "./node_modules/@ionic/angular/__ivy_ngcc__/fesm2015/ionic-angular.js"); +/* harmony import */ var _new_groupe_routing_module__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./new-groupe-routing.module */ "./src/app/new-groupe/new-groupe-routing.module.ts"); +/* harmony import */ var _new_groupe_page__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./new-groupe.page */ "./src/app/new-groupe/new-groupe.page.ts"); + + + + + + + +let NewGroupePageModule = class NewGroupePageModule { +}; +NewGroupePageModule = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ + Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["NgModule"])({ + imports: [ + _angular_common__WEBPACK_IMPORTED_MODULE_2__["CommonModule"], + _angular_forms__WEBPACK_IMPORTED_MODULE_3__["FormsModule"], + _ionic_angular__WEBPACK_IMPORTED_MODULE_4__["IonicModule"], + _new_groupe_routing_module__WEBPACK_IMPORTED_MODULE_5__["NewGroupePageRoutingModule"] + ], + declarations: [_new_groupe_page__WEBPACK_IMPORTED_MODULE_6__["NewGroupePage"]] + }) +], NewGroupePageModule); + + + +/***/ }), + +/***/ "./src/app/new-groupe/new-groupe.page.scss": +/*!*************************************************!*\ + !*** ./src/app/new-groupe/new-groupe.page.scss ***! + \*************************************************/ +/*! exports provided: default */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony default export */ __webpack_exports__["default"] = ("\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL25ldy1ncm91cGUvbmV3LWdyb3VwZS5wYWdlLnNjc3MifQ== */"); + +/***/ }), + +/***/ "./src/app/new-groupe/new-groupe.page.ts": +/*!***********************************************!*\ + !*** ./src/app/new-groupe/new-groupe.page.ts ***! + \***********************************************/ +/*! exports provided: NewGroupePage */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NewGroupePage", function() { return NewGroupePage; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js"); +/* harmony import */ var _services_new_groupe_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../services/new-groupe.service */ "./src/app/services/new-groupe.service.ts"); +/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/router */ "./node_modules/@angular/router/__ivy_ngcc__/fesm2015/router.js"); +/* harmony import */ var _ionic_angular__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @ionic/angular */ "./node_modules/@ionic/angular/__ivy_ngcc__/fesm2015/ionic-angular.js"); + + + + + +let NewGroupePage = class NewGroupePage { + constructor(newGroupeService, router, alertController) { + this.newGroupeService = newGroupeService; + this.router = router; + this.alertController = alertController; + } + ngOnInit() { + } + createGroup(form) { + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function* () { + const groupe = yield this.newGroupeService.createGroups(form.value.name, form.value.description); + groupe.subscribe(res => { + console.log('groupe crée : ' + JSON.stringify(res)); + if (res.name) { + this.router.navigate(['tabs/tab3']); + } + else { + this.alertGroup(); + } + }); + }); + } + alertGroup() { + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function* () { + const alert = yield this.alertController.create({ + cssClass: 'my-custom-class', + header: 'Erreur', + subHeader: 'création groupe', + message: 'Une erreur s\'est produite durant la création du groupe', + buttons: ['OK'] + }); + yield alert.present(); + }); + } +}; +NewGroupePage.ctorParameters = () => [ + { type: _services_new_groupe_service__WEBPACK_IMPORTED_MODULE_2__["NewGroupeService"] }, + { type: _angular_router__WEBPACK_IMPORTED_MODULE_3__["Router"] }, + { type: _ionic_angular__WEBPACK_IMPORTED_MODULE_4__["AlertController"] } +]; +NewGroupePage = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ + Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({ + selector: 'app-new-groupe', + template: Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"])(__webpack_require__(/*! raw-loader!./new-groupe.page.html */ "./node_modules/raw-loader/dist/cjs.js!./src/app/new-groupe/new-groupe.page.html")).default, + styles: [Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"])(__webpack_require__(/*! ./new-groupe.page.scss */ "./src/app/new-groupe/new-groupe.page.scss")).default] + }) +], NewGroupePage); + + + +/***/ }), + +/***/ "./src/app/services/new-groupe.service.ts": +/*!************************************************!*\ + !*** ./src/app/services/new-groupe.service.ts ***! + \************************************************/ +/*! exports provided: NewGroupeService */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NewGroupeService", function() { return NewGroupeService; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); +/* harmony import */ var _angular_common_http__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/common/http */ "./node_modules/@angular/common/__ivy_ngcc__/fesm2015/http.js"); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js"); +/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! rxjs/operators */ "./node_modules/rxjs/_esm2015/operators/index.js"); +/* harmony import */ var _global_service__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../global.service */ "./src/app/global.service.ts"); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! rxjs */ "./node_modules/rxjs/_esm2015/index.js"); + + + + + + + +let NewGroupeService = class NewGroupeService { + constructor(http, global) { + this.http = http; + this.global = global; + this.urlCreateRoom = this.global.apiRoot + "/rooms"; + } + createGroups(name, description) { + let body = { + "name": name, + "description": description, + }; + return this.http.post(this.urlCreateRoom, body, this.global.getHeaderHttpPostConnected()).pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["map"])(results => { + console.log('RAW : ' + results); + return results; + }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["catchError"])(err => Object(rxjs__WEBPACK_IMPORTED_MODULE_5__["of"])(err))); + } +}; +NewGroupeService.ctorParameters = () => [ + { type: _angular_common_http__WEBPACK_IMPORTED_MODULE_1__["HttpClient"] }, + { type: _global_service__WEBPACK_IMPORTED_MODULE_4__["GlobalService"] } +]; +NewGroupeService = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ + Object(_angular_core__WEBPACK_IMPORTED_MODULE_2__["Injectable"])({ + providedIn: 'root' + }) +], NewGroupeService); + + + +/***/ }) + +}]); +//# sourceMappingURL=new-groupe-new-groupe-module-es2015.js.map \ No newline at end of file diff --git a/ionic/www/new-groupe-new-groupe-module-es2015.js.map b/ionic/www/new-groupe-new-groupe-module-es2015.js.map new file mode 100644 index 0000000000000000000000000000000000000000..6083ed4fdd91365222ab194fee2aa3a16646daea --- /dev/null +++ b/ionic/www/new-groupe-new-groupe-module-es2015.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["./src/app/new-groupe/new-groupe.page.html","./src/app/new-groupe/new-groupe-routing.module.ts","./src/app/new-groupe/new-groupe.module.ts","./src/app/new-groupe/new-groupe.page.scss","./src/app/new-groupe/new-groupe.page.ts","./src/app/services/new-groupe.service.ts"],"names":[],"mappings":";;;;;;;;;;AAAA;AAAe,2wCAA4sC,E;;;;;;;;;;;;;;;;;;;ACAlrC;AACc;AAEL;AAElD,MAAM,MAAM,GAAW;IACrB;QACE,IAAI,EAAE,EAAE;QACR,SAAS,EAAE,8DAAa;KACzB;CACF,CAAC;IAMW,0BAA0B,SAA1B,0BAA0B;CAAG;AAA7B,0BAA0B;IAJtC,8DAAQ,CAAC;QACR,OAAO,EAAE,CAAC,4DAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACxC,OAAO,EAAE,CAAC,4DAAY,CAAC;KACxB,CAAC;GACW,0BAA0B,CAAG;AAAH;;;;;;;;;;;;;;;;;;;;;;;AChBE;AACM;AACF;AAEA;AAE4B;AAEvB;IAWrC,mBAAmB,SAAnB,mBAAmB;CAAG;AAAtB,mBAAmB;IAT/B,8DAAQ,CAAC;QACR,OAAO,EAAE;YACP,4DAAY;YACZ,0DAAW;YACX,0DAAW;YACX,qFAA0B;SAC3B;QACD,YAAY,EAAE,CAAC,8DAAa,CAAC;KAC9B,CAAC;GACW,mBAAmB,CAAG;AAAH;;;;;;;;;;;;;ACnBhC;AAAe,6GAA8C,mJAAmJ,E;;;;;;;;;;;;;;;;;;;;ACA9J;AACgB;AACzB;AACQ;IAQpC,aAAa,SAAb,aAAa;IAExB,YAAoB,gBAAkC,EAAU,MAAc,EAAS,eAAgC;QAAnG,qBAAgB,GAAhB,gBAAgB,CAAkB;QAAU,WAAM,GAAN,MAAM,CAAQ;QAAS,oBAAe,GAAf,eAAe,CAAiB;IAEvH,CAAC;IAED,QAAQ;IAER,CAAC;IAEK,WAAW,CAAC,IAAI;;YACpB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YAChG,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;gBACrB,OAAO,CAAC,GAAG,CAAC,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;gBACpD,IAAG,GAAG,CAAC,IAAI,EAAC;oBACV,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;iBACrC;qBAAI;oBACH,IAAI,CAAC,UAAU,EAAE,CAAC;iBACnB;YACH,CAAC,CAAC,CAAC;QACL,CAAC;KAAA;IAEK,UAAU;;YACd,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;gBAC9C,QAAQ,EAAE,iBAAiB;gBAC3B,MAAM,EAAE,QAAQ;gBAChB,SAAS,EAAE,iBAAiB;gBAC5B,OAAO,EAAE,yDAAyD;gBAClE,OAAO,EAAE,CAAC,IAAI,CAAC;aAChB,CAAC,CAAC;YAEH,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC;QACxB,CAAC;KAAA;CACF;;YA3CQ,6EAAgB;YAChB,sDAAM;YACN,8DAAe;;AAQX,aAAa;IALzB,+DAAS,CAAC;QACT,QAAQ,EAAE,gBAAgB;QAC1B,gOAAqC;;KAEtC,CAAC;GACW,aAAa,CAiCzB;AAjCyB;;;;;;;;;;;;;;;;;;;;;;ACXwB;AACP;AAEN;AACa;AACN;AAClB;IAMb,gBAAgB,SAAhB,gBAAgB;IAI3B,YAAoB,IAAgB,EAAU,MAAqB;QAA/C,SAAI,GAAJ,IAAI,CAAY;QAAU,WAAM,GAAN,MAAM,CAAe;QACjE,IAAI,CAAC,aAAa,GAAE,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,QAAQ;IACpD,CAAC;IAED,YAAY,CAAC,IAAI,EAAC,WAAW;QAC3B,IAAI,IAAI,GAAG;YACT,MAAM,EAAE,IAAI;YACZ,aAAa,EAAE,WAAW;SAC3B;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAC,IAAI,EAAC,IAAI,CAAC,MAAM,CAAC,0BAA0B,EAAE,CAAC,CAAC,IAAI,CAC1F,0DAAG,CAAC,OAAO,CAAC,EAAE;YACZ,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,OAAO,CAAC;YAC/B,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC,EACF,iEAAU,CAAC,GAAG,CAAC,EAAE,CAAC,+CAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/B,CAAC;CACF;;YAhCQ,+DAAU;YAIV,6DAAa;;AAQT,gBAAgB;IAH5B,gEAAU,CAAC;QACV,UAAU,EAAE,MAAM;KACnB,CAAC;GACW,gBAAgB,CAoB5B;AApB4B","file":"new-groupe-new-groupe-module-es2015.js","sourcesContent":["export default \"<ion-header class=\\\"ion-margin-top ion-margin-bottom\\\">\\n <ion-toolbar>\\n <ion-buttons slot=\\\"start\\\">\\n <ion-back-button text=\\\"Retour\\\" defaultHref=\\\"/tabs/tab3\\\"></ion-back-button>\\n </ion-buttons>\\n <ion-title size=\\\"large\\\">Création groupe</ion-title>\\n </ion-toolbar>\\n</ion-header>\\n\\n<ion-content padding>\\n <form class=\\\"form_login\\\" #form=\\\"ngForm\\\">\\n <ion-grid>\\n <ion-row class=\\\"ion-justify-content-center\\\">\\n <ion-col class=\\\"align-self-center\\\" size-md=\\\"6\\\" size-lg=\\\"5\\\" size-xs=\\\"12\\\">\\n <div class=\\\"ion-padding\\\">\\n <ion-item>\\n <ion-input name=\\\"name\\\" type=\\\"text\\\" placeholder=\\\"Nom du groupe\\\" ngModel required></ion-input>\\n </ion-item>\\n <ion-item>\\n <ion-input name=\\\"description\\\" type=\\\"text\\\" placeholder=\\\"Description du groupe\\\" ngModel required></ion-input>\\n </ion-item>\\n </div>\\n <div class=\\\"ion-padding\\\">\\n <ion-button size=\\\"large\\\" type=\\\"submit\\\" [disabled]=\\\"form.invalid\\\" expand=\\\"block\\\" (click)=\\\"createGroup(form)\\\">Créer</ion-button>\\n </div>\\n </ion-col>\\n </ion-row>\\n </ion-grid>\\n </form>\\n</ion-content>\\n\";","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\n\nimport { NewGroupePage } from './new-groupe.page';\n\nconst routes: Routes = [\n {\n path: '',\n component: NewGroupePage\n }\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class NewGroupePageRoutingModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { IonicModule } from '@ionic/angular';\n\nimport { NewGroupePageRoutingModule } from './new-groupe-routing.module';\n\nimport { NewGroupePage } from './new-groupe.page';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n IonicModule,\n NewGroupePageRoutingModule\n ],\n declarations: [NewGroupePage]\n})\nexport class NewGroupePageModule {}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL25ldy1ncm91cGUvbmV3LWdyb3VwZS5wYWdlLnNjc3MifQ== */\";","import { Component, OnInit } from '@angular/core';\nimport { NewGroupeService } from '../services/new-groupe.service';\nimport { Router } from '@angular/router';\nimport { AlertController } from '@ionic/angular';\n\n\n@Component({\n selector: 'app-new-groupe',\n templateUrl: './new-groupe.page.html',\n styleUrls: ['./new-groupe.page.scss'],\n})\nexport class NewGroupePage implements OnInit {\n\n constructor(private newGroupeService: NewGroupeService,private router: Router,private alertController: AlertController) { \n \n }\n\n ngOnInit() {\n\n }\n\n async createGroup(form){\n const groupe = await this.newGroupeService.createGroups(form.value.name,form.value.description);\n groupe.subscribe(res => {\n console.log('groupe crée : ' + JSON.stringify(res));\n if(res.name){\n this.router.navigate(['tabs/tab3']);\n }else{\n this.alertGroup();\n }\n });\n }\n\n async alertGroup(){\n const alert = await this.alertController.create({\n cssClass: 'my-custom-class',\n header: 'Erreur',\n subHeader: 'création groupe',\n message: 'Une erreur s\\'est produite durant la création du groupe',\n buttons: ['OK']\n });\n\n await alert.present();\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { GlobalService } from \"../global.service\";\nimport { catchError } from 'rxjs/operators'; \nimport { of } from 'rxjs';\nimport { HttpHeaders } from '@angular/common/http';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NewGroupeService {\n\n private urlCreateRoom: string;\n\n constructor(private http: HttpClient, private global: GlobalService) { \n this.urlCreateRoom= this.global.apiRoot + \"/rooms\"\n }\n\n createGroups(name,description){\n let body = {\n \"name\": name,\n \"description\": description,\n }\n return this.http.post(this.urlCreateRoom,body,this.global.getHeaderHttpPostConnected()).pipe(\n map(results => {\n console.log('RAW : ' + results)\n return results;\n }),\n catchError(err => of(err)))\n }\n}\n"],"sourceRoot":"webpack:///"} \ No newline at end of file diff --git a/ionic/www/new-groupe-new-groupe-module-es5.js b/ionic/www/new-groupe-new-groupe-module-es5.js new file mode 100644 index 0000000000000000000000000000000000000000..018a67fa0d4fb1f069f3aceff7fa1d065dc26a59 --- /dev/null +++ b/ionic/www/new-groupe-new-groupe-module-es5.js @@ -0,0 +1,435 @@ +(function () { + function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + + function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + + function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + + (window["webpackJsonp"] = window["webpackJsonp"] || []).push([["new-groupe-new-groupe-module"], { + /***/ + "./node_modules/raw-loader/dist/cjs.js!./src/app/new-groupe/new-groupe.page.html": + /*!***************************************************************************************!*\ + !*** ./node_modules/raw-loader/dist/cjs.js!./src/app/new-groupe/new-groupe.page.html ***! + \***************************************************************************************/ + + /*! exports provided: default */ + + /***/ + function node_modulesRawLoaderDistCjsJsSrcAppNewGroupeNewGroupePageHtml(module, __webpack_exports__, __webpack_require__) { + "use strict"; + + __webpack_require__.r(__webpack_exports__); + /* harmony default export */ + + + __webpack_exports__["default"] = "<ion-header class=\"ion-margin-top ion-margin-bottom\">\n <ion-toolbar>\n <ion-buttons slot=\"start\">\n <ion-back-button text=\"Retour\" defaultHref=\"/tabs/tab3\"></ion-back-button>\n </ion-buttons>\n <ion-title size=\"large\">Création groupe</ion-title>\n </ion-toolbar>\n</ion-header>\n\n<ion-content padding>\n <form class=\"form_login\" #form=\"ngForm\">\n <ion-grid>\n <ion-row class=\"ion-justify-content-center\">\n <ion-col class=\"align-self-center\" size-md=\"6\" size-lg=\"5\" size-xs=\"12\">\n <div class=\"ion-padding\">\n <ion-item>\n <ion-input name=\"name\" type=\"text\" placeholder=\"Nom du groupe\" ngModel required></ion-input>\n </ion-item>\n <ion-item>\n <ion-input name=\"description\" type=\"text\" placeholder=\"Description du groupe\" ngModel required></ion-input>\n </ion-item>\n </div>\n <div class=\"ion-padding\">\n <ion-button size=\"large\" type=\"submit\" [disabled]=\"form.invalid\" expand=\"block\" (click)=\"createGroup(form)\">Créer</ion-button>\n </div>\n </ion-col>\n </ion-row>\n </ion-grid>\n </form>\n</ion-content>\n"; + /***/ + }, + + /***/ + "./src/app/new-groupe/new-groupe-routing.module.ts": + /*!*********************************************************!*\ + !*** ./src/app/new-groupe/new-groupe-routing.module.ts ***! + \*********************************************************/ + + /*! exports provided: NewGroupePageRoutingModule */ + + /***/ + function srcAppNewGroupeNewGroupeRoutingModuleTs(module, __webpack_exports__, __webpack_require__) { + "use strict"; + + __webpack_require__.r(__webpack_exports__); + /* harmony export (binding) */ + + + __webpack_require__.d(__webpack_exports__, "NewGroupePageRoutingModule", function () { + return NewGroupePageRoutingModule; + }); + /* harmony import */ + + + var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( + /*! tslib */ + "./node_modules/tslib/tslib.es6.js"); + /* harmony import */ + + + var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( + /*! @angular/core */ + "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js"); + /* harmony import */ + + + var _angular_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( + /*! @angular/router */ + "./node_modules/@angular/router/__ivy_ngcc__/fesm2015/router.js"); + /* harmony import */ + + + var _new_groupe_page__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( + /*! ./new-groupe.page */ + "./src/app/new-groupe/new-groupe.page.ts"); + + var routes = [{ + path: '', + component: _new_groupe_page__WEBPACK_IMPORTED_MODULE_3__["NewGroupePage"] + }]; + + var NewGroupePageRoutingModule = function NewGroupePageRoutingModule() { + _classCallCheck(this, NewGroupePageRoutingModule); + }; + + NewGroupePageRoutingModule = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["NgModule"])({ + imports: [_angular_router__WEBPACK_IMPORTED_MODULE_2__["RouterModule"].forChild(routes)], + exports: [_angular_router__WEBPACK_IMPORTED_MODULE_2__["RouterModule"]] + })], NewGroupePageRoutingModule); + /***/ + }, + + /***/ + "./src/app/new-groupe/new-groupe.module.ts": + /*!*************************************************!*\ + !*** ./src/app/new-groupe/new-groupe.module.ts ***! + \*************************************************/ + + /*! exports provided: NewGroupePageModule */ + + /***/ + function srcAppNewGroupeNewGroupeModuleTs(module, __webpack_exports__, __webpack_require__) { + "use strict"; + + __webpack_require__.r(__webpack_exports__); + /* harmony export (binding) */ + + + __webpack_require__.d(__webpack_exports__, "NewGroupePageModule", function () { + return NewGroupePageModule; + }); + /* harmony import */ + + + var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( + /*! tslib */ + "./node_modules/tslib/tslib.es6.js"); + /* harmony import */ + + + var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( + /*! @angular/core */ + "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js"); + /* harmony import */ + + + var _angular_common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( + /*! @angular/common */ + "./node_modules/@angular/common/__ivy_ngcc__/fesm2015/common.js"); + /* harmony import */ + + + var _angular_forms__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( + /*! @angular/forms */ + "./node_modules/@angular/forms/__ivy_ngcc__/fesm2015/forms.js"); + /* harmony import */ + + + var _ionic_angular__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( + /*! @ionic/angular */ + "./node_modules/@ionic/angular/__ivy_ngcc__/fesm2015/ionic-angular.js"); + /* harmony import */ + + + var _new_groupe_routing_module__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( + /*! ./new-groupe-routing.module */ + "./src/app/new-groupe/new-groupe-routing.module.ts"); + /* harmony import */ + + + var _new_groupe_page__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__( + /*! ./new-groupe.page */ + "./src/app/new-groupe/new-groupe.page.ts"); + + var NewGroupePageModule = function NewGroupePageModule() { + _classCallCheck(this, NewGroupePageModule); + }; + + NewGroupePageModule = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["NgModule"])({ + imports: [_angular_common__WEBPACK_IMPORTED_MODULE_2__["CommonModule"], _angular_forms__WEBPACK_IMPORTED_MODULE_3__["FormsModule"], _ionic_angular__WEBPACK_IMPORTED_MODULE_4__["IonicModule"], _new_groupe_routing_module__WEBPACK_IMPORTED_MODULE_5__["NewGroupePageRoutingModule"]], + declarations: [_new_groupe_page__WEBPACK_IMPORTED_MODULE_6__["NewGroupePage"]] + })], NewGroupePageModule); + /***/ + }, + + /***/ + "./src/app/new-groupe/new-groupe.page.scss": + /*!*************************************************!*\ + !*** ./src/app/new-groupe/new-groupe.page.scss ***! + \*************************************************/ + + /*! exports provided: default */ + + /***/ + function srcAppNewGroupeNewGroupePageScss(module, __webpack_exports__, __webpack_require__) { + "use strict"; + + __webpack_require__.r(__webpack_exports__); + /* harmony default export */ + + + __webpack_exports__["default"] = "\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL25ldy1ncm91cGUvbmV3LWdyb3VwZS5wYWdlLnNjc3MifQ== */"; + /***/ + }, + + /***/ + "./src/app/new-groupe/new-groupe.page.ts": + /*!***********************************************!*\ + !*** ./src/app/new-groupe/new-groupe.page.ts ***! + \***********************************************/ + + /*! exports provided: NewGroupePage */ + + /***/ + function srcAppNewGroupeNewGroupePageTs(module, __webpack_exports__, __webpack_require__) { + "use strict"; + + __webpack_require__.r(__webpack_exports__); + /* harmony export (binding) */ + + + __webpack_require__.d(__webpack_exports__, "NewGroupePage", function () { + return NewGroupePage; + }); + /* harmony import */ + + + var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( + /*! tslib */ + "./node_modules/tslib/tslib.es6.js"); + /* harmony import */ + + + var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( + /*! @angular/core */ + "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js"); + /* harmony import */ + + + var _services_new_groupe_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( + /*! ../services/new-groupe.service */ + "./src/app/services/new-groupe.service.ts"); + /* harmony import */ + + + var _angular_router__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( + /*! @angular/router */ + "./node_modules/@angular/router/__ivy_ngcc__/fesm2015/router.js"); + /* harmony import */ + + + var _ionic_angular__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( + /*! @ionic/angular */ + "./node_modules/@ionic/angular/__ivy_ngcc__/fesm2015/ionic-angular.js"); + + var NewGroupePage = /*#__PURE__*/function () { + function NewGroupePage(newGroupeService, router, alertController) { + _classCallCheck(this, NewGroupePage); + + this.newGroupeService = newGroupeService; + this.router = router; + this.alertController = alertController; + } + + _createClass(NewGroupePage, [{ + key: "ngOnInit", + value: function ngOnInit() {} + }, { + key: "createGroup", + value: function createGroup(form) { + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() { + var _this = this; + + var groupe; + return regeneratorRuntime.wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + _context.next = 2; + return this.newGroupeService.createGroups(form.value.name, form.value.description); + + case 2: + groupe = _context.sent; + groupe.subscribe(function (res) { + console.log('groupe crée : ' + JSON.stringify(res)); + + if (res.name) { + _this.router.navigate(['tabs/tab3']); + } else { + _this.alertGroup(); + } + }); + + case 4: + case "end": + return _context.stop(); + } + } + }, _callee, this); + })); + } + }, { + key: "alertGroup", + value: function alertGroup() { + return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee2() { + var alert; + return regeneratorRuntime.wrap(function _callee2$(_context2) { + while (1) { + switch (_context2.prev = _context2.next) { + case 0: + _context2.next = 2; + return this.alertController.create({ + cssClass: 'my-custom-class', + header: 'Erreur', + subHeader: 'création groupe', + message: 'Une erreur s\'est produite durant la création du groupe', + buttons: ['OK'] + }); + + case 2: + alert = _context2.sent; + _context2.next = 5; + return alert.present(); + + case 5: + case "end": + return _context2.stop(); + } + } + }, _callee2, this); + })); + } + }]); + + return NewGroupePage; + }(); + + NewGroupePage.ctorParameters = function () { + return [{ + type: _services_new_groupe_service__WEBPACK_IMPORTED_MODULE_2__["NewGroupeService"] + }, { + type: _angular_router__WEBPACK_IMPORTED_MODULE_3__["Router"] + }, { + type: _ionic_angular__WEBPACK_IMPORTED_MODULE_4__["AlertController"] + }]; + }; + + NewGroupePage = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({ + selector: 'app-new-groupe', + template: Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"])(__webpack_require__( + /*! raw-loader!./new-groupe.page.html */ + "./node_modules/raw-loader/dist/cjs.js!./src/app/new-groupe/new-groupe.page.html"))["default"], + styles: [Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"])(__webpack_require__( + /*! ./new-groupe.page.scss */ + "./src/app/new-groupe/new-groupe.page.scss"))["default"]] + })], NewGroupePage); + /***/ + }, + + /***/ + "./src/app/services/new-groupe.service.ts": + /*!************************************************!*\ + !*** ./src/app/services/new-groupe.service.ts ***! + \************************************************/ + + /*! exports provided: NewGroupeService */ + + /***/ + function srcAppServicesNewGroupeServiceTs(module, __webpack_exports__, __webpack_require__) { + "use strict"; + + __webpack_require__.r(__webpack_exports__); + /* harmony export (binding) */ + + + __webpack_require__.d(__webpack_exports__, "NewGroupeService", function () { + return NewGroupeService; + }); + /* harmony import */ + + + var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__( + /*! tslib */ + "./node_modules/tslib/tslib.es6.js"); + /* harmony import */ + + + var _angular_common_http__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__( + /*! @angular/common/http */ + "./node_modules/@angular/common/__ivy_ngcc__/fesm2015/http.js"); + /* harmony import */ + + + var _angular_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__( + /*! @angular/core */ + "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js"); + /* harmony import */ + + + var rxjs_operators__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( + /*! rxjs/operators */ + "./node_modules/rxjs/_esm2015/operators/index.js"); + /* harmony import */ + + + var _global_service__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( + /*! ../global.service */ + "./src/app/global.service.ts"); + /* harmony import */ + + + var rxjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( + /*! rxjs */ + "./node_modules/rxjs/_esm2015/index.js"); + + var NewGroupeService = /*#__PURE__*/function () { + function NewGroupeService(http, global) { + _classCallCheck(this, NewGroupeService); + + this.http = http; + this.global = global; + this.urlCreateRoom = this.global.apiRoot + "/rooms"; + } + + _createClass(NewGroupeService, [{ + key: "createGroups", + value: function createGroups(name, description) { + var body = { + "name": name, + "description": description + }; + return this.http.post(this.urlCreateRoom, body, this.global.getHeaderHttpPostConnected()).pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["map"])(function (results) { + console.log('RAW : ' + results); + return results; + }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["catchError"])(function (err) { + return Object(rxjs__WEBPACK_IMPORTED_MODULE_5__["of"])(err); + })); + } + }]); + + return NewGroupeService; + }(); + + NewGroupeService.ctorParameters = function () { + return [{ + type: _angular_common_http__WEBPACK_IMPORTED_MODULE_1__["HttpClient"] + }, { + type: _global_service__WEBPACK_IMPORTED_MODULE_4__["GlobalService"] + }]; + }; + + NewGroupeService = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([Object(_angular_core__WEBPACK_IMPORTED_MODULE_2__["Injectable"])({ + providedIn: 'root' + })], NewGroupeService); + /***/ + } + }]); +})(); +//# sourceMappingURL=new-groupe-new-groupe-module-es5.js.map \ No newline at end of file diff --git a/ionic/www/new-groupe-new-groupe-module-es5.js.map b/ionic/www/new-groupe-new-groupe-module-es5.js.map new file mode 100644 index 0000000000000000000000000000000000000000..758164969447accf5f848cb07f81c0fa616b30b8 --- /dev/null +++ b/ionic/www/new-groupe-new-groupe-module-es5.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///src/app/new-groupe/new-groupe.page.html","webpack:///src/app/new-groupe/new-groupe-routing.module.ts","webpack:///src/app/new-groupe/new-groupe.module.ts","webpack:///src/app/new-groupe/new-groupe.page.scss","webpack:///src/app/new-groupe/new-groupe.page.ts","webpack:///src/app/services/new-groupe.service.ts"],"names":["routes","path","component","NewGroupePageRoutingModule","imports","forChild","exports","NewGroupePageModule","declarations","NewGroupePage","newGroupeService","router","alertController","form","createGroups","value","name","description","groupe","subscribe","res","console","log","JSON","stringify","navigate","alertGroup","create","cssClass","header","subHeader","message","buttons","alert","present","selector","template","NewGroupeService","http","global","urlCreateRoom","apiRoot","body","post","getHeaderHttpPostConnected","pipe","results","err","providedIn"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAe;;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACKf,UAAMA,MAAM,GAAW,CACrB;AACEC,YAAI,EAAE,EADR;AAEEC,iBAAS,EAAE;AAFb,OADqB,CAAvB;;UAWaC,0BAA0B;AAAA;AAAA,O;;AAA1BA,gCAA0B,6DAJtC,+DAAS;AACRC,eAAO,EAAE,CAAC,6DAAaC,QAAb,CAAsBL,MAAtB,CAAD,CADD;AAERM,eAAO,EAAE,CAAC,4DAAD;AAFD,OAAT,CAIsC,GAA1BH,0BAA0B,CAA1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UCGAI,mBAAmB;AAAA;AAAA,O;;AAAnBA,yBAAmB,6DAT/B,+DAAS;AACRH,eAAO,EAAE,CACP,4DADO,EAEP,0DAFO,EAGP,0DAHO,EAIP,qFAJO,CADD;AAORI,oBAAY,EAAE,CAAC,8DAAD;AAPN,OAAT,CAS+B,GAAnBD,mBAAmB,CAAnB;;;;;;;;;;;;;;;;ACnBb;AAAe;;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UCWFE,aAAa;AAExB,+BAAoBC,gBAApB,EAAgEC,MAAhE,EAAuFC,eAAvF,EAAyH;AAAA;;AAArG,eAAAF,gBAAA,GAAAA,gBAAA;AAA4C,eAAAC,MAAA,GAAAA,MAAA;AAAuB,eAAAC,eAAA,GAAAA,eAAA;AAEtF;;AAJuB;AAAA;AAAA,qCAMb,CAEV;AARuB;AAAA;AAAA,sCAUNC,IAVM,EAUF;;;;;;;;;;AACL,6BAAM,KAAKH,gBAAL,CAAsBI,YAAtB,CAAmCD,IAAI,CAACE,KAAL,CAAWC,IAA9C,EAAmDH,IAAI,CAACE,KAAL,CAAWE,WAA9D,CAAN;;;AAATC,4B;AACNA,4BAAM,CAACC,SAAP,CAAiB,UAAAC,GAAG,EAAI;AACtBC,+BAAO,CAACC,GAAR,CAAY,mBAAmBC,IAAI,CAACC,SAAL,CAAeJ,GAAf,CAA/B;;AACA,4BAAGA,GAAG,CAACJ,IAAP,EAAY;AACV,+BAAI,CAACL,MAAL,CAAYc,QAAZ,CAAqB,CAAC,WAAD,CAArB;AACD,yBAFD,MAEK;AACH,+BAAI,CAACC,UAAL;AACD;AACF,uBAPD;;;;;;;;;AAQD;AApBuB;AAAA;AAAA,uCAsBR;;;;;;;;AACA,6BAAM,KAAKd,eAAL,CAAqBe,MAArB,CAA4B;AAC9CC,gCAAQ,EAAE,iBADoC;AAE9CC,8BAAM,EAAE,QAFsC;AAG9CC,iCAAS,EAAE,iBAHmC;AAI9CC,+BAAO,EAAE,yDAJqC;AAK9CC,+BAAO,EAAE,CAAC,IAAD;AALqC,uBAA5B,CAAN;;;AAARC,2B;;AAQN,6BAAMA,KAAK,CAACC,OAAN,EAAN;;;;;;;;;AACD;AAhCuB;;AAAA;AAAA,S;;;;gBAVjB;;gBACA;;gBACA;;;;AAQIzB,mBAAa,6DALzB,gEAAU;AACT0B,gBAAQ,EAAE,gBADD;AAETC,gBAAQ,EAAR;AAAA;AAAA,sGAFS;;;;AAAA,OAAV,CAKyB,GAAb3B,aAAa,CAAb;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UCCA4B,gBAAgB;AAI3B,kCAAoBC,IAApB,EAA8CC,MAA9C,EAAqE;AAAA;;AAAjD,eAAAD,IAAA,GAAAA,IAAA;AAA0B,eAAAC,MAAA,GAAAA,MAAA;AAC5C,eAAKC,aAAL,GAAoB,KAAKD,MAAL,CAAYE,OAAZ,GAAsB,QAA1C;AACD;;AAN0B;AAAA;AAAA,uCAQdzB,IARc,EAQTC,WARS,EAQE;AAC3B,gBAAIyB,IAAI,GAAG;AACT,sBAAQ1B,IADC;AAET,6BAAeC;AAFN,aAAX;AAIA,mBAAO,KAAKqB,IAAL,CAAUK,IAAV,CAAe,KAAKH,aAApB,EAAkCE,IAAlC,EAAuC,KAAKH,MAAL,CAAYK,0BAAZ,EAAvC,EAAiFC,IAAjF,CACL,2DAAI,UAAAC,OAAO,EAAI;AACbzB,qBAAO,CAACC,GAAR,CAAY,WAAWwB,OAAvB;AACA,qBAAOA,OAAP;AACD,aAHD,CADK,EAKL,kEAAW,UAAAC,GAAG;AAAA,qBAAI,gDAAGA,GAAH,CAAJ;AAAA,aAAd,CALK,CAAP;AAMD;AAnB0B;;AAAA;AAAA,S;;;;gBAZpB;;gBAIA;;;;AAQIV,sBAAgB,6DAH5B,iEAAW;AACVW,kBAAU,EAAE;AADF,OAAX,CAG4B,GAAhBX,gBAAgB,CAAhB","file":"new-groupe-new-groupe-module-es5.js","sourcesContent":["export default \"<ion-header class=\\\"ion-margin-top ion-margin-bottom\\\">\\n <ion-toolbar>\\n <ion-buttons slot=\\\"start\\\">\\n <ion-back-button text=\\\"Retour\\\" defaultHref=\\\"/tabs/tab3\\\"></ion-back-button>\\n </ion-buttons>\\n <ion-title size=\\\"large\\\">Création groupe</ion-title>\\n </ion-toolbar>\\n</ion-header>\\n\\n<ion-content padding>\\n <form class=\\\"form_login\\\" #form=\\\"ngForm\\\">\\n <ion-grid>\\n <ion-row class=\\\"ion-justify-content-center\\\">\\n <ion-col class=\\\"align-self-center\\\" size-md=\\\"6\\\" size-lg=\\\"5\\\" size-xs=\\\"12\\\">\\n <div class=\\\"ion-padding\\\">\\n <ion-item>\\n <ion-input name=\\\"name\\\" type=\\\"text\\\" placeholder=\\\"Nom du groupe\\\" ngModel required></ion-input>\\n </ion-item>\\n <ion-item>\\n <ion-input name=\\\"description\\\" type=\\\"text\\\" placeholder=\\\"Description du groupe\\\" ngModel required></ion-input>\\n </ion-item>\\n </div>\\n <div class=\\\"ion-padding\\\">\\n <ion-button size=\\\"large\\\" type=\\\"submit\\\" [disabled]=\\\"form.invalid\\\" expand=\\\"block\\\" (click)=\\\"createGroup(form)\\\">Créer</ion-button>\\n </div>\\n </ion-col>\\n </ion-row>\\n </ion-grid>\\n </form>\\n</ion-content>\\n\";","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\n\nimport { NewGroupePage } from './new-groupe.page';\n\nconst routes: Routes = [\n {\n path: '',\n component: NewGroupePage\n }\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class NewGroupePageRoutingModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { IonicModule } from '@ionic/angular';\n\nimport { NewGroupePageRoutingModule } from './new-groupe-routing.module';\n\nimport { NewGroupePage } from './new-groupe.page';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n IonicModule,\n NewGroupePageRoutingModule\n ],\n declarations: [NewGroupePage]\n})\nexport class NewGroupePageModule {}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL25ldy1ncm91cGUvbmV3LWdyb3VwZS5wYWdlLnNjc3MifQ== */\";","import { Component, OnInit } from '@angular/core';\nimport { NewGroupeService } from '../services/new-groupe.service';\nimport { Router } from '@angular/router';\nimport { AlertController } from '@ionic/angular';\n\n\n@Component({\n selector: 'app-new-groupe',\n templateUrl: './new-groupe.page.html',\n styleUrls: ['./new-groupe.page.scss'],\n})\nexport class NewGroupePage implements OnInit {\n\n constructor(private newGroupeService: NewGroupeService,private router: Router,private alertController: AlertController) { \n \n }\n\n ngOnInit() {\n\n }\n\n async createGroup(form){\n const groupe = await this.newGroupeService.createGroups(form.value.name,form.value.description);\n groupe.subscribe(res => {\n console.log('groupe crée : ' + JSON.stringify(res));\n if(res.name){\n this.router.navigate(['tabs/tab3']);\n }else{\n this.alertGroup();\n }\n });\n }\n\n async alertGroup(){\n const alert = await this.alertController.create({\n cssClass: 'my-custom-class',\n header: 'Erreur',\n subHeader: 'création groupe',\n message: 'Une erreur s\\'est produite durant la création du groupe',\n buttons: ['OK']\n });\n\n await alert.present();\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { GlobalService } from \"../global.service\";\nimport { catchError } from 'rxjs/operators'; \nimport { of } from 'rxjs';\nimport { HttpHeaders } from '@angular/common/http';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NewGroupeService {\n\n private urlCreateRoom: string;\n\n constructor(private http: HttpClient, private global: GlobalService) { \n this.urlCreateRoom= this.global.apiRoot + \"/rooms\"\n }\n\n createGroups(name,description){\n let body = {\n \"name\": name,\n \"description\": description,\n }\n return this.http.post(this.urlCreateRoom,body,this.global.getHeaderHttpPostConnected()).pipe(\n map(results => {\n console.log('RAW : ' + results)\n return results;\n }),\n catchError(err => of(err)))\n }\n}\n"]} \ No newline at end of file diff --git a/ionic/www/plugins/cordova-plugin-device/www/device.js b/ionic/www/plugins/cordova-plugin-device/www/device.js deleted file mode 100644 index ae48e354655088c859a95f06d1ed46de0c42bb46..0000000000000000000000000000000000000000 --- a/ionic/www/plugins/cordova-plugin-device/www/device.js +++ /dev/null @@ -1,86 +0,0 @@ -cordova.define("cordova-plugin-device.device", function(require, exports, module) { -/* - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - * -*/ - -var argscheck = require('cordova/argscheck'); -var channel = require('cordova/channel'); -var utils = require('cordova/utils'); -var exec = require('cordova/exec'); -var cordova = require('cordova'); - -channel.createSticky('onCordovaInfoReady'); -// Tell cordova channel to wait on the CordovaInfoReady event -channel.waitForInitialization('onCordovaInfoReady'); - -/** - * This represents the mobile device, and provides properties for inspecting the model, version, UUID of the - * phone, etc. - * @constructor - */ -function Device () { - this.available = false; - this.platform = null; - this.version = null; - this.uuid = null; - this.cordova = null; - this.model = null; - this.manufacturer = null; - this.isVirtual = null; - this.serial = null; - - var me = this; - - channel.onCordovaReady.subscribe(function () { - me.getInfo(function (info) { - // ignoring info.cordova returning from native, we should use value from cordova.version defined in cordova.js - // TODO: CB-5105 native implementations should not return info.cordova - var buildLabel = cordova.version; - me.available = true; - me.platform = info.platform; - me.version = info.version; - me.uuid = info.uuid; - me.cordova = buildLabel; - me.model = info.model; - me.isVirtual = info.isVirtual; - me.manufacturer = info.manufacturer || 'unknown'; - me.serial = info.serial || 'unknown'; - channel.onCordovaInfoReady.fire(); - }, function (e) { - me.available = false; - utils.alert('[ERROR] Error initializing Cordova: ' + e); - }); - }); -} - -/** - * Get device info - * - * @param {Function} successCallback The function to call when the heading data is available - * @param {Function} errorCallback The function to call when there is an error getting the heading data. (OPTIONAL) - */ -Device.prototype.getInfo = function (successCallback, errorCallback) { - argscheck.checkArgs('fF', 'Device.getInfo', arguments); - exec(successCallback, errorCallback, 'Device', 'getDeviceInfo', []); -}; - -module.exports = new Device(); - -}); diff --git a/ionic/www/plugins/cordova-plugin-ionic-keyboard/www/android/keyboard.js b/ionic/www/plugins/cordova-plugin-ionic-keyboard/www/android/keyboard.js deleted file mode 100644 index 19062bf15874ad66e03019743e8d3678738d8d39..0000000000000000000000000000000000000000 --- a/ionic/www/plugins/cordova-plugin-ionic-keyboard/www/android/keyboard.js +++ /dev/null @@ -1,87 +0,0 @@ -cordova.define("cordova-plugin-ionic-keyboard.keyboard", function(require, exports, module) { -var argscheck = require('cordova/argscheck'), - utils = require('cordova/utils'), - exec = require('cordova/exec'), - channel = require('cordova/channel'); - -var Keyboard = function () {}; - -Keyboard.fireOnShow = function (height) { - Keyboard.isVisible = true; - cordova.fireWindowEvent('keyboardDidShow', { - 'keyboardHeight': height - }); - - // To support the keyboardAttach directive listening events - // inside Ionic's main bundle - cordova.fireWindowEvent('native.keyboardshow', { - 'keyboardHeight': height - }); -}; - -Keyboard.fireOnHide = function () { - Keyboard.isVisible = false; - cordova.fireWindowEvent('keyboardDidHide'); - - // To support the keyboardAttach directive listening events - // inside Ionic's main bundle - cordova.fireWindowEvent('native.keyboardhide'); -}; - -Keyboard.fireOnHiding = function () { - cordova.fireWindowEvent('keyboardWillHide'); -}; - -Keyboard.fireOnShowing = function (height) { - cordova.fireWindowEvent('keyboardWillShow', { - 'keyboardHeight': height - }); -}; - -Keyboard.hideFormAccessoryBar = Keyboard.hideKeyboardAccessoryBar = function (hide) { - console.warn("Keyboard.hideKeyboardAccessoryBar() not supported in Android"); -}; - -Keyboard.hide = function () { - exec(null, null, "CDVIonicKeyboard", "hide", []); -}; - -Keyboard.show = function () { - exec(null, null, "CDVIonicKeyboard", "show", []); -}; - -Keyboard.disableScroll = function (disable) { - console.warn("Keyboard.disableScroll() not supported in Android"); -}; - -Keyboard.setResizeMode = function (mode) { - console.warn("Keyboard.setResizeMode() not supported in Android"); -} - -Keyboard.setKeyboardStyle = function(style) { - console.warn("Keyboard.setKeyboardStyle() not supported in Android"); -}; - -channel.onCordovaReady.subscribe(function () { - exec(success, null, 'CDVIonicKeyboard', 'init', []); - - function success(msg) { - var action = msg.charAt(0); - if (action === 'S') { - var keyboardHeight = parseInt(msg.substr(1)); - Keyboard.fireOnShowing(keyboardHeight); - Keyboard.fireOnShow(keyboardHeight); - - } else if (action === 'H') { - Keyboard.fireOnHiding(); - Keyboard.fireOnHide(); - } - } -}); - - -Keyboard.isVisible = false; - -module.exports = Keyboard; - -}); diff --git a/ionic/www/plugins/cordova-plugin-ionic-webview/src/www/util.js b/ionic/www/plugins/cordova-plugin-ionic-webview/src/www/util.js deleted file mode 100644 index 0795894a222a2bbe6a144fee9b9c90ff351491fa..0000000000000000000000000000000000000000 --- a/ionic/www/plugins/cordova-plugin-ionic-webview/src/www/util.js +++ /dev/null @@ -1,33 +0,0 @@ -cordova.define("cordova-plugin-ionic-webview.IonicWebView", function(require, exports, module) { -var exec = require('cordova/exec'); - -var WebView = { - convertFileSrc: function(url) { - if (!url) { - return url; - } - if (url.indexOf('/')===0) { - return window.WEBVIEW_SERVER_URL + '/_app_file_' + url; - } - if (url.indexOf('file://')===0) { - return window.WEBVIEW_SERVER_URL + url.replace('file://', '/_app_file_'); - } - if (url.indexOf('content://')===0) { - return window.WEBVIEW_SERVER_URL + url.replace('content:/', '/_app_content_'); - } - return url; - }, - setServerBasePath: function(path) { - exec(null, null, 'IonicWebView', 'setServerBasePath', [path]); - }, - getServerBasePath: function(callback) { - exec(callback, null, 'IonicWebView', 'getServerBasePath', []); - }, - persistServerBasePath: function() { - exec(null, null, 'IonicWebView', 'persistServerBasePath', []); - } -} - -module.exports = WebView; - -}); diff --git a/ionic/www/plugins/cordova-plugin-splashscreen/www/splashscreen.js b/ionic/www/plugins/cordova-plugin-splashscreen/www/splashscreen.js deleted file mode 100644 index 5beaa5fd21df9edd81c94f62ce2769395bc72e66..0000000000000000000000000000000000000000 --- a/ionic/www/plugins/cordova-plugin-splashscreen/www/splashscreen.js +++ /dev/null @@ -1,36 +0,0 @@ -cordova.define("cordova-plugin-splashscreen.SplashScreen", function(require, exports, module) { -/* - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - * -*/ - -var exec = require('cordova/exec'); - -var splashscreen = { - show:function() { - exec(null, null, "SplashScreen", "show", []); - }, - hide:function() { - exec(null, null, "SplashScreen", "hide", []); - } -}; - -module.exports = splashscreen; - -}); diff --git a/ionic/www/plugins/cordova-plugin-statusbar/www/statusbar.js b/ionic/www/plugins/cordova-plugin-statusbar/www/statusbar.js deleted file mode 100644 index 708186f9e22102d93e5787bb855811e1cc86b69d..0000000000000000000000000000000000000000 --- a/ionic/www/plugins/cordova-plugin-statusbar/www/statusbar.js +++ /dev/null @@ -1,116 +0,0 @@ -cordova.define("cordova-plugin-statusbar.statusbar", function(require, exports, module) { -/* - * - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - * -*/ - -/* global cordova */ - -var exec = require('cordova/exec'); - -var namedColors = { - "black": "#000000", - "darkGray": "#A9A9A9", - "lightGray": "#D3D3D3", - "white": "#FFFFFF", - "gray": "#808080", - "red": "#FF0000", - "green": "#00FF00", - "blue": "#0000FF", - "cyan": "#00FFFF", - "yellow": "#FFFF00", - "magenta": "#FF00FF", - "orange": "#FFA500", - "purple": "#800080", - "brown": "#A52A2A" -}; - -var StatusBar = { - - isVisible: true, - - overlaysWebView: function (doOverlay) { - exec(null, null, "StatusBar", "overlaysWebView", [doOverlay]); - }, - - styleDefault: function () { - // dark text ( to be used on a light background ) - exec(null, null, "StatusBar", "styleDefault", []); - }, - - styleLightContent: function () { - // light text ( to be used on a dark background ) - exec(null, null, "StatusBar", "styleLightContent", []); - }, - - styleBlackTranslucent: function () { - // #88000000 ? Apple says to use lightContent instead - exec(null, null, "StatusBar", "styleBlackTranslucent", []); - }, - - styleBlackOpaque: function () { - // #FF000000 ? Apple says to use lightContent instead - exec(null, null, "StatusBar", "styleBlackOpaque", []); - }, - - backgroundColorByName: function (colorname) { - return StatusBar.backgroundColorByHexString(namedColors[colorname]); - }, - - backgroundColorByHexString: function (hexString) { - if (hexString.charAt(0) !== "#") { - hexString = "#" + hexString; - } - - if (hexString.length === 4) { - var split = hexString.split(""); - hexString = "#" + split[1] + split[1] + split[2] + split[2] + split[3] + split[3]; - } - - exec(null, null, "StatusBar", "backgroundColorByHexString", [hexString]); - }, - - hide: function () { - exec(null, null, "StatusBar", "hide", []); - StatusBar.isVisible = false; - }, - - show: function () { - exec(null, null, "StatusBar", "show", []); - StatusBar.isVisible = true; - } - -}; - -// prime it. setTimeout so that proxy gets time to init -window.setTimeout(function () { - exec(function (res) { - if (typeof res == 'object') { - if (res.type == 'tap') { - cordova.fireWindowEvent('statusTap'); - } - } else { - StatusBar.isVisible = res; - } - }, null, "StatusBar", "_ready", []); -}, 0); - -module.exports = StatusBar; - -}); diff --git a/ionic/www/runtime-es2015.js b/ionic/www/runtime-es2015.js index 29a3d03a60fc24c4e39a5f4f46de6ab079c9a913..5b5bedc6572edbe2e5337d9840036352f75124a6 100644 --- a/ionic/www/runtime-es2015.js +++ b/ionic/www/runtime-es2015.js @@ -64,7 +64,7 @@ /******/ /******/ // script path function /******/ function jsonpScriptSrc(chunkId) { -/******/ return __webpack_require__.p + "" + ({"common":"common","auth-login-login-module":"auth-login-login-module","conversation-conversation-module":"conversation-conversation-module","polyfills-core-js":"polyfills-core-js","polyfills-css-shim":"polyfills-css-shim","polyfills-dom":"polyfills-dom","shadow-css-58508bb5-js":"shadow-css-58508bb5-js","tabs-tabs-module":"tabs-tabs-module","swiper-bundle-95afeea2-js":"swiper-bundle-95afeea2-js","focus-visible-f4ad4f1a-js":"focus-visible-f4ad4f1a-js","input-shims-bc550f99-js":"input-shims-bc550f99-js","keyboard-5742b5da-js":"keyboard-5742b5da-js","status-tap-b46a1b02-js":"status-tap-b46a1b02-js","swipe-back-2154c9a7-js":"swipe-back-2154c9a7-js","tap-click-71d2324a-js":"tap-click-71d2324a-js","tab1-tab1-module":"tab1-tab1-module","tab2-tab2-module":"tab2-tab2-module","tab3-tab3-module":"tab3-tab3-module"}[chunkId]||chunkId) + "-es2015.js" +/******/ return __webpack_require__.p + "" + ({"common":"common","auth-login-login-module":"auth-login-login-module","auth-register-register-module":"auth-register-register-module","conversation-conversation-module":"conversation-conversation-module","gestion-groupe-gestion-groupe-module":"gestion-groupe-gestion-groupe-module","new-groupe-new-groupe-module":"new-groupe-new-groupe-module","polyfills-core-js":"polyfills-core-js","polyfills-css-shim":"polyfills-css-shim","polyfills-dom":"polyfills-dom","shadow-css-58508bb5-js":"shadow-css-58508bb5-js","tabs-tabs-module":"tabs-tabs-module","swiper-bundle-95afeea2-js":"swiper-bundle-95afeea2-js","focus-visible-f4ad4f1a-js":"focus-visible-f4ad4f1a-js","input-shims-bc550f99-js":"input-shims-bc550f99-js","keyboard-5742b5da-js":"keyboard-5742b5da-js","status-tap-b46a1b02-js":"status-tap-b46a1b02-js","swipe-back-2154c9a7-js":"swipe-back-2154c9a7-js","tap-click-71d2324a-js":"tap-click-71d2324a-js","tab1-tab1-module":"tab1-tab1-module","tab2-tab2-module":"tab2-tab2-module","tab3-tab3-module":"tab3-tab3-module"}[chunkId]||chunkId) + "-es2015.js" /******/ } /******/ /******/ // The require function diff --git a/ionic/www/runtime-es2015.js.map b/ionic/www/runtime-es2015.js.map index e24b9da32d669f2465da175004fcb44496223d87..75077c0ca8adc93526bebbb40b95d28a7fb022d1 100644 --- a/ionic/www/runtime-es2015.js.map +++ b/ionic/www/runtime-es2015.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack/bootstrap"],"names":[],"mappings":";QAAA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA,QAAQ,oBAAoB;QAC5B;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA,iBAAiB,4BAA4B;QAC7C;QACA;QACA,kBAAkB,2BAA2B;QAC7C;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;;QAEA;;QAEA;QACA;QACA,yCAAyC,8yBAA8yB;QACv1B;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;QAEA;QACA;QACA;QACA;;;QAGA;;QAEA;QACA,iCAAiC;;QAEjC;QACA;QACA;QACA,KAAK;QACL;QACA;QACA;QACA,MAAM;QACN;;QAEA;QACA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,wBAAwB,kCAAkC;QAC1D,MAAM;QACN;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;QAEA;QACA,0CAA0C,oBAAoB,WAAW;;QAEzE;QACA;QACA;QACA;QACA,gBAAgB,uBAAuB;QACvC;;;QAGA;QACA","file":"runtime-es2015.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"runtime\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"\" + ({\"common\":\"common\",\"auth-login-login-module\":\"auth-login-login-module\",\"conversation-conversation-module\":\"conversation-conversation-module\",\"polyfills-core-js\":\"polyfills-core-js\",\"polyfills-css-shim\":\"polyfills-css-shim\",\"polyfills-dom\":\"polyfills-dom\",\"shadow-css-58508bb5-js\":\"shadow-css-58508bb5-js\",\"tabs-tabs-module\":\"tabs-tabs-module\",\"swiper-bundle-95afeea2-js\":\"swiper-bundle-95afeea2-js\",\"focus-visible-f4ad4f1a-js\":\"focus-visible-f4ad4f1a-js\",\"input-shims-bc550f99-js\":\"input-shims-bc550f99-js\",\"keyboard-5742b5da-js\":\"keyboard-5742b5da-js\",\"status-tap-b46a1b02-js\":\"status-tap-b46a1b02-js\",\"swipe-back-2154c9a7-js\":\"swipe-back-2154c9a7-js\",\"tap-click-71d2324a-js\":\"tap-click-71d2324a-js\",\"tab1-tab1-module\":\"tab1-tab1-module\",\"tab2-tab2-module\":\"tab2-tab2-module\",\"tab3-tab3-module\":\"tab3-tab3-module\"}[chunkId]||chunkId) + \"-es2015.js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// run deferred modules from other chunks\n \tcheckDeferredModules();\n"],"sourceRoot":"webpack:///"} \ No newline at end of file +{"version":3,"sources":["webpack/bootstrap"],"names":[],"mappings":";QAAA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA,QAAQ,oBAAoB;QAC5B;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA,iBAAiB,4BAA4B;QAC7C;QACA;QACA,kBAAkB,2BAA2B;QAC7C;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;;QAEA;;QAEA;QACA;QACA,yCAAyC,0/BAA0/B;QACniC;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;QAEA;QACA;QACA;QACA;;;QAGA;;QAEA;QACA,iCAAiC;;QAEjC;QACA;QACA;QACA,KAAK;QACL;QACA;QACA;QACA,MAAM;QACN;;QAEA;QACA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,wBAAwB,kCAAkC;QAC1D,MAAM;QACN;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;QAEA;QACA,0CAA0C,oBAAoB,WAAW;;QAEzE;QACA;QACA;QACA;QACA,gBAAgB,uBAAuB;QACvC;;;QAGA;QACA","file":"runtime-es2015.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"runtime\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"\" + ({\"common\":\"common\",\"auth-login-login-module\":\"auth-login-login-module\",\"auth-register-register-module\":\"auth-register-register-module\",\"conversation-conversation-module\":\"conversation-conversation-module\",\"gestion-groupe-gestion-groupe-module\":\"gestion-groupe-gestion-groupe-module\",\"new-groupe-new-groupe-module\":\"new-groupe-new-groupe-module\",\"polyfills-core-js\":\"polyfills-core-js\",\"polyfills-css-shim\":\"polyfills-css-shim\",\"polyfills-dom\":\"polyfills-dom\",\"shadow-css-58508bb5-js\":\"shadow-css-58508bb5-js\",\"tabs-tabs-module\":\"tabs-tabs-module\",\"swiper-bundle-95afeea2-js\":\"swiper-bundle-95afeea2-js\",\"focus-visible-f4ad4f1a-js\":\"focus-visible-f4ad4f1a-js\",\"input-shims-bc550f99-js\":\"input-shims-bc550f99-js\",\"keyboard-5742b5da-js\":\"keyboard-5742b5da-js\",\"status-tap-b46a1b02-js\":\"status-tap-b46a1b02-js\",\"swipe-back-2154c9a7-js\":\"swipe-back-2154c9a7-js\",\"tap-click-71d2324a-js\":\"tap-click-71d2324a-js\",\"tab1-tab1-module\":\"tab1-tab1-module\",\"tab2-tab2-module\":\"tab2-tab2-module\",\"tab3-tab3-module\":\"tab3-tab3-module\"}[chunkId]||chunkId) + \"-es2015.js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// run deferred modules from other chunks\n \tcheckDeferredModules();\n"],"sourceRoot":"webpack:///"} \ No newline at end of file diff --git a/ionic/www/runtime-es5.js b/ionic/www/runtime-es5.js index d85448e1fd2afb14bf718b2fc26a3b36194592a3..ba4460c5015343552e8ad1d57d0e39159f144b8f 100644 --- a/ionic/www/runtime-es5.js +++ b/ionic/www/runtime-es5.js @@ -64,7 +64,7 @@ /******/ /******/ // script path function /******/ function jsonpScriptSrc(chunkId) { -/******/ return __webpack_require__.p + "" + ({"common":"common","auth-login-login-module":"auth-login-login-module","conversation-conversation-module":"conversation-conversation-module","polyfills-core-js":"polyfills-core-js","polyfills-css-shim":"polyfills-css-shim","polyfills-dom":"polyfills-dom","shadow-css-58508bb5-js":"shadow-css-58508bb5-js","tabs-tabs-module":"tabs-tabs-module","swiper-bundle-95afeea2-js":"swiper-bundle-95afeea2-js","focus-visible-f4ad4f1a-js":"focus-visible-f4ad4f1a-js","input-shims-bc550f99-js":"input-shims-bc550f99-js","keyboard-5742b5da-js":"keyboard-5742b5da-js","status-tap-b46a1b02-js":"status-tap-b46a1b02-js","swipe-back-2154c9a7-js":"swipe-back-2154c9a7-js","tap-click-71d2324a-js":"tap-click-71d2324a-js","tab1-tab1-module":"tab1-tab1-module","tab2-tab2-module":"tab2-tab2-module","tab3-tab3-module":"tab3-tab3-module"}[chunkId]||chunkId) + "-es5.js" +/******/ return __webpack_require__.p + "" + ({"common":"common","auth-login-login-module":"auth-login-login-module","auth-register-register-module":"auth-register-register-module","conversation-conversation-module":"conversation-conversation-module","gestion-groupe-gestion-groupe-module":"gestion-groupe-gestion-groupe-module","new-groupe-new-groupe-module":"new-groupe-new-groupe-module","polyfills-core-js":"polyfills-core-js","polyfills-css-shim":"polyfills-css-shim","polyfills-dom":"polyfills-dom","shadow-css-58508bb5-js":"shadow-css-58508bb5-js","tabs-tabs-module":"tabs-tabs-module","swiper-bundle-95afeea2-js":"swiper-bundle-95afeea2-js","focus-visible-f4ad4f1a-js":"focus-visible-f4ad4f1a-js","input-shims-bc550f99-js":"input-shims-bc550f99-js","keyboard-5742b5da-js":"keyboard-5742b5da-js","status-tap-b46a1b02-js":"status-tap-b46a1b02-js","swipe-back-2154c9a7-js":"swipe-back-2154c9a7-js","tap-click-71d2324a-js":"tap-click-71d2324a-js","tab1-tab1-module":"tab1-tab1-module","tab2-tab2-module":"tab2-tab2-module","tab3-tab3-module":"tab3-tab3-module"}[chunkId]||chunkId) + "-es5.js" /******/ } /******/ /******/ // The require function diff --git a/ionic/www/runtime-es5.js.map b/ionic/www/runtime-es5.js.map index 208e77e3a46e75fa205bedb1f0f8c06e2f3a7ef9..94d5fbdfb62dde9c541e929c54504a9b59aa1fc6 100644 --- a/ionic/www/runtime-es5.js.map +++ b/ionic/www/runtime-es5.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack/bootstrap"],"names":[],"mappings":";QAAA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA,QAAQ,oBAAoB;QAC5B;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA,iBAAiB,4BAA4B;QAC7C;QACA;QACA,kBAAkB,2BAA2B;QAC7C;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;;QAEA;;QAEA;QACA;QACA,yCAAyC,8yBAA8yB;QACv1B;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;QAEA;QACA;QACA;QACA;;;QAGA;;QAEA;QACA,iCAAiC;;QAEjC;QACA;QACA;QACA,KAAK;QACL;QACA;QACA;QACA,MAAM;QACN;;QAEA;QACA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,wBAAwB,kCAAkC;QAC1D,MAAM;QACN;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;QAEA;QACA,0CAA0C,oBAAoB,WAAW;;QAEzE;QACA;QACA;QACA;QACA,gBAAgB,uBAAuB;QACvC;;;QAGA;QACA","file":"runtime-es5.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"runtime\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"\" + ({\"common\":\"common\",\"auth-login-login-module\":\"auth-login-login-module\",\"conversation-conversation-module\":\"conversation-conversation-module\",\"polyfills-core-js\":\"polyfills-core-js\",\"polyfills-css-shim\":\"polyfills-css-shim\",\"polyfills-dom\":\"polyfills-dom\",\"shadow-css-58508bb5-js\":\"shadow-css-58508bb5-js\",\"tabs-tabs-module\":\"tabs-tabs-module\",\"swiper-bundle-95afeea2-js\":\"swiper-bundle-95afeea2-js\",\"focus-visible-f4ad4f1a-js\":\"focus-visible-f4ad4f1a-js\",\"input-shims-bc550f99-js\":\"input-shims-bc550f99-js\",\"keyboard-5742b5da-js\":\"keyboard-5742b5da-js\",\"status-tap-b46a1b02-js\":\"status-tap-b46a1b02-js\",\"swipe-back-2154c9a7-js\":\"swipe-back-2154c9a7-js\",\"tap-click-71d2324a-js\":\"tap-click-71d2324a-js\",\"tab1-tab1-module\":\"tab1-tab1-module\",\"tab2-tab2-module\":\"tab2-tab2-module\",\"tab3-tab3-module\":\"tab3-tab3-module\"}[chunkId]||chunkId) + \"-es2015.js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// run deferred modules from other chunks\n \tcheckDeferredModules();\n"],"sourceRoot":"webpack:///"} \ No newline at end of file +{"version":3,"sources":["webpack/bootstrap"],"names":[],"mappings":";QAAA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA,QAAQ,oBAAoB;QAC5B;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA,iBAAiB,4BAA4B;QAC7C;QACA;QACA,kBAAkB,2BAA2B;QAC7C;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;;QAEA;;QAEA;QACA;QACA,yCAAyC,0/BAA0/B;QACniC;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;QAEA;QACA;QACA;QACA;;;QAGA;;QAEA;QACA,iCAAiC;;QAEjC;QACA;QACA;QACA,KAAK;QACL;QACA;QACA;QACA,MAAM;QACN;;QAEA;QACA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,wBAAwB,kCAAkC;QAC1D,MAAM;QACN;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;QAEA;QACA,0CAA0C,oBAAoB,WAAW;;QAEzE;QACA;QACA;QACA;QACA,gBAAgB,uBAAuB;QACvC;;;QAGA;QACA","file":"runtime-es5.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"runtime\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"\" + ({\"common\":\"common\",\"auth-login-login-module\":\"auth-login-login-module\",\"auth-register-register-module\":\"auth-register-register-module\",\"conversation-conversation-module\":\"conversation-conversation-module\",\"gestion-groupe-gestion-groupe-module\":\"gestion-groupe-gestion-groupe-module\",\"new-groupe-new-groupe-module\":\"new-groupe-new-groupe-module\",\"polyfills-core-js\":\"polyfills-core-js\",\"polyfills-css-shim\":\"polyfills-css-shim\",\"polyfills-dom\":\"polyfills-dom\",\"shadow-css-58508bb5-js\":\"shadow-css-58508bb5-js\",\"tabs-tabs-module\":\"tabs-tabs-module\",\"swiper-bundle-95afeea2-js\":\"swiper-bundle-95afeea2-js\",\"focus-visible-f4ad4f1a-js\":\"focus-visible-f4ad4f1a-js\",\"input-shims-bc550f99-js\":\"input-shims-bc550f99-js\",\"keyboard-5742b5da-js\":\"keyboard-5742b5da-js\",\"status-tap-b46a1b02-js\":\"status-tap-b46a1b02-js\",\"swipe-back-2154c9a7-js\":\"swipe-back-2154c9a7-js\",\"tap-click-71d2324a-js\":\"tap-click-71d2324a-js\",\"tab1-tab1-module\":\"tab1-tab1-module\",\"tab2-tab2-module\":\"tab2-tab2-module\",\"tab3-tab3-module\":\"tab3-tab3-module\"}[chunkId]||chunkId) + \"-es2015.js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// run deferred modules from other chunks\n \tcheckDeferredModules();\n"],"sourceRoot":"webpack:///"} \ No newline at end of file diff --git a/ionic/www/tab3-tab3-module-es2015.js b/ionic/www/tab3-tab3-module-es2015.js index 91d8dd8642921e977d85209313efc35c2dabfc3f..92591e724566c146717842b0ca5e3f0ba81dc989 100644 --- a/ionic/www/tab3-tab3-module-es2015.js +++ b/ionic/www/tab3-tab3-module-es2015.js @@ -9,7 +9,7 @@ "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony default export */ __webpack_exports__["default"] = ("<ion-header class=\"ion-margin-top ion-margin-bottom\">\n <ion-toolbar>\n <ion-title size=\"large\">Discussions</ion-title>\n </ion-toolbar>\n <ion-toolbar>\n <ion-button slot=\"end\" size=\"small\" fill=\"clear\">\n Nouveau groupe\n </ion-button>\n </ion-toolbar>\n</ion-header>\n\n<ion-content>\n <ion-list>\n <ion-item *ngFor=\"let item of (results | async)\" routerLink=\"/conversation\">\n <ion-avatar slot=\"start\" >\n <img src=\"../../assets/icon/favicon.png\">\n </ion-avatar>\n <ion-label>\n <div class=\"flex_box\">\n <h3>{{ item.name }}</h3>\n <ion-note slot=\"end\">time</ion-note>\n </div>\n <p>{{ item.description }}</p>\n </ion-label>\n </ion-item>\n </ion-list>\n</ion-content>\n\n\n"); +/* harmony default export */ __webpack_exports__["default"] = ("<ion-header class=\"ion-margin-top ion-margin-bottom\">\n <ion-toolbar>\n <ion-title size=\"large\">Discussions</ion-title>\n </ion-toolbar>\n <ion-toolbar>\n <ion-button slot=\"end\" size=\"small\" fill=\"clear\" routerLink=\"/new-groupe\">\n Nouveau groupe\n </ion-button>\n </ion-toolbar>\n</ion-header>\n\n<ion-content>\n <ion-list>\n <ion-item *ngFor=\"let item of results\" routerLink=\"/conversation/{{ item._id }}\">\n <ion-avatar slot=\"start\" >\n <img src=\"../../assets/icon/favicon.png\">\n </ion-avatar>\n <ion-label>\n <div class=\"flex_box\">\n <h3>{{ item.name }}</h3>\n <ion-note slot=\"end\">time</ion-note>\n </div>\n <p>{{ item.description }}</p>\n </ion-label>\n </ion-item>\n </ion-list>\n</ion-content>\n\n\n"); /***/ }), @@ -26,12 +26,7 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); /* harmony import */ var _angular_common_http__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/common/http */ "./node_modules/@angular/common/__ivy_ngcc__/fesm2015/http.js"); /* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js"); -/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! rxjs/operators */ "./node_modules/rxjs/_esm2015/operators/index.js"); -/* harmony import */ var _global_service__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../global.service */ "./src/app/global.service.ts"); -/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! rxjs */ "./node_modules/rxjs/_esm2015/index.js"); - - - +/* harmony import */ var _global_service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../global.service */ "./src/app/global.service.ts"); @@ -41,29 +36,14 @@ let Tab3Service = class Tab3Service { this.http = http; this.global = global; this.urlRooms = this.global.apiRoot + "/rooms"; - this.urlCreateRoom = this.global.apiRoot + "/rooms"; } getGroups() { - console.log(localStorage.getItem("token")); - return this.http.get(`${this.urlRooms}`, this.global.headerHttpGetConnected).pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["map"])(results => { - console.log('RAW : ' + results); - return results; - }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["catchError"])(err => Object(rxjs__WEBPACK_IMPORTED_MODULE_5__["of"])(err))); - } - createGroups() { - let body = { - "name": "ungroupe", - "description": "unedescription" - }; - return this.http.post(this.urlCreateRoom, body, this.global.headerHttpPostConnected).pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["map"])(results => { - console.log('RAW : ' + results); - return results; - }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["catchError"])(err => Object(rxjs__WEBPACK_IMPORTED_MODULE_5__["of"])(err))); + return this.http.get(`${this.urlRooms}`, this.global.getHeaderHttpGetConnected()); } }; Tab3Service.ctorParameters = () => [ { type: _angular_common_http__WEBPACK_IMPORTED_MODULE_1__["HttpClient"] }, - { type: _global_service__WEBPACK_IMPORTED_MODULE_4__["GlobalService"] } + { type: _global_service__WEBPACK_IMPORTED_MODULE_3__["GlobalService"] } ]; Tab3Service = Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"])([ Object(_angular_core__WEBPACK_IMPORTED_MODULE_2__["Injectable"])({ @@ -195,17 +175,8 @@ let Tab3Page = class Tab3Page { this.getGroups(); } getGroups() { - this.results = this.tab3Service.getGroups(); - this.results.subscribe(res => { - console.log("les groupes : " + JSON.stringify(res)); - }); - } - createGroup() { - return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, function* () { - let groupe = yield this.tab3Service.createGroups(); - groupe.subscribe(res => { - console.log("groupe crée : " + res); - }); + this.tab3Service.getGroups().subscribe(data => { + this.results = data; }); } }; diff --git a/ionic/www/tab3-tab3-module-es2015.js.map b/ionic/www/tab3-tab3-module-es2015.js.map index cc14dc6e74eef1a91f4523ac37ed22a6bf15d4a3..eb0a2149500ad22ba36ea986aae1c61cbea7137a 100644 --- a/ionic/www/tab3-tab3-module-es2015.js.map +++ b/ionic/www/tab3-tab3-module-es2015.js.map @@ -1 +1 @@ -{"version":3,"sources":["./src/app/tab3/tab3.page.html","./src/app/services/tab3.service.ts","./src/app/tab3/tab3-routing.module.ts","./src/app/tab3/tab3.module.ts","./src/app/tab3/tab3.page.scss","./src/app/tab3/tab3.page.ts"],"names":[],"mappings":";;;;;;;;;;AAAA;AAAe,ypBAA0lB,aAAa,sFAAsF,oBAAoB,+EAA+E,E;;;;;;;;;;;;;;;;;;;;;ACA7vB;AACP;AAEN;AACa;AACN;AAClB;IASb,WAAW,SAAX,WAAW;IAKtB,YAAoB,IAAgB,EAAU,MAAqB;QAA/C,SAAI,GAAJ,IAAI,CAAY;QAAU,WAAM,GAAN,MAAM,CAAe;QACjE,IAAI,CAAC,QAAQ,GAAC,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,QAAQ;QAC5C,IAAI,CAAC,aAAa,GAAE,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,QAAQ;IACpD,CAAC;IAED,SAAS;QACP,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC1C,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,EAAC,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAC9E,0DAAG,CAAC,OAAO,CAAC,EAAE;YACZ,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,OAAO,CAAC;YAC/B,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC,EACF,iEAAU,CAAC,GAAG,CAAC,EAAE,CAAC,+CAAE,CAAC,GAAG,CAAC,CAAC,CAC3B;IACH,CAAC;IAED,YAAY;QACV,IAAI,IAAI,GAAG;YACT,MAAM,EAAE,UAAU;YAClB,aAAa,EAAE,gBAAgB;SAChC;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAC,IAAI,EAAC,IAAI,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC,IAAI,CACrF,0DAAG,CAAC,OAAO,CAAC,EAAE;YACZ,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,OAAO,CAAC;YAC/B,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC,EACF,iEAAU,CAAC,GAAG,CAAC,EAAE,CAAC,+CAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/B,CAAC;CACF;;YAhDQ,+DAAU;YAIV,6DAAa;;AAWT,WAAW;IAHvB,gEAAU,CAAC;QACV,UAAU,EAAE,MAAM;KACnB,CAAC;GACW,WAAW,CAiCvB;AAjCuB;;;;;;;;;;;;;;;;;;;;ACfiB;AACc;AAChB;AAEvC,MAAM,MAAM,GAAW;IACrB;QACE,IAAI,EAAE,EAAE;QACR,SAAS,EAAE,mDAAQ;KACpB;CACF,CAAC;IAMW,qBAAqB,SAArB,qBAAqB;CAAG;AAAxB,qBAAqB;IAJjC,8DAAQ,CAAC;QACR,OAAO,EAAE,CAAC,4DAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACxC,OAAO,EAAE,CAAC,4DAAY,CAAC;KACxB,CAAC;GACW,qBAAqB,CAAG;AAAH;;;;;;;;;;;;;;;;;;;;;;;;;ACfW;AACE;AACN;AACM;AACF;AACN;AACyD;AAElC;IAajD,cAAc,SAAd,cAAc;CAAG;AAAjB,cAAc;IAX1B,8DAAQ,CAAC;QACR,OAAO,EAAE;YACP,0DAAW;YACX,4DAAY;YACZ,0DAAW;YACX,2GAA+B;YAC/B,4DAAY,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,mDAAQ,EAAE,CAAC,CAAC;YAC1D,0EAAqB;SACtB;QACD,YAAY,EAAE,CAAC,mDAAQ,CAAC;KACzB,CAAC;GACW,cAAc,CAAG;AAAH;;;;;;;;;;;;;ACrB3B;AAAe,4EAAa,iBAAiB,gBAAgB,GAAG,QAAQ,qBAAqB,oBAAoB,GAAG,eAAe,kBAAkB,mCAAmC,GAAG,cAAc,oBAAoB,GAAG,gBAAgB,oBAAoB,wBAAwB,GAAG,OAAO,gBAAgB,GAAG,6CAA6C,uyBAAuyB,E;;;;;;;;;;;;;;;;;;ACAnmC;AAEa;IAO1C,QAAQ,SAAR,QAAQ;IAInB,YAAoB,WAAwB;QAAxB,gBAAW,GAAX,WAAW,CAAa;QAC1C,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAED,SAAS;QACP,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC;QAC5C,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;YAC3B,OAAO,CAAC,GAAG,CAAC,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACrD,CAAC,CAAC;IACJ,CAAC;IAEK,WAAW;;YACf,IAAI,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC;YACnD,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;gBACrB,OAAO,CAAC,GAAG,CAAC,gBAAgB,GAAG,GAAG,CAAC,CAAC;YACtC,CAAC,CAAC;QACJ,CAAC;KAAA;CAEF;;YA7BQ,kEAAW;;AAOP,QAAQ;IALpB,+DAAS,CAAC;QACT,QAAQ,EAAE,UAAU;QACpB,8MAA6B;;KAE9B,CAAC;GACW,QAAQ,CAsBpB;AAtBoB","file":"tab3-tab3-module-es2015.js","sourcesContent":["export default \"<ion-header class=\\\"ion-margin-top ion-margin-bottom\\\">\\n <ion-toolbar>\\n <ion-title size=\\\"large\\\">Discussions</ion-title>\\n </ion-toolbar>\\n <ion-toolbar>\\n <ion-button slot=\\\"end\\\" size=\\\"small\\\" fill=\\\"clear\\\">\\n Nouveau groupe\\n </ion-button>\\n </ion-toolbar>\\n</ion-header>\\n\\n<ion-content>\\n <ion-list>\\n <ion-item *ngFor=\\\"let item of (results | async)\\\" routerLink=\\\"/conversation\\\">\\n <ion-avatar slot=\\\"start\\\" >\\n <img src=\\\"../../assets/icon/favicon.png\\\">\\n </ion-avatar>\\n <ion-label>\\n <div class=\\\"flex_box\\\">\\n <h3>{{ item.name }}</h3>\\n <ion-note slot=\\\"end\\\">time</ion-note>\\n </div>\\n <p>{{ item.description }}</p>\\n </ion-label>\\n </ion-item>\\n </ion-list>\\n</ion-content>\\n\\n\\n\";","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { GlobalService } from \"../global.service\";\nimport { catchError } from 'rxjs/operators'; \nimport { of } from 'rxjs';\nimport { HttpHeaders } from '@angular/common/http';\n\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class Tab3Service {\n\n private urlRooms: string;\n private urlCreateRoom: string;\n\n constructor(private http: HttpClient, private global: GlobalService) { \n this.urlRooms=this.global.apiRoot + \"/rooms\"\n this.urlCreateRoom= this.global.apiRoot + \"/rooms\"\n }\n\n getGroups(): Observable<any> {\n console.log(localStorage.getItem(\"token\"))\n return this.http.get(`${this.urlRooms}`,this.global.headerHttpGetConnected).pipe(\n map(results => {\n console.log('RAW : ' + results)\n return results;\n }),\n catchError(err => of(err))\n )\n }\n\n createGroups(){\n let body = {\n \"name\": \"ungroupe\",\n \"description\": \"unedescription\"\n }\n return this.http.post(this.urlCreateRoom,body,this.global.headerHttpPostConnected).pipe(\n map(results => {\n console.log('RAW : ' + results)\n return results;\n }),\n catchError(err => of(err)))\n }\n}\n","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { Tab3Page } from './tab3.page';\n\nconst routes: Routes = [\n {\n path: '',\n component: Tab3Page,\n }\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule]\n})\nexport class Tab3PageRoutingModule {}\n","import { IonicModule } from '@ionic/angular';\nimport { RouterModule } from '@angular/router';\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { Tab3Page } from './tab3.page';\nimport { ExploreContainerComponentModule } from '../explore-container/explore-container.module';\n\nimport { Tab3PageRoutingModule } from './tab3-routing.module';\n\n@NgModule({\n imports: [\n IonicModule,\n CommonModule,\n FormsModule,\n ExploreContainerComponentModule,\n RouterModule.forChild([{ path: '', component: Tab3Page }]),\n Tab3PageRoutingModule,\n ],\n declarations: [Tab3Page]\n})\nexport class Tab3PageModule {}\n","export default \"ion-avatar {\\n height: 45px;\\n width: 45px;\\n}\\n\\nh3 {\\n font-weight: 700;\\n font-size: 15px;\\n}\\n\\n.flex_box {\\n display: flex;\\n justify-content: space-between;\\n}\\n\\nion-note {\\n font-size: 13px;\\n}\\n\\n.text-icon {\\n font-size: 22px;\\n margin-bottom: -6px;\\n}\\n\\np {\\n color: grey;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdGFiMy90YWIzLnBhZ2Uuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLFlBQUE7RUFDQSxXQUFBO0FBQ0Y7O0FBQ0E7RUFDRSxnQkFBQTtFQUNBLGVBQUE7QUFFRjs7QUFBQTtFQUNFLGFBQUE7RUFDQSw4QkFBQTtBQUdGOztBQURBO0VBQ0UsZUFBQTtBQUlGOztBQUZBO0VBQ0UsZUFBQTtFQUNBLG1CQUFBO0FBS0Y7O0FBSEE7RUFDRSxXQUFBO0FBTUYiLCJmaWxlIjoic3JjL2FwcC90YWIzL3RhYjMucGFnZS5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiaW9uLWF2YXRhciB7XG4gIGhlaWdodDogNDVweDtcbiAgd2lkdGg6IDQ1cHg7XG59XG5oMyB7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGZvbnQtc2l6ZTogMTVweDtcbn1cbi5mbGV4X2JveCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcbn1cbmlvbi1ub3RlIHtcbiAgZm9udC1zaXplOiAxM3B4O1xufVxuLnRleHQtaWNvbiB7XG4gIGZvbnQtc2l6ZTogMjJweDtcbiAgbWFyZ2luLWJvdHRvbTogLTZweDtcbn1cbnAge1xuICBjb2xvcjogZ3JleTtcbn1cbiJdfQ== */\";","import { Component } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { Tab3Service } from '../services/tab3.service';\n\n@Component({\n selector: 'app-tab3',\n templateUrl: 'tab3.page.html',\n styleUrls: ['tab3.page.scss']\n})\nexport class Tab3Page {\n\n results: Observable<any>;\n\n constructor(private tab3Service: Tab3Service) {\n this.getGroups();\n }\n\n getGroups(){\n this.results = this.tab3Service.getGroups();\n this.results.subscribe(res => {\n console.log(\"les groupes : \" + JSON.stringify(res))\n })\n }\n\n async createGroup(){\n let groupe = await this.tab3Service.createGroups();\n groupe.subscribe(res => {\n console.log(\"groupe crée : \" + res);\n })\n }\n\n}\n"],"sourceRoot":"webpack:///"} \ No newline at end of file +{"version":3,"sources":["./src/app/tab3/tab3.page.html","./src/app/services/tab3.service.ts","./src/app/tab3/tab3-routing.module.ts","./src/app/tab3/tab3.module.ts","./src/app/tab3/tab3.page.scss","./src/app/tab3/tab3.page.ts"],"names":[],"mappings":";;;;;;;;;;AAAA;AAAe,qfAAsb,YAAY,wLAAwL,aAAa,sFAAsF,oBAAoB,+EAA+E,E;;;;;;;;;;;;;;;;;;;ACA7xB;AACP;AAGO;IAWrC,WAAW,SAAX,WAAW;IAItB,YAAoB,IAAgB,EAAU,MAAqB;QAA/C,SAAI,GAAJ,IAAI,CAAY;QAAU,WAAM,GAAN,MAAM,CAAe;QACjE,IAAI,CAAC,QAAQ,GAAC,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,QAAQ;IAC9C,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,EAAC,IAAI,CAAC,MAAM,CAAC,yBAAyB,EAAE,CAAC,CAAC;IACnF,CAAC;CACF;;YA1BQ,+DAAU;YAIV,6DAAa;;AAWT,WAAW;IAHvB,gEAAU,CAAC;QACV,UAAU,EAAE,MAAM;KACnB,CAAC;GACW,WAAW,CAWvB;AAXuB;;;;;;;;;;;;;;;;;;;;ACfiB;AACc;AAChB;AAEvC,MAAM,MAAM,GAAW;IACrB;QACE,IAAI,EAAE,EAAE;QACR,SAAS,EAAE,mDAAQ;KACpB;CACF,CAAC;IAMW,qBAAqB,SAArB,qBAAqB;CAAG;AAAxB,qBAAqB;IAJjC,8DAAQ,CAAC;QACR,OAAO,EAAE,CAAC,4DAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACxC,OAAO,EAAE,CAAC,4DAAY,CAAC;KACxB,CAAC;GACW,qBAAqB,CAAG;AAAH;;;;;;;;;;;;;;;;;;;;;;;;;ACfW;AACE;AACN;AACM;AACF;AACN;AACyD;AAElC;IAajD,cAAc,SAAd,cAAc;CAAG;AAAjB,cAAc;IAX1B,8DAAQ,CAAC;QACR,OAAO,EAAE;YACP,0DAAW;YACX,4DAAY;YACZ,0DAAW;YACX,2GAA+B;YAC/B,4DAAY,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,mDAAQ,EAAE,CAAC,CAAC;YAC1D,0EAAqB;SACtB;QACD,YAAY,EAAE,CAAC,mDAAQ,CAAC;KACzB,CAAC;GACW,cAAc,CAAG;AAAH;;;;;;;;;;;;;ACrB3B;AAAe,4EAAa,iBAAiB,gBAAgB,GAAG,QAAQ,qBAAqB,oBAAoB,GAAG,eAAe,kBAAkB,mCAAmC,GAAG,cAAc,oBAAoB,GAAG,gBAAgB,oBAAoB,wBAAwB,GAAG,OAAO,gBAAgB,GAAG,6CAA6C,uyBAAuyB,E;;;;;;;;;;;;;;;;;;ACAnmC;AAEa;IAO1C,QAAQ,SAAR,QAAQ;IAInB,YAAoB,WAAwB;QAAxB,gBAAW,GAAX,WAAW,CAAa;QAC1C,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAED,SAAS;QACP,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YAC5C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACtB,CAAC,CAAC,CAAC;IACL,CAAC;CACF;;YApBQ,kEAAW;;AAOP,QAAQ;IALpB,+DAAS,CAAC;QACT,QAAQ,EAAE,UAAU;QACpB,8MAA6B;;KAE9B,CAAC;GACW,QAAQ,CAapB;AAboB","file":"tab3-tab3-module-es2015.js","sourcesContent":["export default \"<ion-header class=\\\"ion-margin-top ion-margin-bottom\\\">\\n <ion-toolbar>\\n <ion-title size=\\\"large\\\">Discussions</ion-title>\\n </ion-toolbar>\\n <ion-toolbar>\\n <ion-button slot=\\\"end\\\" size=\\\"small\\\" fill=\\\"clear\\\" routerLink=\\\"/new-groupe\\\">\\n Nouveau groupe\\n </ion-button>\\n </ion-toolbar>\\n</ion-header>\\n\\n<ion-content>\\n <ion-list>\\n <ion-item *ngFor=\\\"let item of results\\\" routerLink=\\\"/conversation/{{ item._id }}\\\">\\n <ion-avatar slot=\\\"start\\\" >\\n <img src=\\\"../../assets/icon/favicon.png\\\">\\n </ion-avatar>\\n <ion-label>\\n <div class=\\\"flex_box\\\">\\n <h3>{{ item.name }}</h3>\\n <ion-note slot=\\\"end\\\">time</ion-note>\\n </div>\\n <p>{{ item.description }}</p>\\n </ion-label>\\n </ion-item>\\n </ion-list>\\n</ion-content>\\n\\n\\n\";","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { GlobalService } from \"../global.service\";\nimport { catchError } from 'rxjs/operators'; \nimport { of } from 'rxjs';\nimport { HttpHeaders } from '@angular/common/http';\n\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class Tab3Service {\n\n private urlRooms: string;\n\n constructor(private http: HttpClient, private global: GlobalService) { \n this.urlRooms=this.global.apiRoot + \"/rooms\"\n }\n\n getGroups(){\n return this.http.get(`${this.urlRooms}`,this.global.getHeaderHttpGetConnected());\n }\n}\n","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { Tab3Page } from './tab3.page';\n\nconst routes: Routes = [\n {\n path: '',\n component: Tab3Page,\n }\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule]\n})\nexport class Tab3PageRoutingModule {}\n","import { IonicModule } from '@ionic/angular';\nimport { RouterModule } from '@angular/router';\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { Tab3Page } from './tab3.page';\nimport { ExploreContainerComponentModule } from '../explore-container/explore-container.module';\n\nimport { Tab3PageRoutingModule } from './tab3-routing.module';\n\n@NgModule({\n imports: [\n IonicModule,\n CommonModule,\n FormsModule,\n ExploreContainerComponentModule,\n RouterModule.forChild([{ path: '', component: Tab3Page }]),\n Tab3PageRoutingModule,\n ],\n declarations: [Tab3Page]\n})\nexport class Tab3PageModule {}\n","export default \"ion-avatar {\\n height: 45px;\\n width: 45px;\\n}\\n\\nh3 {\\n font-weight: 700;\\n font-size: 15px;\\n}\\n\\n.flex_box {\\n display: flex;\\n justify-content: space-between;\\n}\\n\\nion-note {\\n font-size: 13px;\\n}\\n\\n.text-icon {\\n font-size: 22px;\\n margin-bottom: -6px;\\n}\\n\\np {\\n color: grey;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdGFiMy90YWIzLnBhZ2Uuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLFlBQUE7RUFDQSxXQUFBO0FBQ0Y7O0FBQ0E7RUFDRSxnQkFBQTtFQUNBLGVBQUE7QUFFRjs7QUFBQTtFQUNFLGFBQUE7RUFDQSw4QkFBQTtBQUdGOztBQURBO0VBQ0UsZUFBQTtBQUlGOztBQUZBO0VBQ0UsZUFBQTtFQUNBLG1CQUFBO0FBS0Y7O0FBSEE7RUFDRSxXQUFBO0FBTUYiLCJmaWxlIjoic3JjL2FwcC90YWIzL3RhYjMucGFnZS5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiaW9uLWF2YXRhciB7XG4gIGhlaWdodDogNDVweDtcbiAgd2lkdGg6IDQ1cHg7XG59XG5oMyB7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGZvbnQtc2l6ZTogMTVweDtcbn1cbi5mbGV4X2JveCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcbn1cbmlvbi1ub3RlIHtcbiAgZm9udC1zaXplOiAxM3B4O1xufVxuLnRleHQtaWNvbiB7XG4gIGZvbnQtc2l6ZTogMjJweDtcbiAgbWFyZ2luLWJvdHRvbTogLTZweDtcbn1cbnAge1xuICBjb2xvcjogZ3JleTtcbn1cbiJdfQ== */\";","import { Component } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { Tab3Service } from '../services/tab3.service';\n\n@Component({\n selector: 'app-tab3',\n templateUrl: 'tab3.page.html',\n styleUrls: ['tab3.page.scss']\n})\nexport class Tab3Page {\n\n results;\n\n constructor(private tab3Service: Tab3Service) {\n this.getGroups();\n }\n\n getGroups(){\n this.tab3Service.getGroups().subscribe(data => {\n this.results = data;\n });\n }\n}\n"],"sourceRoot":"webpack:///"} \ No newline at end of file diff --git a/ionic/www/tab3-tab3-module-es5.js b/ionic/www/tab3-tab3-module-es5.js index 54a4a60fc658e7acf871cd8254ef8dcc1cf9f8f6..609ad13b3ec82e058261cd544cff26825ab4430f 100644 --- a/ionic/www/tab3-tab3-module-es5.js +++ b/ionic/www/tab3-tab3-module-es5.js @@ -22,7 +22,7 @@ /* harmony default export */ - __webpack_exports__["default"] = "<ion-header class=\"ion-margin-top ion-margin-bottom\">\n <ion-toolbar>\n <ion-title size=\"large\">Discussions</ion-title>\n </ion-toolbar>\n <ion-toolbar>\n <ion-button slot=\"end\" size=\"small\" fill=\"clear\">\n Nouveau groupe\n </ion-button>\n </ion-toolbar>\n</ion-header>\n\n<ion-content>\n <ion-list>\n <ion-item *ngFor=\"let item of (results | async)\" routerLink=\"/conversation\">\n <ion-avatar slot=\"start\" >\n <img src=\"../../assets/icon/favicon.png\">\n </ion-avatar>\n <ion-label>\n <div class=\"flex_box\">\n <h3>{{ item.name }}</h3>\n <ion-note slot=\"end\">time</ion-note>\n </div>\n <p>{{ item.description }}</p>\n </ion-label>\n </ion-item>\n </ion-list>\n</ion-content>\n\n\n"; + __webpack_exports__["default"] = "<ion-header class=\"ion-margin-top ion-margin-bottom\">\n <ion-toolbar>\n <ion-title size=\"large\">Discussions</ion-title>\n </ion-toolbar>\n <ion-toolbar>\n <ion-button slot=\"end\" size=\"small\" fill=\"clear\" routerLink=\"/new-groupe\">\n Nouveau groupe\n </ion-button>\n </ion-toolbar>\n</ion-header>\n\n<ion-content>\n <ion-list>\n <ion-item *ngFor=\"let item of results\" routerLink=\"/conversation/{{ item._id }}\">\n <ion-avatar slot=\"start\" >\n <img src=\"../../assets/icon/favicon.png\">\n </ion-avatar>\n <ion-label>\n <div class=\"flex_box\">\n <h3>{{ item.name }}</h3>\n <ion-note slot=\"end\">time</ion-note>\n </div>\n <p>{{ item.description }}</p>\n </ion-label>\n </ion-item>\n </ion-list>\n</ion-content>\n\n\n"; /***/ }, @@ -66,21 +66,9 @@ /* harmony import */ - var rxjs_operators__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( - /*! rxjs/operators */ - "./node_modules/rxjs/_esm2015/operators/index.js"); - /* harmony import */ - - - var _global_service__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__( + var _global_service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__( /*! ../global.service */ "./src/app/global.service.ts"); - /* harmony import */ - - - var rxjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__( - /*! rxjs */ - "./node_modules/rxjs/_esm2015/index.js"); var Tab3Service = /*#__PURE__*/function () { function Tab3Service(http, global) { @@ -89,33 +77,12 @@ this.http = http; this.global = global; this.urlRooms = this.global.apiRoot + "/rooms"; - this.urlCreateRoom = this.global.apiRoot + "/rooms"; } _createClass(Tab3Service, [{ key: "getGroups", value: function getGroups() { - console.log(localStorage.getItem("token")); - return this.http.get("".concat(this.urlRooms), this.global.headerHttpGetConnected).pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["map"])(function (results) { - console.log('RAW : ' + results); - return results; - }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["catchError"])(function (err) { - return Object(rxjs__WEBPACK_IMPORTED_MODULE_5__["of"])(err); - })); - } - }, { - key: "createGroups", - value: function createGroups() { - var body = { - "name": "ungroupe", - "description": "unedescription" - }; - return this.http.post(this.urlCreateRoom, body, this.global.headerHttpPostConnected).pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["map"])(function (results) { - console.log('RAW : ' + results); - return results; - }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["catchError"])(function (err) { - return Object(rxjs__WEBPACK_IMPORTED_MODULE_5__["of"])(err); - })); + return this.http.get("".concat(this.urlRooms), this.global.getHeaderHttpGetConnected()); } }]); @@ -126,7 +93,7 @@ return [{ type: _angular_common_http__WEBPACK_IMPORTED_MODULE_1__["HttpClient"] }, { - type: _global_service__WEBPACK_IMPORTED_MODULE_4__["GlobalService"] + type: _global_service__WEBPACK_IMPORTED_MODULE_3__["GlobalService"] }]; }; @@ -353,37 +320,12 @@ _createClass(Tab3Page, [{ key: "getGroups", value: function getGroups() { - this.results = this.tab3Service.getGroups(); - this.results.subscribe(function (res) { - console.log("les groupes : " + JSON.stringify(res)); + var _this = this; + + this.tab3Service.getGroups().subscribe(function (data) { + _this.results = data; }); } - }, { - key: "createGroup", - value: function createGroup() { - return Object(tslib__WEBPACK_IMPORTED_MODULE_0__["__awaiter"])(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() { - var groupe; - return regeneratorRuntime.wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - _context.next = 2; - return this.tab3Service.createGroups(); - - case 2: - groupe = _context.sent; - groupe.subscribe(function (res) { - console.log("groupe crée : " + res); - }); - - case 4: - case "end": - return _context.stop(); - } - } - }, _callee, this); - })); - } }]); return Tab3Page; diff --git a/ionic/www/tab3-tab3-module-es5.js.map b/ionic/www/tab3-tab3-module-es5.js.map index ff946b2749c277b00f54160570c44668b88ce35b..80cc1bc82fc3b81f875ccf52141b9be21c6e921a 100644 --- a/ionic/www/tab3-tab3-module-es5.js.map +++ b/ionic/www/tab3-tab3-module-es5.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///src/app/tab3/tab3.page.html","webpack:///src/app/services/tab3.service.ts","webpack:///src/app/tab3/tab3-routing.module.ts","webpack:///src/app/tab3/tab3.module.ts","webpack:///src/app/tab3/tab3.page.scss","webpack:///src/app/tab3/tab3.page.ts"],"names":["Tab3Service","http","global","urlRooms","apiRoot","urlCreateRoom","console","log","localStorage","getItem","get","headerHttpGetConnected","pipe","results","err","body","post","headerHttpPostConnected","providedIn","routes","path","component","Tab3PageRoutingModule","imports","forChild","exports","Tab3PageModule","declarations","Tab3Page","tab3Service","getGroups","subscribe","res","JSON","stringify","createGroups","groupe","selector","template"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAe;;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UCeFA,WAAW;AAKtB,6BAAoBC,IAApB,EAA8CC,MAA9C,EAAqE;AAAA;;AAAjD,eAAAD,IAAA,GAAAA,IAAA;AAA0B,eAAAC,MAAA,GAAAA,MAAA;AAC5C,eAAKC,QAAL,GAAc,KAAKD,MAAL,CAAYE,OAAZ,GAAsB,QAApC;AACA,eAAKC,aAAL,GAAoB,KAAKH,MAAL,CAAYE,OAAZ,GAAsB,QAA1C;AACD;;AARqB;AAAA;AAAA,sCAUb;AACPE,mBAAO,CAACC,GAAR,CAAYC,YAAY,CAACC,OAAb,CAAqB,OAArB,CAAZ;AACA,mBAAO,KAAKR,IAAL,CAAUS,GAAV,WAAiB,KAAKP,QAAtB,GAAiC,KAAKD,MAAL,CAAYS,sBAA7C,EAAqEC,IAArE,CACL,2DAAI,UAAAC,OAAO,EAAI;AACbP,qBAAO,CAACC,GAAR,CAAY,WAAWM,OAAvB;AACA,qBAAOA,OAAP;AACD,aAHD,CADK,EAKL,kEAAW,UAAAC,GAAG;AAAA,qBAAI,gDAAGA,GAAH,CAAJ;AAAA,aAAd,CALK,CAAP;AAOD;AAnBqB;AAAA;AAAA,yCAqBV;AACV,gBAAIC,IAAI,GAAG;AACT,sBAAQ,UADC;AAET,6BAAe;AAFN,aAAX;AAIA,mBAAO,KAAKd,IAAL,CAAUe,IAAV,CAAe,KAAKX,aAApB,EAAkCU,IAAlC,EAAuC,KAAKb,MAAL,CAAYe,uBAAnD,EAA4EL,IAA5E,CACL,2DAAI,UAAAC,OAAO,EAAI;AACbP,qBAAO,CAACC,GAAR,CAAY,WAAWM,OAAvB;AACA,qBAAOA,OAAP;AACD,aAHD,CADK,EAKL,kEAAW,UAAAC,GAAG;AAAA,qBAAI,gDAAGA,GAAH,CAAJ;AAAA,aAAd,CALK,CAAP;AAMD;AAhCqB;;AAAA;AAAA,S;;;;gBAff;;gBAIA;;;;AAWId,iBAAW,6DAHvB,iEAAW;AACVkB,kBAAU,EAAE;AADF,OAAX,CAGuB,GAAXlB,WAAW,CAAX;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACXb,UAAMmB,MAAM,GAAW,CACrB;AACEC,YAAI,EAAE,EADR;AAEEC,iBAAS,EAAE;AAFb,OADqB,CAAvB;;UAWaC,qBAAqB;AAAA;AAAA,O;;AAArBA,2BAAqB,6DAJjC,+DAAS;AACRC,eAAO,EAAE,CAAC,6DAAaC,QAAb,CAAsBL,MAAtB,CAAD,CADD;AAERM,eAAO,EAAE,CAAC,4DAAD;AAFD,OAAT,CAIiC,GAArBH,qBAAqB,CAArB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UCMAI,cAAc;AAAA;AAAA,O;;AAAdA,oBAAc,6DAX1B,+DAAS;AACRH,eAAO,EAAE,CACP,0DADO,EAEP,4DAFO,EAGP,0DAHO,EAIP,2GAJO,EAKP,6DAAaC,QAAb,CAAsB,CAAC;AAAEJ,cAAI,EAAE,EAAR;AAAYC,mBAAS,EAAE;AAAvB,SAAD,CAAtB,CALO,EAMP,0EANO,CADD;AASRM,oBAAY,EAAE,CAAC,mDAAD;AATN,OAAT,CAW0B,GAAdD,cAAc,CAAd;;;;;;;;;;;;;;;;ACrBb;AAAe;;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UCSFE,QAAQ;AAInB,0BAAoBC,WAApB,EAA8C;AAAA;;AAA1B,eAAAA,WAAA,GAAAA,WAAA;AAClB,eAAKC,SAAL;AACD;;AANkB;AAAA;AAAA,sCAQV;AACP,iBAAKjB,OAAL,GAAe,KAAKgB,WAAL,CAAiBC,SAAjB,EAAf;AACA,iBAAKjB,OAAL,CAAakB,SAAb,CAAuB,UAAAC,GAAG,EAAI;AAC5B1B,qBAAO,CAACC,GAAR,CAAY,mBAAmB0B,IAAI,CAACC,SAAL,CAAeF,GAAf,CAA/B;AACD,aAFD;AAGD;AAbkB;AAAA;AAAA,wCAeF;;;;;;;;AACF,6BAAM,KAAKH,WAAL,CAAiBM,YAAjB,EAAN;;;AAATC,4B;AACJA,4BAAM,CAACL,SAAP,CAAiB,UAAAC,GAAG,EAAI;AACtB1B,+BAAO,CAACC,GAAR,CAAY,mBAAmByB,GAA/B;AACD,uBAFD;;;;;;;;;AAGD;AApBkB;;AAAA;AAAA,S;;;;gBAPZ;;;;AAOIJ,cAAQ,6DALpB,gEAAU;AACTS,gBAAQ,EAAE,UADD;AAETC,gBAAQ,EAAR;AAAA;AAAA,0FAFS;;;;AAAA,OAAV,CAKoB,GAARV,QAAQ,CAAR","file":"tab3-tab3-module-es5.js","sourcesContent":["export default \"<ion-header class=\\\"ion-margin-top ion-margin-bottom\\\">\\n <ion-toolbar>\\n <ion-title size=\\\"large\\\">Discussions</ion-title>\\n </ion-toolbar>\\n <ion-toolbar>\\n <ion-button slot=\\\"end\\\" size=\\\"small\\\" fill=\\\"clear\\\">\\n Nouveau groupe\\n </ion-button>\\n </ion-toolbar>\\n</ion-header>\\n\\n<ion-content>\\n <ion-list>\\n <ion-item *ngFor=\\\"let item of (results | async)\\\" routerLink=\\\"/conversation\\\">\\n <ion-avatar slot=\\\"start\\\" >\\n <img src=\\\"../../assets/icon/favicon.png\\\">\\n </ion-avatar>\\n <ion-label>\\n <div class=\\\"flex_box\\\">\\n <h3>{{ item.name }}</h3>\\n <ion-note slot=\\\"end\\\">time</ion-note>\\n </div>\\n <p>{{ item.description }}</p>\\n </ion-label>\\n </ion-item>\\n </ion-list>\\n</ion-content>\\n\\n\\n\";","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { GlobalService } from \"../global.service\";\nimport { catchError } from 'rxjs/operators'; \nimport { of } from 'rxjs';\nimport { HttpHeaders } from '@angular/common/http';\n\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class Tab3Service {\n\n private urlRooms: string;\n private urlCreateRoom: string;\n\n constructor(private http: HttpClient, private global: GlobalService) { \n this.urlRooms=this.global.apiRoot + \"/rooms\"\n this.urlCreateRoom= this.global.apiRoot + \"/rooms\"\n }\n\n getGroups(): Observable<any> {\n console.log(localStorage.getItem(\"token\"))\n return this.http.get(`${this.urlRooms}`,this.global.headerHttpGetConnected).pipe(\n map(results => {\n console.log('RAW : ' + results)\n return results;\n }),\n catchError(err => of(err))\n )\n }\n\n createGroups(){\n let body = {\n \"name\": \"ungroupe\",\n \"description\": \"unedescription\"\n }\n return this.http.post(this.urlCreateRoom,body,this.global.headerHttpPostConnected).pipe(\n map(results => {\n console.log('RAW : ' + results)\n return results;\n }),\n catchError(err => of(err)))\n }\n}\n","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { Tab3Page } from './tab3.page';\n\nconst routes: Routes = [\n {\n path: '',\n component: Tab3Page,\n }\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule]\n})\nexport class Tab3PageRoutingModule {}\n","import { IonicModule } from '@ionic/angular';\nimport { RouterModule } from '@angular/router';\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { Tab3Page } from './tab3.page';\nimport { ExploreContainerComponentModule } from '../explore-container/explore-container.module';\n\nimport { Tab3PageRoutingModule } from './tab3-routing.module';\n\n@NgModule({\n imports: [\n IonicModule,\n CommonModule,\n FormsModule,\n ExploreContainerComponentModule,\n RouterModule.forChild([{ path: '', component: Tab3Page }]),\n Tab3PageRoutingModule,\n ],\n declarations: [Tab3Page]\n})\nexport class Tab3PageModule {}\n","export default \"ion-avatar {\\n height: 45px;\\n width: 45px;\\n}\\n\\nh3 {\\n font-weight: 700;\\n font-size: 15px;\\n}\\n\\n.flex_box {\\n display: flex;\\n justify-content: space-between;\\n}\\n\\nion-note {\\n font-size: 13px;\\n}\\n\\n.text-icon {\\n font-size: 22px;\\n margin-bottom: -6px;\\n}\\n\\np {\\n color: grey;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdGFiMy90YWIzLnBhZ2Uuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLFlBQUE7RUFDQSxXQUFBO0FBQ0Y7O0FBQ0E7RUFDRSxnQkFBQTtFQUNBLGVBQUE7QUFFRjs7QUFBQTtFQUNFLGFBQUE7RUFDQSw4QkFBQTtBQUdGOztBQURBO0VBQ0UsZUFBQTtBQUlGOztBQUZBO0VBQ0UsZUFBQTtFQUNBLG1CQUFBO0FBS0Y7O0FBSEE7RUFDRSxXQUFBO0FBTUYiLCJmaWxlIjoic3JjL2FwcC90YWIzL3RhYjMucGFnZS5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiaW9uLWF2YXRhciB7XG4gIGhlaWdodDogNDVweDtcbiAgd2lkdGg6IDQ1cHg7XG59XG5oMyB7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGZvbnQtc2l6ZTogMTVweDtcbn1cbi5mbGV4X2JveCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcbn1cbmlvbi1ub3RlIHtcbiAgZm9udC1zaXplOiAxM3B4O1xufVxuLnRleHQtaWNvbiB7XG4gIGZvbnQtc2l6ZTogMjJweDtcbiAgbWFyZ2luLWJvdHRvbTogLTZweDtcbn1cbnAge1xuICBjb2xvcjogZ3JleTtcbn1cbiJdfQ== */\";","import { Component } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { Tab3Service } from '../services/tab3.service';\n\n@Component({\n selector: 'app-tab3',\n templateUrl: 'tab3.page.html',\n styleUrls: ['tab3.page.scss']\n})\nexport class Tab3Page {\n\n results: Observable<any>;\n\n constructor(private tab3Service: Tab3Service) {\n this.getGroups();\n }\n\n getGroups(){\n this.results = this.tab3Service.getGroups();\n this.results.subscribe(res => {\n console.log(\"les groupes : \" + JSON.stringify(res))\n })\n }\n\n async createGroup(){\n let groupe = await this.tab3Service.createGroups();\n groupe.subscribe(res => {\n console.log(\"groupe crée : \" + res);\n })\n }\n\n}\n"]} \ No newline at end of file +{"version":3,"sources":["webpack:///src/app/tab3/tab3.page.html","webpack:///src/app/services/tab3.service.ts","webpack:///src/app/tab3/tab3-routing.module.ts","webpack:///src/app/tab3/tab3.module.ts","webpack:///src/app/tab3/tab3.page.scss","webpack:///src/app/tab3/tab3.page.ts"],"names":["Tab3Service","http","global","urlRooms","apiRoot","get","getHeaderHttpGetConnected","providedIn","routes","path","component","Tab3PageRoutingModule","imports","forChild","exports","Tab3PageModule","declarations","Tab3Page","tab3Service","getGroups","subscribe","data","results","selector","template"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAe;;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UCeFA,WAAW;AAItB,6BAAoBC,IAApB,EAA8CC,MAA9C,EAAqE;AAAA;;AAAjD,eAAAD,IAAA,GAAAA,IAAA;AAA0B,eAAAC,MAAA,GAAAA,MAAA;AAC5C,eAAKC,QAAL,GAAc,KAAKD,MAAL,CAAYE,OAAZ,GAAsB,QAApC;AACD;;AANqB;AAAA;AAAA,sCAQb;AACP,mBAAO,KAAKH,IAAL,CAAUI,GAAV,WAAiB,KAAKF,QAAtB,GAAiC,KAAKD,MAAL,CAAYI,yBAAZ,EAAjC,CAAP;AACD;AAVqB;;AAAA;AAAA,S;;;;gBAff;;gBAIA;;;;AAWIN,iBAAW,6DAHvB,iEAAW;AACVO,kBAAU,EAAE;AADF,OAAX,CAGuB,GAAXP,WAAW,CAAX;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACXb,UAAMQ,MAAM,GAAW,CACrB;AACEC,YAAI,EAAE,EADR;AAEEC,iBAAS,EAAE;AAFb,OADqB,CAAvB;;UAWaC,qBAAqB;AAAA;AAAA,O;;AAArBA,2BAAqB,6DAJjC,+DAAS;AACRC,eAAO,EAAE,CAAC,6DAAaC,QAAb,CAAsBL,MAAtB,CAAD,CADD;AAERM,eAAO,EAAE,CAAC,4DAAD;AAFD,OAAT,CAIiC,GAArBH,qBAAqB,CAArB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UCMAI,cAAc;AAAA;AAAA,O;;AAAdA,oBAAc,6DAX1B,+DAAS;AACRH,eAAO,EAAE,CACP,0DADO,EAEP,4DAFO,EAGP,0DAHO,EAIP,2GAJO,EAKP,6DAAaC,QAAb,CAAsB,CAAC;AAAEJ,cAAI,EAAE,EAAR;AAAYC,mBAAS,EAAE;AAAvB,SAAD,CAAtB,CALO,EAMP,0EANO,CADD;AASRM,oBAAY,EAAE,CAAC,mDAAD;AATN,OAAT,CAW0B,GAAdD,cAAc,CAAd;;;;;;;;;;;;;;;;ACrBb;AAAe;;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UCSFE,QAAQ;AAInB,0BAAoBC,WAApB,EAA8C;AAAA;;AAA1B,eAAAA,WAAA,GAAAA,WAAA;AAClB,eAAKC,SAAL;AACD;;AANkB;AAAA;AAAA,sCAQV;AAAA;;AACP,iBAAKD,WAAL,CAAiBC,SAAjB,GAA6BC,SAA7B,CAAuC,UAAAC,IAAI,EAAI;AAC7C,mBAAI,CAACC,OAAL,GAAeD,IAAf;AACD,aAFD;AAGD;AAZkB;;AAAA;AAAA,S;;;;gBAPZ;;;;AAOIJ,cAAQ,6DALpB,gEAAU;AACTM,gBAAQ,EAAE,UADD;AAETC,gBAAQ,EAAR;AAAA;AAAA,0FAFS;;;;AAAA,OAAV,CAKoB,GAARP,QAAQ,CAAR","file":"tab3-tab3-module-es5.js","sourcesContent":["export default \"<ion-header class=\\\"ion-margin-top ion-margin-bottom\\\">\\n <ion-toolbar>\\n <ion-title size=\\\"large\\\">Discussions</ion-title>\\n </ion-toolbar>\\n <ion-toolbar>\\n <ion-button slot=\\\"end\\\" size=\\\"small\\\" fill=\\\"clear\\\" routerLink=\\\"/new-groupe\\\">\\n Nouveau groupe\\n </ion-button>\\n </ion-toolbar>\\n</ion-header>\\n\\n<ion-content>\\n <ion-list>\\n <ion-item *ngFor=\\\"let item of results\\\" routerLink=\\\"/conversation/{{ item._id }}\\\">\\n <ion-avatar slot=\\\"start\\\" >\\n <img src=\\\"../../assets/icon/favicon.png\\\">\\n </ion-avatar>\\n <ion-label>\\n <div class=\\\"flex_box\\\">\\n <h3>{{ item.name }}</h3>\\n <ion-note slot=\\\"end\\\">time</ion-note>\\n </div>\\n <p>{{ item.description }}</p>\\n </ion-label>\\n </ion-item>\\n </ion-list>\\n</ion-content>\\n\\n\\n\";","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { GlobalService } from \"../global.service\";\nimport { catchError } from 'rxjs/operators'; \nimport { of } from 'rxjs';\nimport { HttpHeaders } from '@angular/common/http';\n\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class Tab3Service {\n\n private urlRooms: string;\n\n constructor(private http: HttpClient, private global: GlobalService) { \n this.urlRooms=this.global.apiRoot + \"/rooms\"\n }\n\n getGroups(){\n return this.http.get(`${this.urlRooms}`,this.global.getHeaderHttpGetConnected());\n }\n}\n","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { Tab3Page } from './tab3.page';\n\nconst routes: Routes = [\n {\n path: '',\n component: Tab3Page,\n }\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule]\n})\nexport class Tab3PageRoutingModule {}\n","import { IonicModule } from '@ionic/angular';\nimport { RouterModule } from '@angular/router';\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { Tab3Page } from './tab3.page';\nimport { ExploreContainerComponentModule } from '../explore-container/explore-container.module';\n\nimport { Tab3PageRoutingModule } from './tab3-routing.module';\n\n@NgModule({\n imports: [\n IonicModule,\n CommonModule,\n FormsModule,\n ExploreContainerComponentModule,\n RouterModule.forChild([{ path: '', component: Tab3Page }]),\n Tab3PageRoutingModule,\n ],\n declarations: [Tab3Page]\n})\nexport class Tab3PageModule {}\n","export default \"ion-avatar {\\n height: 45px;\\n width: 45px;\\n}\\n\\nh3 {\\n font-weight: 700;\\n font-size: 15px;\\n}\\n\\n.flex_box {\\n display: flex;\\n justify-content: space-between;\\n}\\n\\nion-note {\\n font-size: 13px;\\n}\\n\\n.text-icon {\\n font-size: 22px;\\n margin-bottom: -6px;\\n}\\n\\np {\\n color: grey;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvdGFiMy90YWIzLnBhZ2Uuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLFlBQUE7RUFDQSxXQUFBO0FBQ0Y7O0FBQ0E7RUFDRSxnQkFBQTtFQUNBLGVBQUE7QUFFRjs7QUFBQTtFQUNFLGFBQUE7RUFDQSw4QkFBQTtBQUdGOztBQURBO0VBQ0UsZUFBQTtBQUlGOztBQUZBO0VBQ0UsZUFBQTtFQUNBLG1CQUFBO0FBS0Y7O0FBSEE7RUFDRSxXQUFBO0FBTUYiLCJmaWxlIjoic3JjL2FwcC90YWIzL3RhYjMucGFnZS5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiaW9uLWF2YXRhciB7XG4gIGhlaWdodDogNDVweDtcbiAgd2lkdGg6IDQ1cHg7XG59XG5oMyB7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGZvbnQtc2l6ZTogMTVweDtcbn1cbi5mbGV4X2JveCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcbn1cbmlvbi1ub3RlIHtcbiAgZm9udC1zaXplOiAxM3B4O1xufVxuLnRleHQtaWNvbiB7XG4gIGZvbnQtc2l6ZTogMjJweDtcbiAgbWFyZ2luLWJvdHRvbTogLTZweDtcbn1cbnAge1xuICBjb2xvcjogZ3JleTtcbn1cbiJdfQ== */\";","import { Component } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { Tab3Service } from '../services/tab3.service';\n\n@Component({\n selector: 'app-tab3',\n templateUrl: 'tab3.page.html',\n styleUrls: ['tab3.page.scss']\n})\nexport class Tab3Page {\n\n results;\n\n constructor(private tab3Service: Tab3Service) {\n this.getGroups();\n }\n\n getGroups(){\n this.tab3Service.getGroups().subscribe(data => {\n this.results = data;\n });\n }\n}\n"]} \ No newline at end of file